diff --git a/packages/node-plop/src/actions/addMany.js b/packages/node-plop/src/actions/addMany.js index f113cc9..cb1644a 100644 --- a/packages/node-plop/src/actions/addMany.js +++ b/packages/node-plop/src/actions/addMany.js @@ -100,11 +100,11 @@ function dropFileRootFolder(file) { function stripExtensions(shouldStrip, fileName) { const maybeFile = path.parse(fileName); - if ( - Array.isArray(shouldStrip) && - !shouldStrip.map((item) => `.${item}`).includes(maybeFile.ext) - ) - return fileName; + if (Array.isArray(shouldStrip)) { + return shouldStrip.map((item) => `.${item}`).includes(maybeFile.ext) + ? path.join(maybeFile.dir, maybeFile.name) + : fileName; + } return path.parse(maybeFile.name).ext !== "" || maybeFile.name.startsWith(".") ? path.join(maybeFile.dir, maybeFile.name) diff --git a/packages/node-plop/tests/addMany-strip-extensions/addMany-strip-extensions.spec.js b/packages/node-plop/tests/addMany-strip-extensions/addMany-strip-extensions.spec.js index 213807b..0c8d2b1 100644 --- a/packages/node-plop/tests/addMany-strip-extensions/addMany-strip-extensions.spec.js +++ b/packages/node-plop/tests/addMany-strip-extensions/addMany-strip-extensions.spec.js @@ -38,10 +38,7 @@ describe("addMany-strip-extensions", function () { }); test("Check that dot files generated without hbs extension", () => { - const dotPath = path.resolve( - testSrcPath, - "remove-dotfile-hbs/.gitignore" - ); + const dotPath = path.resolve(testSrcPath, "remove-dotfile-hbs/.gitignore"); const dotPathWithExtension = path.resolve( testSrcPath, "remove-dotfile-hbs/.eslintrc.cjs" @@ -50,4 +47,18 @@ describe("addMany-strip-extensions", function () { expect(fs.existsSync(dotPath)).toBe(true); expect(fs.existsSync(dotPathWithExtension)).toBe(true); }); + + test("Check that hbs is removed even when there are no other extensions", () => { + const noExtensionPath = path.resolve( + testSrcPath, + "remove-noextension-hbs/Dockerfile" + ); + const extensionPath = path.resolve( + testSrcPath, + "remove-noextension-hbs/Dockerfile.test" + ); + + expect(fs.existsSync(noExtensionPath)).toBe(true); + expect(fs.existsSync(extensionPath)).toBe(true); + }); }); diff --git a/packages/node-plop/tests/addMany-strip-extensions/plop-templates/remove-noextension-hbs/Dockerfile.hbs b/packages/node-plop/tests/addMany-strip-extensions/plop-templates/remove-noextension-hbs/Dockerfile.hbs new file mode 100644 index 0000000..e69de29 diff --git a/packages/node-plop/tests/addMany-strip-extensions/plop-templates/remove-noextension-hbs/Dockerfile.test.hbs b/packages/node-plop/tests/addMany-strip-extensions/plop-templates/remove-noextension-hbs/Dockerfile.test.hbs new file mode 100644 index 0000000..e69de29 diff --git a/packages/node-plop/tests/addMany-strip-extensions/plopfile.js b/packages/node-plop/tests/addMany-strip-extensions/plopfile.js index 55e048a..9315b64 100644 --- a/packages/node-plop/tests/addMany-strip-extensions/plopfile.js +++ b/packages/node-plop/tests/addMany-strip-extensions/plopfile.js @@ -38,6 +38,13 @@ export default function (plop) { abortOnFail: true, globOptions: { dot: true }, }, + { + type: "addMany", + destination: "src/", + stripExtensions: ["hbs"], + templateFiles: "plop-templates/remove-noextension-hbs/*", + abortOnFail: true, + }, ], }); }