|
- import { resolve, dirname } from "node:path";
- import { waitFor } from "cli-testing-library";
- import * as fs from "node:fs";
- import { renderPlop } from "./render.js";
- import { getFileHelper } from "./file-helper.js";
- const { getFilePath } = getFileHelper();
- import { fileURLToPath } from "node:url";
-
- const __dirname = dirname(fileURLToPath(import.meta.url));
-
- test("Plop to add and rename files", async () => {
- const expectedFilePath = await getFilePath(
- "./examples/add-action/output/new-output.txt"
- );
-
- const { findByText, userEvent } = await renderPlop(["addAndNameFile"], {
- cwd: resolve(__dirname, "./examples/add-action"),
- });
-
- expect(await findByText("What should the file name be?")).toBeInTheConsole();
-
- userEvent.keyboard("new-output");
- userEvent.keyboard("[Enter]");
-
- await waitFor(() => fs.promises.stat(expectedFilePath));
-
- const data = fs.readFileSync(expectedFilePath, "utf8");
-
- expect(data).toMatch(/Hello/);
- });
-
- test("Plop to add and change file contents", async () => {
- const expectedFilePath = await getFilePath(
- "./examples/add-action/output/new-output.txt"
- );
-
- const { findByText, userEvent } = await renderPlop(["addAndChangeFile"], {
- cwd: resolve(__dirname, "./examples/add-action"),
- });
-
- expect(await findByText("What's your name?")).toBeInTheConsole();
-
- userEvent.keyboard("Corbin");
- userEvent.keyboard("[Enter]");
-
- await waitFor(() => fs.promises.stat(expectedFilePath));
-
- const data = await fs.promises.readFile(expectedFilePath, "utf8");
-
- expect(data).toMatch(/Hi Corbin!/);
- });
-
- test.todo("Test modify");
- test.todo("Test append");
- test.todo("Test built-in helpers");
- test.todo("Test custom helpers");
|