Socket
Socket
Sign inDemoInstall

plop

Package Overview
Dependencies
196
Maintainers
2
Versions
59
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 3.0.1 to 3.0.2

tests/action-failure.spec.js

4

package.json
{
"name": "plop",
"version": "3.0.1",
"version": "3.0.2",
"description": "Micro-generator framework that makes it easy for an entire team to create files with a level of uniformity",

@@ -34,3 +34,2 @@ "main": "./src/plop",

"devDependencies": {
"cli-testing-library": "1.0.0-alpha.9",
"eslint": "^8.3.0",

@@ -53,2 +52,3 @@ "eslint-config-prettier": "^8.3.0",

"chalk": "^5.0.0",
"cli-testing-library": "^1.0.0-alpha.10",
"interpret": "^2.2.0",

@@ -55,0 +55,0 @@ "liftoff": "^4.0.0",

@@ -124,2 +124,3 @@ #!/usr/bin/env node

function doThePlop(generator, bypassArr) {
let failedActions = false;
generator

@@ -160,2 +161,3 @@ .runPrompts(bypassArr)

progressSpinner.fail(line);
failedActions = true;
progressSpinner.start();

@@ -166,3 +168,6 @@ };

.runActions(answers, { onSuccess, onFailure, onComment })
.then(() => progressSpinner.stop());
.then(() => {
progressSpinner.stop();
if (failedActions) process.exit(1);
});
})

@@ -169,0 +174,0 @@ .catch(function (err) {

@@ -16,3 +16,3 @@ import { resolve, dirname } from "node:path";

const { findByText, fireEvent } = await renderPlop(["addAndNameFile"], {
const { findByText, userEvent } = await renderPlop(["addAndNameFile"], {
cwd: resolve(__dirname, "./examples/add-action"),

@@ -23,4 +23,4 @@ });

fireEvent.type("new-output");
fireEvent.enter();
userEvent.keyboard("new-output");
userEvent.keyboard("[Enter]");

@@ -32,4 +32,2 @@ await waitFor(() => fs.promises.stat(expectedFilePath));

expect(data).toMatch(/Hello/);
fireEvent.sigterm();
});

@@ -42,3 +40,3 @@

const { findByText, fireEvent } = await renderPlop(["addAndChangeFile"], {
const { findByText, userEvent } = await renderPlop(["addAndChangeFile"], {
cwd: resolve(__dirname, "./examples/add-action"),

@@ -49,4 +47,4 @@ });

fireEvent.type("Corbin");
fireEvent.enter();
userEvent.keyboard("Corbin");
userEvent.keyboard("[Enter]");

@@ -58,4 +56,2 @@ await waitFor(() => fs.promises.stat(expectedFilePath));

expect(data).toMatch(/Hi Corbin!/);
fireEvent.sigterm();
});

@@ -62,0 +58,0 @@

@@ -9,43 +9,39 @@ import { resolve, dirname } from "node:path";

test("should load ESM file", async () => {
const { findByText, fireEvent } = await renderPlop([], {
const { findByText, userEvent } = await renderPlop([], {
cwd: resolve(__dirname, "./examples/esm"),
});
expect(await findByText("What is your name?")).toBeTruthy();
fireEvent.type("Joe");
userEvent.keyboard("Joe");
expect(await findByText("Joe")).toBeTruthy();
fireEvent.enter();
fireEvent.sigterm();
userEvent.keyboard("[Enter]");
});
test("should load MJS file", async () => {
const { findByText, fireEvent } = await renderPlop([], {
const { findByText, userEvent } = await renderPlop([], {
cwd: resolve(__dirname, "./examples/mjs"),
});
expect(await findByText("What is your name?")).toBeTruthy();
fireEvent.type("Joe");
userEvent.keyboard("Joe");
expect(await findByText("Joe")).toBeTruthy();
fireEvent.enter();
fireEvent.sigterm();
userEvent.keyboard("[Enter]");
});
test.only("should load CJS file", async () => {
const { findByText, fireEvent } = await renderPlop([], {
test("should load CJS file", async () => {
const { findByText, userEvent } = await renderPlop([], {
cwd: resolve(__dirname, "./examples/cjs"),
});
expect(await findByText("What is your name?")).toBeTruthy();
fireEvent.type("Joe");
userEvent.keyboard("Joe");
expect(await findByText("Joe")).toBeTruthy();
fireEvent.enter();
fireEvent.sigterm();
userEvent.keyboard("[Enter]");
});
test("should load JS module='commonjs' file", async () => {
const { findByText, fireEvent } = await renderPlop([], {
const { findByText, userEvent } = await renderPlop([], {
cwd: resolve(__dirname, "./examples/cjs-js"),
});
expect(await findByText("What is your name?")).toBeTruthy();
fireEvent.type("Joe");
userEvent.keyboard("Joe");
expect(await findByText("Joe")).toBeTruthy();
fireEvent.enter();
fireEvent.sigterm();
userEvent.keyboard("[Enter]");
});

@@ -31,14 +31,13 @@ import { resolve, dirname } from "node:path";

test("should display inquirer prompts", async () => {
const { findByText, fireEvent } = await renderPlop([], {
const { findByText, userEvent } = await renderPlop([], {
cwd: resolve(__dirname, "./examples/prompt-only"),
});
expect(await findByText("What is your name?")).toBeTruthy();
fireEvent.type("Joe");
userEvent.keyboard("Joe");
expect(await findByText("Joe")).toBeTruthy();
fireEvent.enter();
fireEvent.sigterm();
userEvent.keyboard("[Enter]");
});
test("Should handle generator prompt", async () => {
const { findByText, clear, fireEvent } = await renderPlop([""], {
const { findByText, clear, userEvent } = await renderPlop([""], {
cwd: resolve(__dirname, "./examples/javascript"),

@@ -50,13 +49,11 @@ });

clear();
fireEvent.up();
fireEvent.down();
fireEvent.enter();
userEvent.keyboard("[ArrowUp]");
userEvent.keyboard("[ArrowDown]");
userEvent.keyboard("[Enter]");
expect(await findByText("this is a test")).toBeTruthy();
fireEvent.sigterm();
});
test("Should bypass generator prompt", async () => {
const { findByText, fireEvent } = await renderPlop(["test"], {
const { findByText } = await renderPlop(["test"], {
cwd: resolve(__dirname, "./examples/javascript"),

@@ -66,8 +63,6 @@ });

expect(await findByText("What is your name?")).toBeTruthy();
fireEvent.sigterm();
});
test("Should bypass prompt by input", async () => {
const { queryByText, findByText, fireEvent } = await renderPlop(["Frank"], {
const { queryByText, findByText } = await renderPlop(["Frank"], {
cwd: resolve(__dirname, "./examples/prompt-only"),

@@ -78,8 +73,6 @@ });

expect(await findByText("What pizza toppings do you like?")).toBeTruthy();
fireEvent.sigterm();
});
test("Should bypass prompt by input placeholder", async () => {
const { queryByText, findByText, fireEvent } = await renderPlop(
const { queryByText, findByText, userEvent } = await renderPlop(
["_", "Cheese"],

@@ -92,10 +85,8 @@ {

expect(await findByText("What is your name?")).toBeTruthy();
fireEvent.enter();
userEvent.keyboard("[Enter]");
expect(await queryByText("What pizza toppings do you like?")).toBeFalsy();
fireEvent.sigterm();
});
test("Should bypass prompt by name", async () => {
const { queryByText, findByText, fireEvent } = await renderPlop(
const { queryByText, findByText } = await renderPlop(
["--", "--name", "Frank"],

@@ -109,6 +100,4 @@ {

expect(await findByText("What pizza toppings do you like?")).toBeTruthy();
fireEvent.sigterm();
});
test.todo("Dynamic actions");

@@ -30,3 +30,2 @@ import fs from "node:fs";

expect(await findByText("What is your name?")).toBeTruthy();
fireEvent.sigterm();
});

@@ -44,3 +43,2 @@

expect(await findByText("What pizza toppings do you like?")).toBeTruthy();
fireEvent.sigterm();
});

@@ -58,3 +56,2 @@

expect(await findByText("What pizza toppings do you like?")).toBeTruthy();
fireEvent.sigterm();
});

@@ -76,4 +73,2 @@

expect(data).toMatch(/Hello/);
fireEvent.sigterm();
});

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc