Skip to content

Commit

Permalink
chore: Add TypeScript tests and update example
Browse files Browse the repository at this point in the history
  • Loading branch information
crutchcorn committed Apr 26, 2022
1 parent ec2ebe1 commit 6caff14
Show file tree
Hide file tree
Showing 14 changed files with 63 additions and 261 deletions.
2 changes: 0 additions & 2 deletions packages/plop/example/typescript/.gitignore

This file was deleted.

12 changes: 0 additions & 12 deletions packages/plop/example/typescript/package-lock.json

This file was deleted.

221 changes: 0 additions & 221 deletions packages/plop/example/typescript/plopfile.ts

This file was deleted.

3 changes: 0 additions & 3 deletions packages/plop/example/typescript/templates/burger.txt

This file was deleted.

8 changes: 0 additions & 8 deletions packages/plop/example/typescript/templates/change-me.txt

This file was deleted.

2 changes: 0 additions & 2 deletions packages/plop/example/typescript/templates/part.txt

This file was deleted.

1 change: 0 additions & 1 deletion packages/plop/example/typescript/templates/potatoes.txt

This file was deleted.

10 changes: 0 additions & 10 deletions packages/plop/example/typescript/templates/temp.txt

This file was deleted.

4 changes: 4 additions & 0 deletions packages/plop/tests/examples/typescript/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.js
.map
.nyc_output
node_modules
32 changes: 32 additions & 0 deletions packages/plop/tests/examples/typescript/plopfile.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { NodePlopAPI } from "plop";

module.exports = function (plop: NodePlopAPI) {
plop.setGenerator("test", {
description: "this is a test",
prompts: [
{
type: "input",
name: "name",
message: "What is your name?",
validate: function (value) {
if (/.+/.test(value)) {
return true;
}
return "name is required";
},
},
{
type: "checkbox",
name: "toppings",
message: "What pizza toppings do you like?",
choices: [
{ name: "Cheese", value: "cheese", checked: true },
{ name: "Pepperoni", value: "pepperoni" },
{ name: "Pineapple", value: "pineapple" },
{ name: "Mushroom", value: "mushroom" },
{ name: "Bacon", value: "bacon", checked: true },
],
},
],
});
};
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"compilerOptions": {
// Required
"module": "commonjs",
"module": "esnext",
"esModuleInterop": true,
"moduleResolution": "node",
// Not required
"strict": true,
"baseUrl": ".",
"baseUrl": "./",
"paths": {
"plop": ["../../src/plop.d.ts"]
}
Expand Down
25 changes: 25 additions & 0 deletions packages/plop/tests/typescript.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { resolve, dirname } from "node:path";
import { waitFor } from "cli-testing-library";
import { renderScript } from "./render.js";
import { fileURLToPath } from "node:url";

const __dirname = dirname(fileURLToPath(import.meta.url));

const renderWrapper = (...props) => {
return renderScript(
resolve(__dirname, "./examples/wrap-plop/index.js"),
...props
);
};

test("wrapper should prompts", async () => {
const props = await renderScript("yarn", ["tsc"], {
cwd: resolve(__dirname, "./examples/typescript"),
});
await waitFor(() => props.hasExit());
const { findByText } = await renderWrapper([""], {
cwd: resolve(__dirname, "./examples/typescript"),
});

expect(await findByText("What is your name?")).toBeInTheConsole();
});

0 comments on commit 6caff14

Please sign in to comment.