From ef09f3bb33d866bbf0fd6ea17b5bf67d2e52cc4b Mon Sep 17 00:00:00 2001 From: Sendil Kumar Date: Tue, 25 Sep 2018 11:55:58 +0200 Subject: [PATCH 01/20] chore(test): add migrate test --- package.json | 11 +++- .../__snapshots__/migrate.test.ts.snap | 59 +++++++++++++++++++ .../migrate.test.ts} | 27 ++++----- packages/migrate/migrate.ts | 2 +- 4 files changed, 79 insertions(+), 20 deletions(-) create mode 100644 packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap rename packages/migrate/{migrate.test.js => __tests__/migrate.test.ts} (55%) diff --git a/package.json b/package.json index 7d01f44c58e..7261db6e2a1 100644 --- a/package.json +++ b/package.json @@ -31,12 +31,14 @@ "changelog": "conventional-changelog --config ./build/changelog-generator/index.js --infile CHANGELOG.md --same-file", "clean:all": "rimraf node_modules packages/*/node_modules", "commit": "git-cz", + "commitmsg": "commitlint -E GIT_PARAMS", "docs": "typedoc", "format": "prettier-eslint ./bin/*.js ./test/**/*.js ./packages/**/*.js --write", "lint:codeOnly": "eslint \"{bin}/**/!(__testfixtures__)/*.js\" \"{bin}/**.js\"", "lint": "eslint \"./bin/*.js\" \"./test/**/*.js\" \"packages/**/!(node_modules)/*.test.js\"", "postinstall": "lerna bootstrap", "pretest": "npm run build && npm run lint && npm run tslint", + "precommit": "lint-staged", "reportCoverage": "nyc report --reporter=json && codecov -f coverage/coverage-final.json --disable=gcov", "test": "nyc jest --maxWorkers=4 --reporters=default --reporters=jest-junit", "test:ci": "nyc jest --maxWorkers=$(nproc) --reporters=default --reporters=jest-junit", @@ -69,9 +71,14 @@ "html", "cobertura" ], - "moduleNameMapper": { + "transform": { "^.+\\.(ts)?$": "ts-jest" - } + }, + "testRegex": "/__tests__/.*\\.(js|ts)$", + "moduleFileExtensions": [ + "ts", + "js" + ] }, "nyc": { "include": [ diff --git a/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap b/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap new file mode 100644 index 00000000000..766ce380f1a --- /dev/null +++ b/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap @@ -0,0 +1,59 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`transform should not transform if no transformations defined: +module.exports = { + devtool: 'eval', + entry: [ + './src/index' + ], + output: { + path: path.join(__dirname, 'dist'), + filename: 'index.js' + }, + module: { + loaders: [{ + test: /.js$/, + loaders: ['babel'], + include: path.join(__dirname, 'src') + }] + }, + resolve: { + root: path.resolve('/src'), + modules: ['node_modules'] + }, + plugins: [ + new webpack.optimize.UglifyJsPlugin(), + new webpack.optimize.OccurrenceOrderPlugin() + ], + debug: true +}; + 1`] = ` +" +module.exports = { + devtool: 'eval', + entry: [ + './src/index' + ], + output: { + path: path.join(__dirname, 'dist'), + filename: 'index.js' + }, + module: { + loaders: [{ + test: /.js$/, + loaders: ['babel'], + include: path.join(__dirname, 'src') + }] + }, + resolve: { + root: path.resolve('/src'), + modules: ['node_modules'] + }, + plugins: [ + new webpack.optimize.UglifyJsPlugin(), + new webpack.optimize.OccurrenceOrderPlugin() + ], + debug: true +}; +" +`; diff --git a/packages/migrate/migrate.test.js b/packages/migrate/__tests__/migrate.test.ts similarity index 55% rename from packages/migrate/migrate.test.js rename to packages/migrate/__tests__/migrate.test.ts index 1ba4601cd11..986e2cdf98d 100644 --- a/packages/migrate/migrate.test.js +++ b/packages/migrate/__tests__/migrate.test.ts @@ -1,7 +1,4 @@ -"use strict"; - -const transform = require("./migrate").transform; -const transformations = require("./migrate").transformations; +import { transform, transformations } from "../migrate"; const input = ` module.exports = { @@ -33,34 +30,30 @@ module.exports = { `; describe("transform", () => { - it("should not transform if no transformations defined", done => { - transform(input, []).then(output => { + it("should not transform if no transformations defined", async () => { + transform(input, []).then((output) => { expect(output).toMatchSnapshot(input); - done(); }); }); - it("should transform using all transformations", done => { - transform(input).then(output => { + it("should transform using all transformations", async () => { + transform(input).then((output) => { expect(output).toMatchSnapshot(); - done(); }); }); - it("should transform only using specified transformations", done => { - transform(input, [transformations.loadersTransform]).then(output => { + it("should transform only using specified transformations", async () => { + transform(input, [transformations.loadersTransform]).then((output) => { expect(output).toMatchSnapshot(); - done(); }); }); - it("should respect recast options", done => { + it("should respect recast options", async () => { transform(input, undefined, { quote: "double", - trailingComma: true - }).then(output => { + trailingComma: true, + }).then((output) => { expect(output).toMatchSnapshot(); - done(); }); }); }); diff --git a/packages/migrate/migrate.ts b/packages/migrate/migrate.ts index 6d3ad4ec6f3..ac3b2d29914 100644 --- a/packages/migrate/migrate.ts +++ b/packages/migrate/migrate.ts @@ -42,7 +42,7 @@ const transformsObject: ITransformsObject = { }; /* tslint:enable object-literal-sort-keys */ -export const transformations = +export const transformations: any = Object .keys(transformsObject) .reduce((res: object, key: string): object => { From fcab1feec556e10cf14305646e952ba681173821 Mon Sep 17 00:00:00 2001 From: Sendil Kumar Date: Tue, 25 Sep 2018 11:57:55 +0200 Subject: [PATCH 02/20] chore(lint): revert change --- package.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/package.json b/package.json index 7261db6e2a1..b80b3df1dde 100644 --- a/package.json +++ b/package.json @@ -31,14 +31,12 @@ "changelog": "conventional-changelog --config ./build/changelog-generator/index.js --infile CHANGELOG.md --same-file", "clean:all": "rimraf node_modules packages/*/node_modules", "commit": "git-cz", - "commitmsg": "commitlint -E GIT_PARAMS", "docs": "typedoc", "format": "prettier-eslint ./bin/*.js ./test/**/*.js ./packages/**/*.js --write", "lint:codeOnly": "eslint \"{bin}/**/!(__testfixtures__)/*.js\" \"{bin}/**.js\"", "lint": "eslint \"./bin/*.js\" \"./test/**/*.js\" \"packages/**/!(node_modules)/*.test.js\"", "postinstall": "lerna bootstrap", "pretest": "npm run build && npm run lint && npm run tslint", - "precommit": "lint-staged", "reportCoverage": "nyc report --reporter=json && codecov -f coverage/coverage-final.json --disable=gcov", "test": "nyc jest --maxWorkers=4 --reporters=default --reporters=jest-junit", "test:ci": "nyc jest --maxWorkers=$(nproc) --reporters=default --reporters=jest-junit", From 2a86442508383412cdcba7aa4a643541fa4ea96c Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sat, 29 Sep 2018 08:47:46 +0100 Subject: [PATCH 03/20] chore(test): moved to typescript migrate tests --- package.json | 5 +- .../__snapshots__/migrate.test.js.snap | 158 ---------- .../__snapshots__/migrate.test.ts.snap | 99 ++++++ packages/migrate/__tests__/migrate.test.ts | 42 +-- .../__snapshots__/loaders.test.js.snap | 270 ---------------- .../__testfixtures__/loaders-0.input.js | 65 ---- .../__testfixtures__/loaders-1.input.js | 8 - .../__testfixtures__/loaders-2.input.js | 15 - .../__testfixtures__/loaders-3.input.js | 8 - .../__testfixtures__/loaders-4.input.js | 8 - .../__testfixtures__/loaders-5.input.js | 12 - .../__testfixtures__/loaders-6.input.js | 12 - .../__testfixtures__/loaders-8.input.js | 14 - .../__testfixtures__/loaders-9.input.js | 14 - .../__snapshots__/loaders.test.ts.snap | 290 ++++++++++++++++++ .../__testfixtures__/loaders-0.input.ts | 94 ++++++ .../__testfixtures__/loaders-1.input.ts | 10 + .../__testfixtures__/loaders-2.input.ts | 20 ++ .../__testfixtures__/loaders-3.input.ts | 10 + .../__testfixtures__/loaders-4.input.ts | 10 + .../__testfixtures__/loaders-5.input.ts | 17 + .../__testfixtures__/loaders-6.input.ts | 16 + .../__testfixtures__/loaders-7.input.ts | 14 + .../__testfixtures__/loaders-8.input.ts | 12 + .../__testfixtures__/loaders-9.input.ts | 14 + .../migrate/loaders/__tests__/loaders.test.ts | 12 + packages/migrate/loaders/loaders.test.js | 13 - .../__testfixtures__/outputPath-0.input.js | 5 - .../__testfixtures__/outputPath-1.input.js | 6 - .../__testfixtures__/outputPath-2.input.js | 6 - .../__snapshots__/outputPath.test.ts.snap} | 28 +- .../__testfixtures__/outputPath-0.input.ts | 5 + .../__testfixtures__/outputPath-1.input.ts | 6 + .../__testfixtures__/outputPath-2.input.ts | 6 + .../outputPath/__tests__/outputPath.test.ts | 6 + .../migrate/outputPath/outputPath.test.js | 7 - packages/migrate/outputPath/outputPath.ts | 113 +++---- .../__testfixtures__/.editorconfig~HEAD | 3 - ...g~ec53c68744edef90a7889cda35f1527442a79450 | 3 - .../removeDeprecatedPlugins-0.input.js | 6 - .../removeDeprecatedPlugins-1.input.js | 6 - .../removeDeprecatedPlugins-2.input.js | 8 - .../removeDeprecatedPlugins-3.input.js | 7 - .../removeDeprecatedPlugins-4.input.js | 8 - .../removeDeprecatedPlugins.test.ts.snap} | 37 ++- .../removeDeprecatedPlugins-0.input.ts | 5 + .../removeDeprecatedPlugins-1.input.ts | 6 + .../removeDeprecatedPlugins-2.input.ts | 10 + .../removeDeprecatedPlugins-3.input.ts | 9 + .../removeDeprecatedPlugins-4.input.ts | 8 + .../__tests__/removeDeprecatedPlugins.test.ts | 28 ++ .../removeDeprecatedPlugins.test.js | 9 - .../removeDeprecatedPlugins.ts | 55 ++-- .../__testfixtures__/.editorconfig~HEAD | 3 - ...g~ec53c68744edef90a7889cda35f1527442a79450 | 3 - .../removeJsonLoader-0.input.js | 19 -- .../removeJsonLoader-1.input.js | 12 - .../removeJsonLoader-2.input.js | 10 - .../removeJsonLoader-3.input.js | 11 - .../removeJsonLoader.test.ts.snap} | 62 ++-- .../removeJsonLoader-0.input.ts | 20 ++ .../removeJsonLoader-1.input.ts | 17 + .../removeJsonLoader-2.input.ts | 10 + .../removeJsonLoader-3.input.ts | 14 + .../__tests__/removeJsonLoader.test.ts | 22 ++ .../removeJsonLoader/removeJsonLoader.test.js | 8 - .../__snapshots__/resolve.test.js.snap | 24 -- .../__testfixtures__/.editorconfig~HEAD | 3 - ...g~ec53c68744edef90a7889cda35f1527442a79450 | 3 - .../resolve/__testfixtures__/resolve.input.js | 20 -- .../__snapshots__/resolve.test.ts.snap | 29 ++ .../__testfixtures__/resolve.input.ts | 25 ++ .../migrate/resolve/__tests__/resolve.test.ts | 4 + packages/migrate/resolve/resolve.test.js | 5 - packages/migrate/types/index.ts | 0 packages/utils/defineTest.ts | 144 ++++----- 76 files changed, 1105 insertions(+), 1021 deletions(-) delete mode 100644 packages/migrate/__snapshots__/migrate.test.js.snap delete mode 100644 packages/migrate/loaders/__snapshots__/loaders.test.js.snap delete mode 100644 packages/migrate/loaders/__testfixtures__/loaders-0.input.js delete mode 100644 packages/migrate/loaders/__testfixtures__/loaders-1.input.js delete mode 100644 packages/migrate/loaders/__testfixtures__/loaders-2.input.js delete mode 100644 packages/migrate/loaders/__testfixtures__/loaders-3.input.js delete mode 100644 packages/migrate/loaders/__testfixtures__/loaders-4.input.js delete mode 100644 packages/migrate/loaders/__testfixtures__/loaders-5.input.js delete mode 100644 packages/migrate/loaders/__testfixtures__/loaders-6.input.js delete mode 100644 packages/migrate/loaders/__testfixtures__/loaders-8.input.js delete mode 100644 packages/migrate/loaders/__testfixtures__/loaders-9.input.js create mode 100644 packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-0.input.ts create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-1.input.ts create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-2.input.ts create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-3.input.ts create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-4.input.ts create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-5.input.ts create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-6.input.ts create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.ts create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.ts create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-9.input.ts create mode 100644 packages/migrate/loaders/__tests__/loaders.test.ts delete mode 100644 packages/migrate/loaders/loaders.test.js delete mode 100644 packages/migrate/outputPath/__testfixtures__/outputPath-0.input.js delete mode 100644 packages/migrate/outputPath/__testfixtures__/outputPath-1.input.js delete mode 100644 packages/migrate/outputPath/__testfixtures__/outputPath-2.input.js rename packages/migrate/outputPath/{__snapshots__/outputPath.test.js.snap => __tests__/__snapshots__/outputPath.test.ts.snap} (57%) create mode 100644 packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-0.input.ts create mode 100644 packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.ts create mode 100644 packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.ts create mode 100644 packages/migrate/outputPath/__tests__/outputPath.test.ts delete mode 100644 packages/migrate/outputPath/outputPath.test.js delete mode 100644 packages/migrate/removeDeprecatedPlugins/__testfixtures__/.editorconfig~HEAD delete mode 100644 packages/migrate/removeDeprecatedPlugins/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 delete mode 100644 packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-0.input.js delete mode 100644 packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-1.input.js delete mode 100644 packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-2.input.js delete mode 100644 packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-3.input.js delete mode 100644 packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-4.input.js rename packages/migrate/removeDeprecatedPlugins/{__snapshots__/removeDeprecatedPlugins.test.js.snap => __tests__/__snapshots__/removeDeprecatedPlugins.test.ts.snap} (57%) create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.ts create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.ts create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.ts create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.ts create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.ts create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/removeDeprecatedPlugins.test.ts delete mode 100644 packages/migrate/removeDeprecatedPlugins/removeDeprecatedPlugins.test.js delete mode 100644 packages/migrate/removeJsonLoader/__testfixtures__/.editorconfig~HEAD delete mode 100644 packages/migrate/removeJsonLoader/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 delete mode 100644 packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-0.input.js delete mode 100644 packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-1.input.js delete mode 100644 packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-2.input.js delete mode 100644 packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-3.input.js rename packages/migrate/removeJsonLoader/{__snapshots__/removeJsonLoader.test.js.snap => __tests__/__snapshots__/removeJsonLoader.test.ts.snap} (52%) create mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.ts create mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.ts create mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.ts create mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.ts create mode 100644 packages/migrate/removeJsonLoader/__tests__/removeJsonLoader.test.ts delete mode 100644 packages/migrate/removeJsonLoader/removeJsonLoader.test.js delete mode 100644 packages/migrate/resolve/__snapshots__/resolve.test.js.snap delete mode 100644 packages/migrate/resolve/__testfixtures__/.editorconfig~HEAD delete mode 100644 packages/migrate/resolve/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 delete mode 100644 packages/migrate/resolve/__testfixtures__/resolve.input.js create mode 100644 packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap create mode 100644 packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.ts create mode 100644 packages/migrate/resolve/__tests__/resolve.test.ts delete mode 100644 packages/migrate/resolve/resolve.test.js delete mode 100644 packages/migrate/types/index.ts diff --git a/package.json b/package.json index b80b3df1dde..075b43935c4 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,8 @@ "travis:integration": "npm run build && npm run test && npm run reportCoverage", "travis:lint": "lerna bootstrap && npm run build && npm run lint && npm run tslint && npm run bundlesize", "tslint": "tslint -c tslint.json \"packages/**/*.ts\"", - "watch": "npm run build && tsc -w" + "watch": "npm run build && tsc -w", + "test:local": "jest --watch" }, "husky": { "hooks": { @@ -72,7 +73,7 @@ "transform": { "^.+\\.(ts)?$": "ts-jest" }, - "testRegex": "/__tests__/.*\\.(js|ts)$", + "testRegex": "/__tests__/.*\\.(test.js|test.ts)$", "moduleFileExtensions": [ "ts", "js" diff --git a/packages/migrate/__snapshots__/migrate.test.js.snap b/packages/migrate/__snapshots__/migrate.test.js.snap deleted file mode 100644 index 7da8c9cc8a4..00000000000 --- a/packages/migrate/__snapshots__/migrate.test.js.snap +++ /dev/null @@ -1,158 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`transform should not transform if no transformations defined: -module.exports = { - devtool: 'eval', - entry: [ - './src/index' - ], - output: { - path: path.join(__dirname, 'dist'), - filename: 'index.js' - }, - module: { - loaders: [{ - test: /.js$/, - loaders: ['babel'], - include: path.join(__dirname, 'src') - }] - }, - resolve: { - root: path.resolve('/src'), - modules: ['node_modules'] - }, - plugins: [ - new webpack.optimize.UglifyJsPlugin(), - new webpack.optimize.OccurrenceOrderPlugin() - ], - debug: true -}; - 1`] = ` -" -module.exports = { - devtool: 'eval', - entry: [ - './src/index' - ], - output: { - path: path.join(__dirname, 'dist'), - filename: 'index.js' - }, - module: { - loaders: [{ - test: /.js$/, - loaders: ['babel'], - include: path.join(__dirname, 'src') - }] - }, - resolve: { - root: path.resolve('/src'), - modules: ['node_modules'] - }, - plugins: [ - new webpack.optimize.UglifyJsPlugin(), - new webpack.optimize.OccurrenceOrderPlugin() - ], - debug: true -}; -" -`; - -exports[`transform should respect recast options 1`] = ` -" -module.exports = { - devtool: 'eval', - entry: [ - './src/index' - ], - output: { - path: path.join(__dirname, 'dist'), - filename: 'index.js' - }, - module: { - rules: [{ - test: /.js$/, - use: [{ - loader: \\"babel-loader\\", - }], - include: path.join(__dirname, 'src') - }] - }, - resolve: { - modules: ['node_modules', path.resolve('/src')], - }, - plugins: [new webpack.LoaderOptionsPlugin({ - debug: true, - })], - optimization: { - minimize: true, - } -}; -" -`; - -exports[`transform should transform only using specified transformations 1`] = ` -" -module.exports = { - devtool: 'eval', - entry: [ - './src/index' - ], - output: { - path: path.join(__dirname, 'dist'), - filename: 'index.js' - }, - module: { - rules: [{ - test: /.js$/, - use: [{ - loader: 'babel-loader' - }], - include: path.join(__dirname, 'src') - }] - }, - resolve: { - root: path.resolve('/src'), - modules: ['node_modules'] - }, - plugins: [ - new webpack.optimize.UglifyJsPlugin(), - new webpack.optimize.OccurrenceOrderPlugin() - ], - debug: true -}; -" -`; - -exports[`transform should transform using all transformations 1`] = ` -" -module.exports = { - devtool: 'eval', - entry: [ - './src/index' - ], - output: { - path: path.join(__dirname, 'dist'), - filename: 'index.js' - }, - module: { - rules: [{ - test: /.js$/, - use: [{ - loader: 'babel-loader' - }], - include: path.join(__dirname, 'src') - }] - }, - resolve: { - modules: ['node_modules', path.resolve('/src')] - }, - plugins: [new webpack.LoaderOptionsPlugin({ - debug: true - })], - optimization: { - minimize: true - } -}; -" -`; diff --git a/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap b/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap index 766ce380f1a..7da8c9cc8a4 100644 --- a/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap +++ b/packages/migrate/__tests__/__snapshots__/migrate.test.ts.snap @@ -57,3 +57,102 @@ module.exports = { }; " `; + +exports[`transform should respect recast options 1`] = ` +" +module.exports = { + devtool: 'eval', + entry: [ + './src/index' + ], + output: { + path: path.join(__dirname, 'dist'), + filename: 'index.js' + }, + module: { + rules: [{ + test: /.js$/, + use: [{ + loader: \\"babel-loader\\", + }], + include: path.join(__dirname, 'src') + }] + }, + resolve: { + modules: ['node_modules', path.resolve('/src')], + }, + plugins: [new webpack.LoaderOptionsPlugin({ + debug: true, + })], + optimization: { + minimize: true, + } +}; +" +`; + +exports[`transform should transform only using specified transformations 1`] = ` +" +module.exports = { + devtool: 'eval', + entry: [ + './src/index' + ], + output: { + path: path.join(__dirname, 'dist'), + filename: 'index.js' + }, + module: { + rules: [{ + test: /.js$/, + use: [{ + loader: 'babel-loader' + }], + include: path.join(__dirname, 'src') + }] + }, + resolve: { + root: path.resolve('/src'), + modules: ['node_modules'] + }, + plugins: [ + new webpack.optimize.UglifyJsPlugin(), + new webpack.optimize.OccurrenceOrderPlugin() + ], + debug: true +}; +" +`; + +exports[`transform should transform using all transformations 1`] = ` +" +module.exports = { + devtool: 'eval', + entry: [ + './src/index' + ], + output: { + path: path.join(__dirname, 'dist'), + filename: 'index.js' + }, + module: { + rules: [{ + test: /.js$/, + use: [{ + loader: 'babel-loader' + }], + include: path.join(__dirname, 'src') + }] + }, + resolve: { + modules: ['node_modules', path.resolve('/src')] + }, + plugins: [new webpack.LoaderOptionsPlugin({ + debug: true + })], + optimization: { + minimize: true + } +}; +" +`; diff --git a/packages/migrate/__tests__/migrate.test.ts b/packages/migrate/__tests__/migrate.test.ts index 986e2cdf98d..4369f0f86b7 100644 --- a/packages/migrate/__tests__/migrate.test.ts +++ b/packages/migrate/__tests__/migrate.test.ts @@ -30,30 +30,34 @@ module.exports = { `; describe("transform", () => { - it("should not transform if no transformations defined", async () => { - transform(input, []).then((output) => { - expect(output).toMatchSnapshot(input); - }); + it("should not transform if no transformations defined", (done) => { + transform(input, []).then((output) => { + expect(output).toMatchSnapshot(input); + done(); }); + }); - it("should transform using all transformations", async () => { - transform(input).then((output) => { - expect(output).toMatchSnapshot(); - }); + it("should transform using all transformations", (done) => { + transform(input).then((output) => { + expect(output).toMatchSnapshot(); + done(); }); + }); - it("should transform only using specified transformations", async () => { - transform(input, [transformations.loadersTransform]).then((output) => { - expect(output).toMatchSnapshot(); - }); + it("should transform only using specified transformations", (done) => { + transform(input, [transformations.loadersTransform]).then((output) => { + expect(output).toMatchSnapshot(); + done(); }); + }); - it("should respect recast options", async () => { - transform(input, undefined, { - quote: "double", - trailingComma: true, - }).then((output) => { - expect(output).toMatchSnapshot(); - }); + it("should respect recast options", (done) => { + transform(input, undefined, { + quote: "double", + trailingComma: true, + }).then((output) => { + expect(output).toMatchSnapshot(); + done(); }); + }); }); diff --git a/packages/migrate/loaders/__snapshots__/loaders.test.js.snap b/packages/migrate/loaders/__snapshots__/loaders.test.js.snap deleted file mode 100644 index 02b59594ec0..00000000000 --- a/packages/migrate/loaders/__snapshots__/loaders.test.js.snap +++ /dev/null @@ -1,270 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`loaders transforms correctly using "loaders-0" data 1`] = ` -"export default [{ - module: { - rules: [{ - test: /\\\\.js$/, - use: [{ - loader: 'babel-loader' - }] - }] - } -}, { - module: { - rules: [{ - test: /\\\\.css$/, - use: [{ - loader: 'style-loader' - }, { - loader: 'css-loader', - - options: { - modules: true, - importLoaders: 1, - string: 'test123' - } - }] - }] - } -}, { - module: { - rules: [{ - test: /\\\\.css$/, - use: [{ - loader: 'style-loader' - }, { - loader: 'css-loader', - options: { - modules: true - } - }] - }] - } -}, { - module: { - rules:[{ - test: /\\\\.js$/, - - use: [{ - loader: 'eslint-loader' - }], - - enforce: 'pre' - }] - } -}, { - module: { - rules:[{ - test: /\\\\.js$/, - - use: [{ - loader: 'my-post-loader' - }], - - enforce: 'post' - }] - } -}, { - module: { - rules: [{ - test: /\\\\.js$/, - use: [{ - loader: 'babel-loader' - }] - }, { - test: /\\\\.js$/, - - use: [{ - loader: 'eslint-loader' - }], - - enforce: 'pre' - }] - } -}, { - module: { - rules: [{ - test: /\\\\.js$/, - use: [{ - loader: 'babel-loader' - }] - }, { - test: /\\\\.js$/, - - use: [{ - loader: 'my-post-loader' - }], - - enforce: 'post' - }] - } -}]; -" -`; - -exports[`loaders transforms correctly using "loaders-1" data 1`] = ` -"export default { - module: { - rules: [{ - test: /\\\\.css$/, - use: [{ - loader: 'style-loader' - }, { - loader: 'css-loader', - - options: { - modules: true, - importLoaders: 1, - string: 'test123' - } - }] - }] - } -} -" -`; - -exports[`loaders transforms correctly using "loaders-2" data 1`] = ` -"export default { - module: { - rules: [{ - test: /\\\\.css$/, - use: [{ - loader: 'style-loader' - }, { - loader: 'css-loader', - options: { - modules: true - } - }] - }] - } -} -" -`; - -exports[`loaders transforms correctly using "loaders-3" data 1`] = ` -"export default { - module: { - rules:[{ - test: /\\\\.js$/, - - use: [{ - loader: 'eslint-loader' - }], - - enforce: 'pre' - }] - } -} -" -`; - -exports[`loaders transforms correctly using "loaders-4" data 1`] = ` -"export default { - module: { - rules:[{ - test: /\\\\.js$/, - - use: [{ - loader: 'my-post-loader' - }], - - enforce: 'post' - }] - } -} -" -`; - -exports[`loaders transforms correctly using "loaders-5" data 1`] = ` -"export default { - module: { - rules: [{ - test: /\\\\.js$/, - use: [{ - loader: 'babel-loader' - }] - }, { - test: /\\\\.js$/, - - use: [{ - loader: 'eslint-loader' - }], - - enforce: 'pre' - }] - } -} -" -`; - -exports[`loaders transforms correctly using "loaders-6" data 1`] = ` -"export default { - module: { - rules: [{ - test: /\\\\.js$/, - use: [{ - loader: 'babel-loader' - }] - }, { - test: /\\\\.js$/, - - use: [{ - loader: 'my-post-loader' - }], - - enforce: 'post' - }] - } -} -" -`; - -exports[`loaders transforms correctly using "loaders-7" data 1`] = ` -"export default { - module: { - rules: [ - { - test: /\\\\.js$/, - exclude: /(node_modules)/, - - use: [{ - loader: 'babel-loader', - - options: { - presets: ['@babel/preset-env'] - } - }] - } - ] - } -}; -" -`; - -exports[`loaders transforms correctly using "loaders-8" data 1`] = ` -"module.exports = { - module: { - rules: [ - { - test: /\\\\.js$/, - use: [{ - loader: 'style-loader' - }, { - loader: 'css-loader', - - options: { - modules: true, - importLoaders: 1, - string: 'test123' - } - }], - include: path.join(__dirname, 'src') - } - ] - } -} -" -`; diff --git a/packages/migrate/loaders/__testfixtures__/loaders-0.input.js b/packages/migrate/loaders/__testfixtures__/loaders-0.input.js deleted file mode 100644 index e0d498f6506..00000000000 --- a/packages/migrate/loaders/__testfixtures__/loaders-0.input.js +++ /dev/null @@ -1,65 +0,0 @@ -export default [{ - module: { - loaders: [{ - test: /\.js$/, - loader: 'babel' - }] - } -}, { - module: { - loaders: [{ - test: /\.css$/, - loader: 'style!css?modules&importLoaders=1&string=test123' - }] - } -}, { - module: { - loaders: [{ - test: /\.css$/, - loaders: [{ - loader: 'style' - }, { - loader: 'css', - query: { - modules: true - } - }] - }] - } -}, { - module: { - preLoaders:[{ - test: /\.js$/, - loader: 'eslint' - }] - } -}, { - module: { - postLoaders:[{ - test: /\.js$/, - loader: 'my-post' - }] - } -}, { - module: { - preLoaders:[{ - test: /\.js$/, - loader: 'eslint-loader' - }], - loaders: [{ - test: /\.js$/, - loader: 'babel-loader' - }] - } -}, { - module: { - loaders: [{ - test: /\.js$/, - loader: 'babel-loader' - }], - postLoaders:[{ - test: /\.js$/, - loader: 'my-post-loader' - }] - } -}]; diff --git a/packages/migrate/loaders/__testfixtures__/loaders-1.input.js b/packages/migrate/loaders/__testfixtures__/loaders-1.input.js deleted file mode 100644 index eae75024e61..00000000000 --- a/packages/migrate/loaders/__testfixtures__/loaders-1.input.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - module: { - loaders: [{ - test: /\.css$/, - loader: 'style!css?modules&importLoaders=1&string=test123' - }] - } -} diff --git a/packages/migrate/loaders/__testfixtures__/loaders-2.input.js b/packages/migrate/loaders/__testfixtures__/loaders-2.input.js deleted file mode 100644 index 771404a300c..00000000000 --- a/packages/migrate/loaders/__testfixtures__/loaders-2.input.js +++ /dev/null @@ -1,15 +0,0 @@ -export default { - module: { - loaders: [{ - test: /\.css$/, - loaders: [{ - loader: 'style' - }, { - loader: 'css', - query: { - modules: true - } - }] - }] - } -} diff --git a/packages/migrate/loaders/__testfixtures__/loaders-3.input.js b/packages/migrate/loaders/__testfixtures__/loaders-3.input.js deleted file mode 100644 index 4d49e89a89b..00000000000 --- a/packages/migrate/loaders/__testfixtures__/loaders-3.input.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - module: { - preLoaders:[{ - test: /\.js$/, - loader: 'eslint' - }] - } -} diff --git a/packages/migrate/loaders/__testfixtures__/loaders-4.input.js b/packages/migrate/loaders/__testfixtures__/loaders-4.input.js deleted file mode 100644 index cc3e076bed9..00000000000 --- a/packages/migrate/loaders/__testfixtures__/loaders-4.input.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - module: { - postLoaders:[{ - test: /\.js$/, - loader: 'my-post' - }] - } -} diff --git a/packages/migrate/loaders/__testfixtures__/loaders-5.input.js b/packages/migrate/loaders/__testfixtures__/loaders-5.input.js deleted file mode 100644 index 6fd315e4d08..00000000000 --- a/packages/migrate/loaders/__testfixtures__/loaders-5.input.js +++ /dev/null @@ -1,12 +0,0 @@ -export default { - module: { - preLoaders:[{ - test: /\.js$/, - loader: 'eslint-loader' - }], - loaders: [{ - test: /\.js$/, - loader: 'babel-loader' - }] - } -} diff --git a/packages/migrate/loaders/__testfixtures__/loaders-6.input.js b/packages/migrate/loaders/__testfixtures__/loaders-6.input.js deleted file mode 100644 index 184e4e1ad08..00000000000 --- a/packages/migrate/loaders/__testfixtures__/loaders-6.input.js +++ /dev/null @@ -1,12 +0,0 @@ -export default { - module: { - loaders: [{ - test: /\.js$/, - loader: 'babel-loader' - }], - postLoaders:[{ - test: /\.js$/, - loader: 'my-post-loader' - }] - } -} diff --git a/packages/migrate/loaders/__testfixtures__/loaders-8.input.js b/packages/migrate/loaders/__testfixtures__/loaders-8.input.js deleted file mode 100644 index 737e4515fca..00000000000 --- a/packages/migrate/loaders/__testfixtures__/loaders-8.input.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - module: { - loaders: [ - { - test: /\.js$/, - loaders: [ - 'style', - 'css?modules&importLoaders=1&string=test123' - ], - include: path.join(__dirname, 'src') - } - ] - } -} diff --git a/packages/migrate/loaders/__testfixtures__/loaders-9.input.js b/packages/migrate/loaders/__testfixtures__/loaders-9.input.js deleted file mode 100644 index 0bf440bce28..00000000000 --- a/packages/migrate/loaders/__testfixtures__/loaders-9.input.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - module: { - loaders: [ - { - test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], - loader: 'url-loader', - options: { - limit: 10000, - name: 'static/media/[name].[hash:8].[ext]' - } - } - ] - } -} diff --git a/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap b/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap new file mode 100644 index 00000000000..7d170d4c435 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap @@ -0,0 +1,290 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`loaders transforms correctly using "loaders-0" data 1`] = ` +"export default [ + { + module: { + rules: [ + { + use: [{ + loader: 'babel-loader' + }], + test: /\\\\.js$/, + }, + ], + }, + }, + { + module: { + rules: [ + { + use: [{ + loader: 'style-loader' + }, { + loader: 'css-loader', + + options: { + modules: true, + importLoaders: 1, + string: 'test123' + } + }], + test: /\\\\.css$/, + }, + ], + }, + }, + { + module: { + rules: [ + { + use: [{ + loader: 'style-loader', + }, { + loader: 'css-loader', + options: { + modules: true, + }, + }], + test: /\\\\.css$/, + }, + ], + }, + }, + { + module: { + rules: [ + { + use: [{ + loader: 'eslint-loader' + }], + + test: /\\\\.js$/, + enforce: 'pre' + }, + ], + }, + }, + { + module: { + rules: [ + { + use: [{ + loader: 'my-post-loader' + }], + + test: /\\\\.js$/, + enforce: 'post' + }, + ], + }, + }, + { + module: { + rules: [{ + use: [{ + loader: 'babel-loader' + }], + test: /\\\\.js$/, + }, { + use: [{ + loader: 'eslint-loader' + }], + + test: /\\\\.js$/, + enforce: 'pre' + }] + }, + }, + { + module: { + rules: [{ + use: [{ + loader: 'babel-loader' + }], + test: /\\\\.js$/, + }, { + use: [{ + loader: 'my-post-loader' + }], + + test: /\\\\.js$/, + enforce: 'post' + }] + }, + }, +]; +" +`; + +exports[`loaders transforms correctly using "loaders-1" data 1`] = ` +"export default { + module: { + rules: [ + { + use: [{ + loader: 'style-loader' + }, { + loader: 'css-loader', + + options: { + modules: true, + importLoaders: 1, + string: 'test123' + } + }], + test: /\\\\.css$/, + }, + ], + }, +}; +" +`; + +exports[`loaders transforms correctly using "loaders-2" data 1`] = ` +"export default { + module: { + rules: [ + { + use: [{ + loader: 'style-loader', + }, { + loader: 'css-loader', + options: { + modules: true, + }, + }], + test: /\\\\.css$/, + }, + ], + }, +}; +" +`; + +exports[`loaders transforms correctly using "loaders-3" data 1`] = ` +"export default { + module: { + rules: [ + { + use: [{ + loader: 'eslint-loader' + }], + + test: /\\\\.js$/, + enforce: 'pre' + }, + ], + }, +}; +" +`; + +exports[`loaders transforms correctly using "loaders-4" data 1`] = ` +"export default { + module: { + rules: [ + { + use: [{ + loader: 'my-post-loader' + }], + + test: /\\\\.js$/, + enforce: 'post' + }, + ], + }, +}; +" +`; + +exports[`loaders transforms correctly using "loaders-5" data 1`] = ` +"export default { + module: { + rules: [{ + use: [{ + loader: 'babel-loader' + }], + test: /\\\\.js$/, + }, { + use: [{ + loader: 'eslint-loader' + }], + + test: /\\\\.js$/, + enforce: 'pre' + }] + }, +}; +" +`; + +exports[`loaders transforms correctly using "loaders-6" data 1`] = ` +"export default { + module: { + rules: [{ + use: [{ + loader: 'babel-loader' + }], + test: /\\\\.js$/, + }, { + use: [{ + loader: 'my-post-loader' + }], + + test: /\\\\.js$/, + enforce: 'post' + }] + }, +}; +" +`; + +exports[`loaders transforms correctly using "loaders-7" data 1`] = ` +"export default { + module: { + rules: [ + { + exclude: /(node_modules)/, + + use: [{ + loader: 'babel-loader', + + options: { + presets: [\\"env\\"], + } + }], + + test: /\\\\.js$/ + }, + ], + }, +}; +" +`; + +exports[`loaders transforms correctly using "loaders-8" data 1`] = ` +"import * as path from \\"path\\"; +module.exports = { + module: { + rules: [ + { + include: path.join(__dirname, \\"src\\"), + use: [{ + loader: 'style-loader' + }, { + loader: 'css-loader', + + options: { + modules: true, + importLoaders: 1, + string: 'test123' + } + }], + test: /\\\\.js$/, + }, + ], + }, +}; +" +`; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-0.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-0.input.ts new file mode 100644 index 00000000000..aa192c06157 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-0.input.ts @@ -0,0 +1,94 @@ +export default [ + { + module: { + loaders: [ + { + loader: "babel", + test: /\.js$/, + }, + ], + }, + }, + { + module: { + loaders: [ + { + loader: "style!css?modules&importLoaders=1&string=test123", + test: /\.css$/, + }, + ], + }, + }, + { + module: { + loaders: [ + { + loaders: [ + { + loader: "style", + }, + { + loader: "css", + query: { + modules: true, + }, + }, + ], + test: /\.css$/, + }, + ], + }, + }, + { + module: { + preLoaders: [ + { + loader: "eslint", + test: /\.js$/, + }, + ], + }, + }, + { + module: { + postLoaders: [ + { + loader: "my-post", + test: /\.js$/, + }, + ], + }, + }, + { + module: { + loaders: [ + { + loader: "babel-loader", + test: /\.js$/, + }, + ], + preLoaders: [ + { + loader: "eslint-loader", + test: /\.js$/, + }, + ], + }, + }, + { + module: { + loaders: [ + { + loader: "babel-loader", + test: /\.js$/, + }, + ], + postLoaders: [ + { + loader: "my-post-loader", + test: /\.js$/, + }, + ], + }, + }, +]; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-1.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-1.input.ts new file mode 100644 index 00000000000..64bced753e4 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-1.input.ts @@ -0,0 +1,10 @@ +export default { + module: { + loaders: [ + { + loader: "style!css?modules&importLoaders=1&string=test123", + test: /\.css$/, + }, + ], + }, +}; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-2.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-2.input.ts new file mode 100644 index 00000000000..1dcd9a55334 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-2.input.ts @@ -0,0 +1,20 @@ +export default { + module: { + loaders: [ + { + loaders: [ + { + loader: "style", + }, + { + loader: "css", + query: { + modules: true, + }, + }, + ], + test: /\.css$/, + }, + ], + }, +}; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-3.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-3.input.ts new file mode 100644 index 00000000000..43c2ada1ea9 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-3.input.ts @@ -0,0 +1,10 @@ +export default { + module: { + preLoaders: [ + { + loader: "eslint", + test: /\.js$/, + }, + ], + }, +}; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-4.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-4.input.ts new file mode 100644 index 00000000000..117ccfdcf4e --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-4.input.ts @@ -0,0 +1,10 @@ +export default { + module: { + postLoaders: [ + { + loader: "my-post", + test: /\.js$/, + }, + ], + }, +}; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-5.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-5.input.ts new file mode 100644 index 00000000000..42266dafbc4 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-5.input.ts @@ -0,0 +1,17 @@ +export default { + module: { + loaders: [ + { + loader: "babel-loader", + test: /\.js$/, + }, + ], + + preLoaders: [ + { + loader: "eslint-loader", + test: /\.js$/, + }, + ], + }, +}; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-6.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-6.input.ts new file mode 100644 index 00000000000..4840f5be1d7 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-6.input.ts @@ -0,0 +1,16 @@ +export default { + module: { + loaders: [ + { + loader: "babel-loader", + test: /\.js$/, + }, + ], + postLoaders: [ + { + loader: "my-post-loader", + test: /\.js$/, + }, + ], + }, +}; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.ts new file mode 100644 index 00000000000..dc7122ebfe7 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.ts @@ -0,0 +1,14 @@ +export default { + module: { + loaders: [ + { + exclude: /(node_modules)/, + loader: "babel-loader", + query: { + presets: ["env"], + }, + test: /\.js$/, + }, + ], + }, +}; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.ts new file mode 100644 index 00000000000..ef4bb00b9d1 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.ts @@ -0,0 +1,12 @@ +import * as path from "path"; +module.exports = { + module: { + loaders: [ + { + include: path.join(__dirname, "src"), + loaders: ["style", "css?modules&importLoaders=1&string=test123"], + test: /\.js$/, + }, + ], + }, +}; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-9.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-9.input.ts new file mode 100644 index 00000000000..d100038d9a6 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-9.input.ts @@ -0,0 +1,14 @@ +module.exports = { + module: { + loaders: [ + { + loader: "url-loader", + options: { + limit: 10000, + name: "static/media/[name].[hash:8].[ext]", + }, + test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], + }, + ], + }, +}; diff --git a/packages/migrate/loaders/__tests__/loaders.test.ts b/packages/migrate/loaders/__tests__/loaders.test.ts new file mode 100644 index 00000000000..c3cf6373871 --- /dev/null +++ b/packages/migrate/loaders/__tests__/loaders.test.ts @@ -0,0 +1,12 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; + +defineTest(join(__dirname, ".."), "loaders", "loaders-0"); +defineTest(join(__dirname, ".."), "loaders", "loaders-1"); +defineTest(join(__dirname, ".."), "loaders", "loaders-2"); +defineTest(join(__dirname, ".."), "loaders", "loaders-3"); +defineTest(join(__dirname, ".."), "loaders", "loaders-4"); +defineTest(join(__dirname, ".."), "loaders", "loaders-5"); +defineTest(join(__dirname, ".."), "loaders", "loaders-6"); +defineTest(join(__dirname, ".."), "loaders", "loaders-7"); +defineTest(join(__dirname, ".."), "loaders", "loaders-8"); diff --git a/packages/migrate/loaders/loaders.test.js b/packages/migrate/loaders/loaders.test.js deleted file mode 100644 index 4dc548b6bc3..00000000000 --- a/packages/migrate/loaders/loaders.test.js +++ /dev/null @@ -1,13 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "loaders", "loaders-0"); -defineTest(__dirname, "loaders", "loaders-1"); -defineTest(__dirname, "loaders", "loaders-2"); -defineTest(__dirname, "loaders", "loaders-3"); -defineTest(__dirname, "loaders", "loaders-4"); -defineTest(__dirname, "loaders", "loaders-5"); -defineTest(__dirname, "loaders", "loaders-6"); -defineTest(__dirname, "loaders", "loaders-7"); -defineTest(__dirname, "loaders", "loaders-8"); diff --git a/packages/migrate/outputPath/__testfixtures__/outputPath-0.input.js b/packages/migrate/outputPath/__testfixtures__/outputPath-0.input.js deleted file mode 100644 index 085268fadbe..00000000000 --- a/packages/migrate/outputPath/__testfixtures__/outputPath-0.input.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - output: { - path: 'dist' - } -} diff --git a/packages/migrate/outputPath/__testfixtures__/outputPath-1.input.js b/packages/migrate/outputPath/__testfixtures__/outputPath-1.input.js deleted file mode 100644 index c7a0ed58e7a..00000000000 --- a/packages/migrate/outputPath/__testfixtures__/outputPath-1.input.js +++ /dev/null @@ -1,6 +0,0 @@ -const path = require('path'); -module.exports = { - output: { - path: path.join(__dirname, 'dist') - } -} diff --git a/packages/migrate/outputPath/__testfixtures__/outputPath-2.input.js b/packages/migrate/outputPath/__testfixtures__/outputPath-2.input.js deleted file mode 100644 index de8436ae6c3..00000000000 --- a/packages/migrate/outputPath/__testfixtures__/outputPath-2.input.js +++ /dev/null @@ -1,6 +0,0 @@ -const p = require('path'); -module.exports = { - output: { - path: 'dist' - } -} diff --git a/packages/migrate/outputPath/__snapshots__/outputPath.test.js.snap b/packages/migrate/outputPath/__tests__/__snapshots__/outputPath.test.ts.snap similarity index 57% rename from packages/migrate/outputPath/__snapshots__/outputPath.test.js.snap rename to packages/migrate/outputPath/__tests__/__snapshots__/outputPath.test.ts.snap index 27e07047768..851dcbcb42d 100644 --- a/packages/migrate/outputPath/__snapshots__/outputPath.test.js.snap +++ b/packages/migrate/outputPath/__tests__/__snapshots__/outputPath.test.ts.snap @@ -2,29 +2,29 @@ exports[`outputPath transforms correctly using "outputPath-0" data 1`] = ` "module.exports = { - output: { - path: path.join(__dirname, 'dist') - } -} + output: { + path: path.join(__dirname, \\"dist\\"), + }, +}; " `; exports[`outputPath transforms correctly using "outputPath-1" data 1`] = ` -"const path = require('path'); +"import * as path from \\"path\\"; module.exports = { - output: { - path: path.join(__dirname, 'dist') - } -} + output: { + path: path.join(__dirname, \\"dist\\"), + }, +}; " `; exports[`outputPath transforms correctly using "outputPath-2" data 1`] = ` -"const p = require('path'); +"import * as path from \\"path\\"; module.exports = { - output: { - path: p.join(__dirname, 'dist') - } -} + output: { + path: path.join(__dirname, \\"dist\\"), + }, +}; " `; diff --git a/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-0.input.ts b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-0.input.ts new file mode 100644 index 00000000000..e111b266b50 --- /dev/null +++ b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-0.input.ts @@ -0,0 +1,5 @@ +module.exports = { + output: { + path: "dist", + }, +}; diff --git a/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.ts b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.ts new file mode 100644 index 00000000000..12117f5c3e1 --- /dev/null +++ b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.ts @@ -0,0 +1,6 @@ +import * as path from "path"; +module.exports = { + output: { + path: path.join(__dirname, "dist"), + }, +}; diff --git a/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.ts b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.ts new file mode 100644 index 00000000000..eace16103ce --- /dev/null +++ b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.ts @@ -0,0 +1,6 @@ +import * as path from "path"; +module.exports = { + output: { + path: "dist", + }, +}; diff --git a/packages/migrate/outputPath/__tests__/outputPath.test.ts b/packages/migrate/outputPath/__tests__/outputPath.test.ts new file mode 100644 index 00000000000..434b3b5bf71 --- /dev/null +++ b/packages/migrate/outputPath/__tests__/outputPath.test.ts @@ -0,0 +1,6 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; + +defineTest(join(__dirname, ".."), "outputPath", "outputPath-0"); +defineTest(join(__dirname, ".."), "outputPath", "outputPath-1"); +defineTest(join(__dirname, ".."), "outputPath", "outputPath-2"); diff --git a/packages/migrate/outputPath/outputPath.test.js b/packages/migrate/outputPath/outputPath.test.js deleted file mode 100644 index f103e99a09e..00000000000 --- a/packages/migrate/outputPath/outputPath.test.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "outputPath", "outputPath-0"); -defineTest(__dirname, "outputPath", "outputPath-1"); -defineTest(__dirname, "outputPath", "outputPath-2"); diff --git a/packages/migrate/outputPath/outputPath.ts b/packages/migrate/outputPath/outputPath.ts index e5038b3c9a0..5e88223d808 100644 --- a/packages/migrate/outputPath/outputPath.ts +++ b/packages/migrate/outputPath/outputPath.ts @@ -12,68 +12,77 @@ import { IJSCodeshift, INode } from "../types/NodePath"; */ export default function(j: IJSCodeshift, ast: INode): INode | void { + const literalOutputPath: INode = ast + .find(j.ObjectExpression) + .filter( + (p: INode): boolean => + utils.safeTraverse(p, ["parentPath", "value", "key", "name"]) === + "output", + ) + .find(j.Property) + .filter( + (p: INode): boolean => + utils.safeTraverse(p, ["value", "key", "name"]) === "path" && + utils.safeTraverse(p, ["value", "value", "type"]) === "Literal", + ); - const literalOutputPath: INode = ast - .find(j.ObjectExpression) + if (literalOutputPath) { + let pathVarName = "path"; + let isPathPresent = false; + const pathDeclaration: INode = ast + .find(j.VariableDeclarator) .filter( - (p: INode): boolean => - utils.safeTraverse(p, ["parentPath", "value", "key", "name"]) === - "output", + (p: INode): boolean => + utils.safeTraverse(p, ["value", "init", "callee", "name"]) === + "require", ) - .find(j.Property) .filter( - (p: INode): boolean => - utils.safeTraverse(p, ["value", "key", "name"]) === "path" && - utils.safeTraverse(p, ["value", "value", "type"]) === "Literal", + (p: INode): boolean => + utils.safeTraverse(p, ["value", "init", "arguments"]) && + p.value.init.arguments.reduce( + (isPresent: boolean, a: INode): boolean => { + return (a.type === "Literal" && a.value === "path") || isPresent; + }, + false, + ), ); - if (literalOutputPath) { - let pathVarName = "path"; - let isPathPresent = false; - const pathDeclaration: INode = ast - .find(j.VariableDeclarator) - .filter( - (p: INode): boolean => - utils.safeTraverse(p, ["value", "init", "callee", "name"]) === - "require", - ) - .filter( - (p: INode): boolean => - utils.safeTraverse(p, ["value", "init", "arguments"]) && - p.value.init.arguments.reduce((isPresent: boolean, a: INode): boolean => { - return (a.type === "Literal" && a.value === "path") || isPresent; - }, false), - ); - - if (pathDeclaration) { - isPathPresent = true; - pathDeclaration.forEach((p: INode): void => { - pathVarName = utils.safeTraverse(p, ["value", "id", "name"]); - }); - } - const finalPathName = pathVarName; - literalOutputPath - .find(j.Literal) - .replaceWith((p: INode): INode => replaceWithPath(j, p, finalPathName)); + if (pathDeclaration) { + isPathPresent = true; + pathDeclaration.forEach( + (p: INode): void => { + pathVarName = utils.safeTraverse(p, ["value", "id", "name"]); + }, + ); + } + const finalPathName = pathVarName; + literalOutputPath + .find(j.Literal) + .replaceWith((p: INode): INode => replaceWithPath(j, p, finalPathName)); - if (!isPathPresent) { - const pathRequire: INode = utils.getRequire(j, "path", "path"); - return ast - .find(j.Program) - .replaceWith((p: INode): INode => - j.program([].concat(pathRequire).concat(p.value.body)), - ); - } + if (!isPathPresent) { + const pathRequire: INode = utils.getRequire(j, "path", "path"); + return ast + .find(j.Program) + .replaceWith( + (p: INode): INode => + j.program([].concat(pathRequire).concat(p.value.body)), + ); } + } - return ast; + return ast; } -function replaceWithPath(j: IJSCodeshift, p: INode, pathVarName: string): INode { - const convertedPath: INode = j.callExpression( - j.memberExpression(j.identifier(pathVarName), j.identifier("join"), false), - [j.identifier("__dirname"), p.value], - ); +function replaceWithPath( + j: IJSCodeshift, + p: INode, + pathVarName: string, +): INode { + const convertedPath: INode = j.callExpression( + j.memberExpression(j.identifier(pathVarName), j.identifier("join"), false), + [j.identifier("__dirname"), p.value], + ); - return convertedPath; + return convertedPath; } diff --git a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/.editorconfig~HEAD b/packages/migrate/removeDeprecatedPlugins/__testfixtures__/.editorconfig~HEAD deleted file mode 100644 index adbdb1ba476..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/.editorconfig~HEAD +++ /dev/null @@ -1,3 +0,0 @@ -[*] -indent_style = space -indent_size = 4 diff --git a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 b/packages/migrate/removeDeprecatedPlugins/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 deleted file mode 100644 index adbdb1ba476..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 +++ /dev/null @@ -1,3 +0,0 @@ -[*] -indent_style = space -indent_size = 4 diff --git a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-0.input.js b/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-0.input.js deleted file mode 100644 index 133c4984bfd..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-0.input.js +++ /dev/null @@ -1,6 +0,0 @@ -// Works for OccurrenceOrderPlugin -module.exports = { - plugins: [ - new webpack.optimize.OccurrenceOrderPlugin(), - ] -} diff --git a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-1.input.js b/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-1.input.js deleted file mode 100644 index a64dab79b37..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-1.input.js +++ /dev/null @@ -1,6 +0,0 @@ -// Works for DedupePlugin -module.exports = { - plugins: [ - new webpack.optimize.DedupePlugin(), - ] -} diff --git a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-2.input.js b/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-2.input.js deleted file mode 100644 index 26150117db4..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-2.input.js +++ /dev/null @@ -1,8 +0,0 @@ -// Doesn't remove unmatched plugins -module.exports = { - plugins: [ - new webpack.optimize.OccurrenceOrderPlugin(), - new webpack.optimize.UglifyJsPlugin(), - new webpack.optimize.DedupePlugin() - ] -} diff --git a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-3.input.js b/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-3.input.js deleted file mode 100644 index 1d5194460e3..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-3.input.js +++ /dev/null @@ -1,7 +0,0 @@ -// This should throw -export default (config) => { - config.plugins.push(new webpack.optimize.UglifyJsPlugin()); - config.plugins.push(new webpack.optimize.DedupePlugin()); - config.plugins.push(new webpack.optimize.OccurrenceOrderPlugin()); - return config -} diff --git a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-4.input.js b/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-4.input.js deleted file mode 100644 index fab47caf971..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__testfixtures__/removeDeprecatedPlugins-4.input.js +++ /dev/null @@ -1,8 +0,0 @@ -// This should throw -const inst = new webpack.optimize.OccurrenceOrderPlugin() -export default (config) => { - config.plugins = [ - inst - ] - return config -} diff --git a/packages/migrate/removeDeprecatedPlugins/__snapshots__/removeDeprecatedPlugins.test.js.snap b/packages/migrate/removeDeprecatedPlugins/__tests__/__snapshots__/removeDeprecatedPlugins.test.ts.snap similarity index 57% rename from packages/migrate/removeDeprecatedPlugins/__snapshots__/removeDeprecatedPlugins.test.js.snap rename to packages/migrate/removeDeprecatedPlugins/__tests__/__snapshots__/removeDeprecatedPlugins.test.ts.snap index 550faf1fba2..d459445a8fe 100644 --- a/packages/migrate/removeDeprecatedPlugins/__snapshots__/removeDeprecatedPlugins.test.js.snap +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__snapshots__/removeDeprecatedPlugins.test.ts.snap @@ -2,43 +2,50 @@ exports[`removeDeprecatedPlugins transforms correctly using "removeDeprecatedPlugins-0" data 1`] = ` "// Works for OccurrenceOrderPlugin -module.exports = {} +import webpack from \\"webpack\\"; +module.exports = {}; " `; exports[`removeDeprecatedPlugins transforms correctly using "removeDeprecatedPlugins-1" data 1`] = ` "// Works for DedupePlugin -module.exports = {} +import webpack from \\"webpack\\"; + +module.exports = {}; " `; exports[`removeDeprecatedPlugins transforms correctly using "removeDeprecatedPlugins-2" data 1`] = ` "// Doesn't remove unmatched plugins +import webpack from \\"webpack\\"; + module.exports = { - plugins: [new webpack.optimize.UglifyJsPlugin()] -} + plugins: [new webpack.optimize.UglifyJsPlugin()], +}; " `; exports[`removeDeprecatedPlugins transforms correctly using "removeDeprecatedPlugins-3" data 1`] = ` "// This should throw +import webpack from \\"webpack\\"; + export default (config) => { - config.plugins.push(new webpack.optimize.UglifyJsPlugin()); - config.plugins.push(new webpack.optimize.DedupePlugin()); - config.plugins.push(new webpack.optimize.OccurrenceOrderPlugin()); - return config -} + config.plugins.push(new webpack.optimize.UglifyJsPlugin()); + config.plugins.push(new webpack.optimize.DedupePlugin()); + config.plugins.push(new webpack.optimize.OccurrenceOrderPlugin()); + return config; +}; " `; exports[`removeDeprecatedPlugins transforms correctly using "removeDeprecatedPlugins-4" data 1`] = ` "// This should throw -const inst = new webpack.optimize.OccurrenceOrderPlugin() +import webpack from \\"webpack\\"; + +const inst = new webpack.optimize.OccurrenceOrderPlugin(); export default (config) => { - config.plugins = [ - inst - ] - return config -} + config.plugins = [inst]; + return config; +}; " `; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.ts new file mode 100644 index 00000000000..c67bac6b636 --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.ts @@ -0,0 +1,5 @@ +// Works for OccurrenceOrderPlugin +import webpack from "webpack"; +module.exports = { + plugins: [new webpack.optimize.OccurrenceOrderPlugin()], +}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.ts new file mode 100644 index 00000000000..6a34f8b5f99 --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.ts @@ -0,0 +1,6 @@ +// Works for DedupePlugin +import webpack from "webpack"; + +module.exports = { + plugins: [new webpack.optimize.DedupePlugin()], +}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.ts new file mode 100644 index 00000000000..cf7235f8883 --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.ts @@ -0,0 +1,10 @@ +// Doesn't remove unmatched plugins +import webpack from "webpack"; + +module.exports = { + plugins: [ + new webpack.optimize.OccurrenceOrderPlugin(), + new webpack.optimize.UglifyJsPlugin(), + new webpack.optimize.DedupePlugin(), + ], +}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.ts new file mode 100644 index 00000000000..63f88411213 --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.ts @@ -0,0 +1,9 @@ +// This should throw +import webpack from "webpack"; + +export default (config) => { + config.plugins.push(new webpack.optimize.UglifyJsPlugin()); + config.plugins.push(new webpack.optimize.DedupePlugin()); + config.plugins.push(new webpack.optimize.OccurrenceOrderPlugin()); + return config; +}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.ts new file mode 100644 index 00000000000..add2a9ad67b --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.ts @@ -0,0 +1,8 @@ +// This should throw +import webpack from "webpack"; + +const inst = new webpack.optimize.OccurrenceOrderPlugin(); +export default (config) => { + config.plugins = [inst]; + return config; +}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/removeDeprecatedPlugins.test.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/removeDeprecatedPlugins.test.ts new file mode 100644 index 00000000000..7d148be133b --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/removeDeprecatedPlugins.test.ts @@ -0,0 +1,28 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; + +defineTest( + join(__dirname, ".."), + "removeDeprecatedPlugins", + "removeDeprecatedPlugins-0", +); +defineTest( + join(__dirname, ".."), + "removeDeprecatedPlugins", + "removeDeprecatedPlugins-1", +); +defineTest( + join(__dirname, ".."), + "removeDeprecatedPlugins", + "removeDeprecatedPlugins-2", +); +defineTest( + join(__dirname, ".."), + "removeDeprecatedPlugins", + "removeDeprecatedPlugins-3", +); +defineTest( + join(__dirname, ".."), + "removeDeprecatedPlugins", + "removeDeprecatedPlugins-4", +); diff --git a/packages/migrate/removeDeprecatedPlugins/removeDeprecatedPlugins.test.js b/packages/migrate/removeDeprecatedPlugins/removeDeprecatedPlugins.test.js deleted file mode 100644 index e881f02428f..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/removeDeprecatedPlugins.test.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "removeDeprecatedPlugins", "removeDeprecatedPlugins-0"); -defineTest(__dirname, "removeDeprecatedPlugins", "removeDeprecatedPlugins-1"); -defineTest(__dirname, "removeDeprecatedPlugins", "removeDeprecatedPlugins-2"); -defineTest(__dirname, "removeDeprecatedPlugins", "removeDeprecatedPlugins-3"); -defineTest(__dirname, "removeDeprecatedPlugins", "removeDeprecatedPlugins-4"); diff --git a/packages/migrate/removeDeprecatedPlugins/removeDeprecatedPlugins.ts b/packages/migrate/removeDeprecatedPlugins/removeDeprecatedPlugins.ts index 5d83f3cce0a..01030eb7686 100644 --- a/packages/migrate/removeDeprecatedPlugins/removeDeprecatedPlugins.ts +++ b/packages/migrate/removeDeprecatedPlugins/removeDeprecatedPlugins.ts @@ -15,35 +15,36 @@ import { IJSCodeshift, INode } from "../types/NodePath"; */ export default function(j: IJSCodeshift, ast: INode) { + // List of deprecated plugins to remove + // each item refers to webpack.optimize.[NAME] construct + const deprecatedPlugingsList: string[] = [ + "webpack.optimize.OccurrenceOrderPlugin", + "webpack.optimize.DedupePlugin", + ]; - // List of deprecated plugins to remove - // each item refers to webpack.optimize.[NAME] construct - const deprecatedPlugingsList: string[] = [ - "webpack.optimize.OccurrenceOrderPlugin", - "webpack.optimize.DedupePlugin", - ]; + return utils.findPluginsByName(j, ast, deprecatedPlugingsList).forEach( + (path: INode): void => { + // For now we only support the case where plugins are defined in an Array + const arrayPath: INode = utils.safeTraverse(path, ["parent", "value"]); - return utils - .findPluginsByName(j, ast, deprecatedPlugingsList) - .forEach((path: INode): void => { - // For now we only support the case where plugins are defined in an Array - const arrayPath: INode = utils.safeTraverse(path, ["parent", "value"]); - - if (arrayPath && utils.isType(arrayPath, "ArrayExpression")) { - // Check how many plugins are defined and - // if there is only last plugin left remove `plugins: []` node - const arrayElementsPath: INode[] = utils.safeTraverse(arrayPath, ["elements"]); - if (arrayElementsPath && arrayElementsPath.length === 1) { - j(path.parent.parent).remove(); - } else { - j(path).remove(); - } - } else { - console.error(` + if (arrayPath && utils.isType(arrayPath, "ArrayExpression")) { + // Check how many plugins are defined and + // if there is only last plugin left remove `plugins: []` node + const arrayElementsPath: INode[] = utils.safeTraverse(arrayPath, [ + "elements", + ]); + if (arrayElementsPath && arrayElementsPath.length === 1) { + j(path.parent.parent).remove(); + } else { + j(path).remove(); + } + } else { + console.error(` ${chalk.red("Please remove deprecated plugins manually. ")} See ${chalk.underline( - "https://webpack.js.org/guides/migrating/", - )} for more information.`); - } - }); + "https://webpack.js.org/guides/migrating/", + )} for more information.`); + } + }, + ); } diff --git a/packages/migrate/removeJsonLoader/__testfixtures__/.editorconfig~HEAD b/packages/migrate/removeJsonLoader/__testfixtures__/.editorconfig~HEAD deleted file mode 100644 index adbdb1ba476..00000000000 --- a/packages/migrate/removeJsonLoader/__testfixtures__/.editorconfig~HEAD +++ /dev/null @@ -1,3 +0,0 @@ -[*] -indent_style = space -indent_size = 4 diff --git a/packages/migrate/removeJsonLoader/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 b/packages/migrate/removeJsonLoader/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 deleted file mode 100644 index adbdb1ba476..00000000000 --- a/packages/migrate/removeJsonLoader/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 +++ /dev/null @@ -1,3 +0,0 @@ -[*] -indent_style = space -indent_size = 4 diff --git a/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-0.input.js b/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-0.input.js deleted file mode 100644 index 48517948142..00000000000 --- a/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-0.input.js +++ /dev/null @@ -1,19 +0,0 @@ -export default { - module: { - rules: [{ - test: /\.yml/, - use: [ - { - loader: 'json-loader' - }, - { - loader: 'another-loader' - }, - { - loader: 'yml-loader' - } - ] - }] - } -} - diff --git a/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-1.input.js b/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-1.input.js deleted file mode 100644 index 1040b5ff919..00000000000 --- a/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-1.input.js +++ /dev/null @@ -1,12 +0,0 @@ -export default { - module: { - rules: [{ - test: /\.yml/, - use: [{ - loader: 'json-loader' - }, { - loader: 'yml-loader' - }] - }] - } -} diff --git a/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-2.input.js b/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-2.input.js deleted file mode 100644 index 39b473705d0..00000000000 --- a/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-2.input.js +++ /dev/null @@ -1,10 +0,0 @@ -export default { - module: { - rules: [ - { - test: /\.json/, - loader: 'json-loader' - } - ] - } -} diff --git a/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-3.input.js b/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-3.input.js deleted file mode 100644 index be47fd92ee2..00000000000 --- a/packages/migrate/removeJsonLoader/__testfixtures__/removeJsonLoader-3.input.js +++ /dev/null @@ -1,11 +0,0 @@ -export default { - module: { - rules: [{ - test: /\.json/, - use: [{ - loader: 'json-loader' - }] - }] - } -} - diff --git a/packages/migrate/removeJsonLoader/__snapshots__/removeJsonLoader.test.js.snap b/packages/migrate/removeJsonLoader/__tests__/__snapshots__/removeJsonLoader.test.ts.snap similarity index 52% rename from packages/migrate/removeJsonLoader/__snapshots__/removeJsonLoader.test.js.snap rename to packages/migrate/removeJsonLoader/__tests__/__snapshots__/removeJsonLoader.test.ts.snap index e5153cd3412..7f0e1cb3fc7 100644 --- a/packages/migrate/removeJsonLoader/__snapshots__/removeJsonLoader.test.js.snap +++ b/packages/migrate/removeJsonLoader/__tests__/__snapshots__/removeJsonLoader.test.ts.snap @@ -2,50 +2,52 @@ exports[`removeJsonLoader transforms correctly using "removeJsonLoader-0" data 1`] = ` "export default { - module: { - rules: [{ - test: /\\\\.yml/, - use: [{ - loader: 'another-loader' - }, { - loader: 'yml-loader' - }] - }] - } -} - + module: { + rules: [ + { + test: /\\\\.yml/, + use: [{ + loader: \\"another-loader\\", + }, { + loader: \\"yml-loader\\", + }], + }, + ], + }, +}; " `; exports[`removeJsonLoader transforms correctly using "removeJsonLoader-1" data 1`] = ` "export default { - module: { - rules: [{ - test: /\\\\.yml/, - use: [{ - loader: 'yml-loader' - }] - }] - } -} + module: { + rules: [ + { + test: /\\\\.yml/, + use: [{ + loader: \\"yml-loader\\", + }], + }, + ], + }, +}; " `; exports[`removeJsonLoader transforms correctly using "removeJsonLoader-2" data 1`] = ` "export default { - module: { - rules: [] - } -} + module: { + rules: [], + }, +}; " `; exports[`removeJsonLoader transforms correctly using "removeJsonLoader-3" data 1`] = ` "export default { - module: { - rules: [] - } -} - + module: { + rules: [], + }, +}; " `; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.ts b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.ts new file mode 100644 index 00000000000..3fdaec96b28 --- /dev/null +++ b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.ts @@ -0,0 +1,20 @@ +export default { + module: { + rules: [ + { + test: /\.yml/, + use: [ + { + loader: "json-loader", + }, + { + loader: "another-loader", + }, + { + loader: "yml-loader", + }, + ], + }, + ], + }, +}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.ts b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.ts new file mode 100644 index 00000000000..b2b1031b7bc --- /dev/null +++ b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.ts @@ -0,0 +1,17 @@ +export default { + module: { + rules: [ + { + test: /\.yml/, + use: [ + { + loader: "json-loader", + }, + { + loader: "yml-loader", + }, + ], + }, + ], + }, +}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.ts b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.ts new file mode 100644 index 00000000000..d9dfa19b162 --- /dev/null +++ b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.ts @@ -0,0 +1,10 @@ +export default { + module: { + rules: [ + { + loader: "json-loader", + test: /\.json/, + }, + ], + }, +}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.ts b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.ts new file mode 100644 index 00000000000..c52db6684f7 --- /dev/null +++ b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.ts @@ -0,0 +1,14 @@ +export default { + module: { + rules: [ + { + test: /\.json/, + use: [ + { + loader: "json-loader", + }, + ], + }, + ], + }, +}; diff --git a/packages/migrate/removeJsonLoader/__tests__/removeJsonLoader.test.ts b/packages/migrate/removeJsonLoader/__tests__/removeJsonLoader.test.ts new file mode 100644 index 00000000000..4251a6b2119 --- /dev/null +++ b/packages/migrate/removeJsonLoader/__tests__/removeJsonLoader.test.ts @@ -0,0 +1,22 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import * as path from "path"; +defineTest( + path.join(__dirname, ".."), + "removeJsonLoader", + "removeJsonLoader-0", +); +defineTest( + path.join(__dirname, ".."), + "removeJsonLoader", + "removeJsonLoader-1", +); +defineTest( + path.join(__dirname, ".."), + "removeJsonLoader", + "removeJsonLoader-2", +); +defineTest( + path.join(__dirname, ".."), + "removeJsonLoader", + "removeJsonLoader-3", +); diff --git a/packages/migrate/removeJsonLoader/removeJsonLoader.test.js b/packages/migrate/removeJsonLoader/removeJsonLoader.test.js deleted file mode 100644 index 82e38804c86..00000000000 --- a/packages/migrate/removeJsonLoader/removeJsonLoader.test.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "removeJsonLoader", "removeJsonLoader-0"); -defineTest(__dirname, "removeJsonLoader", "removeJsonLoader-1"); -defineTest(__dirname, "removeJsonLoader", "removeJsonLoader-2"); -defineTest(__dirname, "removeJsonLoader", "removeJsonLoader-3"); diff --git a/packages/migrate/resolve/__snapshots__/resolve.test.js.snap b/packages/migrate/resolve/__snapshots__/resolve.test.js.snap deleted file mode 100644 index 820fc965a13..00000000000 --- a/packages/migrate/resolve/__snapshots__/resolve.test.js.snap +++ /dev/null @@ -1,24 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`resolve transforms correctly 1`] = ` -"import path from 'path'; - -export default [{ - resolve: { - modules: [path.resolve('/src')] - } -}, { - resolve: { - modules: [path.resolve('/src')] - } -}, { - resolve: { - modules: [path.resolve('/src'), 'node_modules'] - } -}, { - resolve: { - modules: ['node_modules', path.resolve('/src')] - } -}]; -" -`; diff --git a/packages/migrate/resolve/__testfixtures__/.editorconfig~HEAD b/packages/migrate/resolve/__testfixtures__/.editorconfig~HEAD deleted file mode 100644 index adbdb1ba476..00000000000 --- a/packages/migrate/resolve/__testfixtures__/.editorconfig~HEAD +++ /dev/null @@ -1,3 +0,0 @@ -[*] -indent_style = space -indent_size = 4 diff --git a/packages/migrate/resolve/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 b/packages/migrate/resolve/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 deleted file mode 100644 index adbdb1ba476..00000000000 --- a/packages/migrate/resolve/__testfixtures__/.editorconfig~ec53c68744edef90a7889cda35f1527442a79450 +++ /dev/null @@ -1,3 +0,0 @@ -[*] -indent_style = space -indent_size = 4 diff --git a/packages/migrate/resolve/__testfixtures__/resolve.input.js b/packages/migrate/resolve/__testfixtures__/resolve.input.js deleted file mode 100644 index 2b83fcf26ce..00000000000 --- a/packages/migrate/resolve/__testfixtures__/resolve.input.js +++ /dev/null @@ -1,20 +0,0 @@ -import path from 'path'; - -export default [{ - resolve: { - root: path.resolve('/src') - } -}, { - resolve: { - root: [path.resolve('/src')] - } -}, { - resolve: { - root: [path.resolve('/src'), 'node_modules'] - } -}, { - resolve: { - root: path.resolve('/src'), - modules: ['node_modules'] - } -}]; diff --git a/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap b/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap new file mode 100644 index 00000000000..ba6af31fcb2 --- /dev/null +++ b/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap @@ -0,0 +1,29 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`resolve transforms correctly 1`] = ` +"import * as path from \\"path\\"; + +export default [ + { + resolve: { + modules: [path.resolve(\\"/src\\")], + }, + }, + { + resolve: { + modules: [path.resolve(\\"/src\\")], + }, + }, + { + resolve: { + modules: [path.resolve(\\"/src\\"), \\"node_modules\\"], + }, + }, + { + resolve: { + modules: [\\"node_modules\\", path.resolve(\\"/src\\")] + }, + }, +]; +" +`; diff --git a/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.ts b/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.ts new file mode 100644 index 00000000000..2da094d0196 --- /dev/null +++ b/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.ts @@ -0,0 +1,25 @@ +import * as path from "path"; + +export default [ + { + resolve: { + root: path.resolve("/src"), + }, + }, + { + resolve: { + root: [path.resolve("/src")], + }, + }, + { + resolve: { + root: [path.resolve("/src"), "node_modules"], + }, + }, + { + resolve: { + modules: ["node_modules"], + root: path.resolve("/src"), + }, + }, +]; diff --git a/packages/migrate/resolve/__tests__/resolve.test.ts b/packages/migrate/resolve/__tests__/resolve.test.ts new file mode 100644 index 00000000000..d6fc59596d8 --- /dev/null +++ b/packages/migrate/resolve/__tests__/resolve.test.ts @@ -0,0 +1,4 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import * as path from "path"; + +defineTest(path.join(__dirname, ".."), "resolve"); diff --git a/packages/migrate/resolve/resolve.test.js b/packages/migrate/resolve/resolve.test.js deleted file mode 100644 index c3971466966..00000000000 --- a/packages/migrate/resolve/resolve.test.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "resolve"); diff --git a/packages/migrate/types/index.ts b/packages/migrate/types/index.ts deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/packages/utils/defineTest.ts b/packages/utils/defineTest.ts index 1118cde9a32..4070d188610 100644 --- a/packages/utils/defineTest.ts +++ b/packages/utils/defineTest.ts @@ -3,23 +3,23 @@ import * as path from "path"; import { IJSCodeshift, INode } from "./types/NodePath"; interface IModule { - ( - jscodeshift: IJSCodeshift, - ast: INode, - initOptions: string | boolean | object, - action: string, - transformName?: string, - ): INode; - default: transformType; - parser: string; -} - -type transformType = ( + ( jscodeshift: IJSCodeshift, ast: INode, initOptions: string | boolean | object, action: string, transformName?: string, + ): INode; + default: transformType; + parser: string; +} + +type transformType = ( + jscodeshift: IJSCodeshift, + ast: INode, + initOptions: string | boolean | object, + action: string, + transformName?: string, ) => INode; /** @@ -47,50 +47,54 @@ type transformType = ( * @return {Function} Function that fires of the transforms */ function runSingleTransform( - dirName: string, - transformName: string, - testFilePrefix: string, - initOptions: object | boolean | string, - action: string, + dirName: string, + transformName: string, + testFilePrefix: string, + initOptions: object | boolean | string, + action: string, ): string { - if (!testFilePrefix) { - testFilePrefix = transformName; - } - const fixtureDir: string = path.join(dirName, "__testfixtures__"); - const inputPath: string = path.join(fixtureDir, testFilePrefix + ".input.js"); - const source: string = fs.readFileSync(inputPath, "utf8"); + if (!testFilePrefix) { + testFilePrefix = transformName; + } + const fixtureDir: string = path.join( + dirName, + "__tests__", + "__testfixtures__", + ); + const inputPath: string = path.join(fixtureDir, testFilePrefix + ".input.ts"); + const source: string = fs.readFileSync(inputPath, "utf8"); - let module: IModule; - // Assumes transform and test are on the same level - if (action) { - module = require(path.join(dirName, "recursive-parser" + ".js")); - } else { - module = require(path.join(dirName, transformName + ".js")); - } - // Handle ES6 modules using default export for the transform - const transform = module.default ? module.default : module; + let module: IModule; + // Assumes transform and test are on the same level + if (action) { + module = require(path.join(dirName, "recursive-parser" + ".ts")); + } else { + module = require(path.join(dirName, transformName + ".ts")); + } + // Handle ES6 modules using default export for the transform + const transform = module.default ? module.default : module; - // Jest resets the module registry after each test, so we need to always get - // a fresh copy of jscodeshift on every test run. - let jscodeshift: IJSCodeshift = require("jscodeshift/dist/core"); - if (module.parser) { - jscodeshift = jscodeshift.withParser(module.parser); - } - const ast: INode = jscodeshift(source); - if (initOptions || typeof initOptions === "boolean") { - return transform( - jscodeshift, - ast, - initOptions, - action, - transformName, - ).toSource({ - quote: "single", - }); - } - return transform(jscodeshift, ast, source, action).toSource({ + // Jest resets the module registry after each test, so we need to always get + // a fresh copy of jscodeshift on every test run. + let jscodeshift: IJSCodeshift = require("jscodeshift/dist/core"); + if (module.parser) { + jscodeshift = jscodeshift.withParser(module.parser); + } + const ast: INode = jscodeshift(source); + if (initOptions || typeof initOptions === "boolean") { + return transform( + jscodeshift, + ast, + initOptions, + action, + transformName, + ).toSource({ quote: "single", }); + } + return transform(jscodeshift, ast, source, action).toSource({ + quote: "single", + }); } /** @@ -111,25 +115,25 @@ function runSingleTransform( * @return {Void} Jest makes sure to execute the globally defined functions */ export default function defineTest( - dirName: string, - transformName: string, - testFilePrefix: string, - transformObject: object, - action: string, + dirName: string, + transformName: string, + testFilePrefix?: string, + transformObject?: object, + action?: string, ): void { - const testName: string = testFilePrefix - ? `transforms correctly using "${testFilePrefix}" data` - : "transforms correctly"; - describe(transformName, () => { - it(testName, () => { - const output = runSingleTransform( - dirName, - transformName, - testFilePrefix, - transformObject, - action, - ); - expect(output).toMatchSnapshot(); - }); + const testName: string = testFilePrefix + ? `transforms correctly using "${testFilePrefix}" data` + : "transforms correctly"; + describe(transformName, () => { + it(testName, () => { + const output = runSingleTransform( + dirName, + transformName, + testFilePrefix, + transformObject, + action, + ); + expect(output).toMatchSnapshot(); }); + }); } From 46355b81711e24734c7889666193aa2cd9c1b582 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Sat, 29 Sep 2018 10:42:36 +0100 Subject: [PATCH 04/20] tests(ts): moved module concatenation plugin to ts --- .../moduleConcatenationPlugin.test.js.snap | 31 ---------------- .../moduleConcatenationPlugin-0.input.js | 5 --- .../moduleConcatenationPlugin-1.input.js | 9 ----- .../moduleConcatenationPlugin-2.input.js | 9 ----- .../moduleConcatenationPlugin.test.ts.snap | 36 +++++++++++++++++++ .../moduleConcatenationPlugin-0.input.ts | 4 +++ .../moduleConcatenationPlugin-1.input.ts | 8 +++++ .../moduleConcatenationPlugin-2.input.ts | 8 +++++ .../moduleConcatenationPlugin.test.ts | 18 ++++++++++ .../moduleConcatenationPlugin.test.js | 19 ---------- tsconfig.base.json | 2 +- 11 files changed, 75 insertions(+), 74 deletions(-) delete mode 100644 packages/migrate/moduleConcatenationPlugin/__snapshots__/moduleConcatenationPlugin.test.js.snap delete mode 100644 packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-0.input.js delete mode 100644 packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-1.input.js delete mode 100644 packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-2.input.js create mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/__snapshots__/moduleConcatenationPlugin.test.ts.snap create mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.ts create mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.ts create mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.ts create mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/moduleConcatenationPlugin.test.ts delete mode 100644 packages/migrate/moduleConcatenationPlugin/moduleConcatenationPlugin.test.js diff --git a/packages/migrate/moduleConcatenationPlugin/__snapshots__/moduleConcatenationPlugin.test.js.snap b/packages/migrate/moduleConcatenationPlugin/__snapshots__/moduleConcatenationPlugin.test.js.snap deleted file mode 100644 index a13f37ea1f0..00000000000 --- a/packages/migrate/moduleConcatenationPlugin/__snapshots__/moduleConcatenationPlugin.test.js.snap +++ /dev/null @@ -1,31 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`moduleConcatenationPlugin transforms correctly using "moduleConcatenationPlugin-0" data 1`] = ` -"module.export = { - optimizations: { - concatenateModules: true - } -} -" -`; - -exports[`moduleConcatenationPlugin transforms correctly using "moduleConcatenationPlugin-1" data 1`] = ` -"module.export = { - optimizations: { - splitChunks: false, - concatenateModules: true - }, - plugins: [new Foo()] -} -" -`; - -exports[`moduleConcatenationPlugin transforms correctly using "moduleConcatenationPlugin-2" data 1`] = ` -"module.export = { - optimizations: { - concatenateModules: true - }, - plugins: [new Foo()] -} -" -`; diff --git a/packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-0.input.js b/packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-0.input.js deleted file mode 100644 index 2d78c6398e1..00000000000 --- a/packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-0.input.js +++ /dev/null @@ -1,5 +0,0 @@ -module.export = { - plugins: [ - new webpack.optimize.ModuleConcatenationPlugin() - ] -} diff --git a/packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-1.input.js b/packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-1.input.js deleted file mode 100644 index cc81fd6b768..00000000000 --- a/packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-1.input.js +++ /dev/null @@ -1,9 +0,0 @@ -module.export = { - optimizations: { - splitChunks: false - }, - plugins: [ - new Foo(), - new webpack.optimize.ModuleConcatenationPlugin() - ] -} diff --git a/packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-2.input.js b/packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-2.input.js deleted file mode 100644 index eb80df14c9c..00000000000 --- a/packages/migrate/moduleConcatenationPlugin/__testfixtures__/moduleConcatenationPlugin-2.input.js +++ /dev/null @@ -1,9 +0,0 @@ -module.export = { - optimizations: { - concatenateModules: false - }, - plugins: [ - new Foo(), - new webpack.optimize.ModuleConcatenationPlugin() - ] -} diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__snapshots__/moduleConcatenationPlugin.test.ts.snap b/packages/migrate/moduleConcatenationPlugin/__tests__/__snapshots__/moduleConcatenationPlugin.test.ts.snap new file mode 100644 index 00000000000..d108b19ff45 --- /dev/null +++ b/packages/migrate/moduleConcatenationPlugin/__tests__/__snapshots__/moduleConcatenationPlugin.test.ts.snap @@ -0,0 +1,36 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`moduleConcatenationPlugin transforms correctly using "moduleConcatenationPlugin-0" data 1`] = ` +"import webpack from \\"webpack\\"; +module.exports = { + optimizations: { + concatenateModules: true + } +}; +" +`; + +exports[`moduleConcatenationPlugin transforms correctly using "moduleConcatenationPlugin-1" data 1`] = ` +"import webpack from \\"webpack\\"; +class Foo {} +module.exports = { + optimizations: { + splitChunks: false, + concatenateModules: true + }, + plugins: [new Foo()], +}; +" +`; + +exports[`moduleConcatenationPlugin transforms correctly using "moduleConcatenationPlugin-2" data 1`] = ` +"import webpack from \\"webpack\\"; +class Foo {} +module.exports = { + optimizations: { + concatenateModules: true + }, + plugins: [new Foo()], +}; +" +`; diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.ts b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.ts new file mode 100644 index 00000000000..5c60c9ff999 --- /dev/null +++ b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.ts @@ -0,0 +1,4 @@ +import webpack from "webpack"; +module.exports = { + plugins: [new webpack.optimize.ModuleConcatenationPlugin()], +}; diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.ts b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.ts new file mode 100644 index 00000000000..9c44d562cc2 --- /dev/null +++ b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.ts @@ -0,0 +1,8 @@ +import webpack from "webpack"; +class Foo {} +module.exports = { + optimizations: { + splitChunks: false, + }, + plugins: [new Foo(), new webpack.optimize.ModuleConcatenationPlugin()], +}; diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.ts b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.ts new file mode 100644 index 00000000000..9be55345c7d --- /dev/null +++ b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.ts @@ -0,0 +1,8 @@ +import webpack from "webpack"; +class Foo {} +module.exports = { + optimizations: { + concatenateModules: false, + }, + plugins: [new Foo(), new webpack.optimize.ModuleConcatenationPlugin()], +}; diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/moduleConcatenationPlugin.test.ts b/packages/migrate/moduleConcatenationPlugin/__tests__/moduleConcatenationPlugin.test.ts new file mode 100644 index 00000000000..e7322895d89 --- /dev/null +++ b/packages/migrate/moduleConcatenationPlugin/__tests__/moduleConcatenationPlugin.test.ts @@ -0,0 +1,18 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; + +defineTest( + join(__dirname, ".."), + "moduleConcatenationPlugin", + "moduleConcatenationPlugin-0", +); +defineTest( + join(__dirname, ".."), + "moduleConcatenationPlugin", + "moduleConcatenationPlugin-1", +); +defineTest( + join(__dirname, ".."), + "moduleConcatenationPlugin", + "moduleConcatenationPlugin-2", +); diff --git a/packages/migrate/moduleConcatenationPlugin/moduleConcatenationPlugin.test.js b/packages/migrate/moduleConcatenationPlugin/moduleConcatenationPlugin.test.js deleted file mode 100644 index 9a895b1c50e..00000000000 --- a/packages/migrate/moduleConcatenationPlugin/moduleConcatenationPlugin.test.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest( - __dirname, - "moduleConcatenationPlugin", - "moduleConcatenationPlugin-0" -); -defineTest( - __dirname, - "moduleConcatenationPlugin", - "moduleConcatenationPlugin-1" -); -defineTest( - __dirname, - "moduleConcatenationPlugin", - "moduleConcatenationPlugin-2" -); diff --git a/tsconfig.base.json b/tsconfig.base.json index 7f5d043ed5f..1b322830b9e 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -7,5 +7,5 @@ "skipLibCheck": true }, "include": ["packages/**/*.ts"], - "exclude": ["node_modules/**", "packages/*/node_modules/**", "packages/*/__tests__/*.test.ts"] + "exclude": ["node_modules/**", "packages/*/node_modules/**", "packages/**/__tests__/*.test.ts", "packages/**/__testfixtures__/*.ts"] } From 2c730464a74ab3a41386a95b31ae0aaa8e1056a8 Mon Sep 17 00:00:00 2001 From: Emanuele Stoppa Date: Mon, 1 Oct 2018 07:31:12 +0100 Subject: [PATCH 05/20] tests(migrate): moved to typescript --- packages/add/README.md | 10 ++- packages/add/index.ts | 15 ++--- .../__snapshots__/bannerPlugin.test.ts.snap} | 0 .../__testfixtures__/bannerPlugin-0.input.js | 0 .../__testfixtures__/bannerPlugin-1.input.js | 0 .../__testfixtures__/bannerPlugin-2.input.js | 0 .../__tests__/bannerPlugin.test.ts | 6 ++ .../migrate/bannerPlugin/bannerPlugin.test.js | 7 -- .../commonsChunkPlugin.test.ts.snap} | 0 .../commonsChunkPlugin-0.input.js | 0 .../commonsChunkPlugin-1.input.js | 0 .../commonsChunkPlugin-2.input.js | 0 .../commonsChunkPlugin-3.input.js | 0 .../commonsChunkPlugin-4.input.js | 0 .../commonsChunkPlugin-5.input.js | 0 .../commonsChunkPlugin-6a.input.js | 0 .../commonsChunkPlugin-6b.input.js | 0 .../commonsChunkPlugin-6c.input.js | 0 .../commonsChunkPlugin-6d.input.js | 0 .../commonsChunkPlugin-7.input.js | 0 .../__tests__/commonsChunkPlugin.test.ts | 30 +++++++++ .../commonsChunkPlugin.test.js | 15 ----- .../extractTextPlugin.test.js.snap | 24 ------- .../extractTextPlugin.input.js | 16 ----- .../extractTextPlugin.test.ts.snap | 21 ++++++ .../extractTextPlugin.input.js | 13 ++++ .../__tests__/extractTextPlugin.test.ts | 4 ++ .../extractTextPlugin.test.js | 5 -- .../loaderOptionsPlugin.test.ts.snap} | 0 .../loaderOptionsPlugin-0.input.js | 0 .../loaderOptionsPlugin-1.input.js | 0 .../loaderOptionsPlugin-2.input.js | 0 .../loaderOptionsPlugin-3.input.js | 0 .../__tests__/loaderOptionsPlugin.test.ts | 22 +++++++ .../loaderOptionsPlugin.test.js | 8 --- .../__snapshots__/loaders.test.ts.snap | 55 ++++++++-------- ...{loaders-0.input.ts => loaders-0.input.js} | 2 +- ...{loaders-1.input.ts => loaders-1.input.js} | 2 +- ...{loaders-2.input.ts => loaders-2.input.js} | 2 +- ...{loaders-3.input.ts => loaders-3.input.js} | 2 +- ...{loaders-4.input.ts => loaders-4.input.js} | 2 +- ...{loaders-5.input.ts => loaders-5.input.js} | 2 +- ...{loaders-6.input.ts => loaders-6.input.js} | 2 +- ...{loaders-7.input.ts => loaders-7.input.js} | 2 +- .../__testfixtures__/loaders-8.input.js | 11 ++++ .../__testfixtures__/loaders-8.input.ts | 12 ---- ...{loaders-9.input.ts => loaders-9.input.js} | 0 .../moduleConcatenationPlugin.test.ts.snap | 35 +++++----- .../moduleConcatenationPlugin-0.input.js | 3 + .../moduleConcatenationPlugin-0.input.ts | 4 -- .../moduleConcatenationPlugin-1.input.js | 6 ++ .../moduleConcatenationPlugin-1.input.ts | 8 --- .../moduleConcatenationPlugin-2.input.js | 6 ++ .../moduleConcatenationPlugin-2.input.ts | 8 --- .../namedModulesPlugin.test.ts.snap} | 0 .../namedModulesPlugin-0.input.js | 0 .../namedModulesPlugin-1.input.js | 0 .../namedModulesPlugin-2.input.js | 0 .../__tests__/namedModulesPlugin.test.ts | 5 ++ .../namedModulesPlugin.test.js | 7 -- .../noEmitOnErrorsPlugin-0.input.js | 5 -- .../noEmitOnErrorsPlugin-1.input.js | 9 --- .../noEmitOnErrorsPlugin-2.input.js | 9 --- .../noEmitOnErrorsPlugin.test.ts.snap} | 16 ++--- .../noEmitOnErrorsPlugin-0.input.js | 3 + .../noEmitOnErrorsPlugin-1.input.js | 6 ++ .../noEmitOnErrorsPlugin-2.input.js | 6 ++ .../__tests__/noEmitOnErrorsPlugin.test.ts | 17 +++++ .../noEmitOnErrorsPlugin.test.js | 7 -- .../__snapshots__/outputPath.test.ts.snap | 18 +++--- ...tPath-0.input.ts => outputPath-0.input.js} | 0 .../__testfixtures__/outputPath-1.input.js | 5 ++ .../__testfixtures__/outputPath-1.input.ts | 6 -- .../__testfixtures__/outputPath-2.input.js | 5 ++ .../__testfixtures__/outputPath-2.input.ts | 6 -- .../removeDeprecatedPlugins.test.ts.snap | 35 ++++------ .../removeDeprecatedPlugins-0.input.js | 3 + .../removeDeprecatedPlugins-0.input.ts | 5 -- .../removeDeprecatedPlugins-1.input.js | 3 + .../removeDeprecatedPlugins-1.input.ts | 6 -- .../removeDeprecatedPlugins-2.input.js | 3 + .../removeDeprecatedPlugins-2.input.ts | 10 --- .../removeDeprecatedPlugins-3.input.js | 8 +++ .../removeDeprecatedPlugins-3.input.ts | 9 --- .../removeDeprecatedPlugins-4.input.js | 8 +++ .../removeDeprecatedPlugins-4.input.ts | 8 --- .../removeJsonLoader.test.ts.snap | 64 +++++++++---------- .../removeJsonLoader-0.input.js | 20 ++++++ .../removeJsonLoader-0.input.ts | 20 ------ .../removeJsonLoader-1.input.js | 17 +++++ .../removeJsonLoader-1.input.ts | 17 ----- .../removeJsonLoader-2.input.js | 10 +++ .../removeJsonLoader-2.input.ts | 10 --- .../removeJsonLoader-3.input.js | 14 ++++ .../removeJsonLoader-3.input.ts | 14 ---- .../__snapshots__/resolve.test.ts.snap | 39 ++++++----- .../__testfixtures__/resolve.input.js | 24 +++++++ .../__testfixtures__/resolve.input.ts | 25 -------- .../uglifyJsPlugin.test.ts.snap} | 0 .../uglifyJsPlugin-0.input.js | 0 .../uglifyJsPlugin-1.input.js | 0 .../uglifyJsPlugin-2.input.js | 0 .../uglifyJsPlugin-3.input.js | 0 .../uglifyJsPlugin-4.input.js | 0 .../__tests__/uglifyJsPlugin.test.ts | 7 ++ .../uglifyJsPlugin/uglifyJsPlugin.test.js | 9 --- packages/utils/defineTest.ts | 2 +- tsconfig.base.json | 23 ++++--- tsconfig.json | 8 +-- tsconfig.packages.json | 8 +-- 110 files changed, 455 insertions(+), 464 deletions(-) rename packages/migrate/bannerPlugin/{__snapshots__/bannerPlugin.test.js.snap => __tests__/__snapshots__/bannerPlugin.test.ts.snap} (100%) rename packages/migrate/bannerPlugin/{ => __tests__}/__testfixtures__/bannerPlugin-0.input.js (100%) rename packages/migrate/bannerPlugin/{ => __tests__}/__testfixtures__/bannerPlugin-1.input.js (100%) rename packages/migrate/bannerPlugin/{ => __tests__}/__testfixtures__/bannerPlugin-2.input.js (100%) create mode 100644 packages/migrate/bannerPlugin/__tests__/bannerPlugin.test.ts delete mode 100644 packages/migrate/bannerPlugin/bannerPlugin.test.js rename packages/migrate/commonsChunkPlugin/{__snapshots__/commonsChunkPlugin.test.js.snap => __tests__/__snapshots__/commonsChunkPlugin.test.ts.snap} (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-0.input.js (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-1.input.js (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-2.input.js (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-3.input.js (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-4.input.js (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-5.input.js (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-6a.input.js (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-6b.input.js (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-6c.input.js (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-6d.input.js (100%) rename packages/migrate/commonsChunkPlugin/{ => __tests__}/__testfixtures__/commonsChunkPlugin-7.input.js (100%) create mode 100644 packages/migrate/commonsChunkPlugin/__tests__/commonsChunkPlugin.test.ts delete mode 100644 packages/migrate/commonsChunkPlugin/commonsChunkPlugin.test.js delete mode 100644 packages/migrate/extractTextPlugin/__snapshots__/extractTextPlugin.test.js.snap delete mode 100644 packages/migrate/extractTextPlugin/__testfixtures__/extractTextPlugin.input.js create mode 100644 packages/migrate/extractTextPlugin/__tests__/__snapshots__/extractTextPlugin.test.ts.snap create mode 100644 packages/migrate/extractTextPlugin/__tests__/__testfixtures__/extractTextPlugin.input.js create mode 100644 packages/migrate/extractTextPlugin/__tests__/extractTextPlugin.test.ts delete mode 100644 packages/migrate/extractTextPlugin/extractTextPlugin.test.js rename packages/migrate/loaderOptionsPlugin/{__snapshots__/loaderOptionsPlugin.test.js.snap => __tests__/__snapshots__/loaderOptionsPlugin.test.ts.snap} (100%) rename packages/migrate/loaderOptionsPlugin/{ => __tests__}/__testfixtures__/loaderOptionsPlugin-0.input.js (100%) rename packages/migrate/loaderOptionsPlugin/{ => __tests__}/__testfixtures__/loaderOptionsPlugin-1.input.js (100%) rename packages/migrate/loaderOptionsPlugin/{ => __tests__}/__testfixtures__/loaderOptionsPlugin-2.input.js (100%) rename packages/migrate/loaderOptionsPlugin/{ => __tests__}/__testfixtures__/loaderOptionsPlugin-3.input.js (100%) create mode 100644 packages/migrate/loaderOptionsPlugin/__tests__/loaderOptionsPlugin.test.ts delete mode 100644 packages/migrate/loaderOptionsPlugin/loaderOptionsPlugin.test.js rename packages/migrate/loaders/__tests__/__testfixtures__/{loaders-0.input.ts => loaders-0.input.js} (98%) rename packages/migrate/loaders/__tests__/__testfixtures__/{loaders-1.input.ts => loaders-1.input.js} (86%) rename packages/migrate/loaders/__tests__/__testfixtures__/{loaders-2.input.ts => loaders-2.input.js} (90%) rename packages/migrate/loaders/__tests__/__testfixtures__/{loaders-3.input.ts => loaders-3.input.js} (81%) rename packages/migrate/loaders/__tests__/__testfixtures__/{loaders-4.input.ts => loaders-4.input.js} (82%) rename packages/migrate/loaders/__tests__/__testfixtures__/{loaders-5.input.ts => loaders-5.input.js} (89%) rename packages/migrate/loaders/__tests__/__testfixtures__/{loaders-6.input.ts => loaders-6.input.js} (89%) rename packages/migrate/loaders/__tests__/__testfixtures__/{loaders-7.input.ts => loaders-7.input.js} (89%) create mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.js delete mode 100644 packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.ts rename packages/migrate/loaders/__tests__/__testfixtures__/{loaders-9.input.ts => loaders-9.input.js} (100%) create mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.js delete mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.ts create mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.js delete mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.ts create mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.js delete mode 100644 packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.ts rename packages/migrate/namedModulesPlugin/{__snapshots__/namedModulesPlugin.test.js.snap => __tests__/__snapshots__/namedModulesPlugin.test.ts.snap} (100%) rename packages/migrate/namedModulesPlugin/{ => __tests__}/__testfixtures__/namedModulesPlugin-0.input.js (100%) rename packages/migrate/namedModulesPlugin/{ => __tests__}/__testfixtures__/namedModulesPlugin-1.input.js (100%) rename packages/migrate/namedModulesPlugin/{ => __tests__}/__testfixtures__/namedModulesPlugin-2.input.js (100%) create mode 100644 packages/migrate/namedModulesPlugin/__tests__/namedModulesPlugin.test.ts delete mode 100644 packages/migrate/namedModulesPlugin/namedModulesPlugin.test.js delete mode 100644 packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-0.input.js delete mode 100644 packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-1.input.js delete mode 100644 packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-2.input.js rename packages/migrate/noEmitOnErrorsPlugin/{__snapshots__/noEmitOnErrorsPlugin.test.js.snap => __tests__/__snapshots__/noEmitOnErrorsPlugin.test.ts.snap} (82%) create mode 100644 packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-0.input.js create mode 100644 packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-1.input.js create mode 100644 packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-2.input.js create mode 100644 packages/migrate/noEmitOnErrorsPlugin/__tests__/noEmitOnErrorsPlugin.test.ts delete mode 100644 packages/migrate/noEmitOnErrorsPlugin/noEmitOnErrorsPlugin.test.js rename packages/migrate/outputPath/__tests__/__testfixtures__/{outputPath-0.input.ts => outputPath-0.input.js} (100%) create mode 100644 packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.js delete mode 100644 packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.ts create mode 100644 packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.js delete mode 100644 packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.ts create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.js delete mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.ts create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.js delete mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.ts create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.js delete mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.ts create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.js delete mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.ts create mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.js delete mode 100644 packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.ts create mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.js delete mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.ts create mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.js delete mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.ts create mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.js delete mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.ts create mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.js delete mode 100644 packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.ts create mode 100644 packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js delete mode 100644 packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.ts rename packages/migrate/uglifyJsPlugin/{__snapshots__/uglifyJsPlugin.test.js.snap => __tests__/__snapshots__/uglifyJsPlugin.test.ts.snap} (100%) rename packages/migrate/uglifyJsPlugin/{ => __tests__}/__testfixtures__/uglifyJsPlugin-0.input.js (100%) rename packages/migrate/uglifyJsPlugin/{ => __tests__}/__testfixtures__/uglifyJsPlugin-1.input.js (100%) rename packages/migrate/uglifyJsPlugin/{ => __tests__}/__testfixtures__/uglifyJsPlugin-2.input.js (100%) rename packages/migrate/uglifyJsPlugin/{ => __tests__}/__testfixtures__/uglifyJsPlugin-3.input.js (100%) rename packages/migrate/uglifyJsPlugin/{ => __tests__}/__testfixtures__/uglifyJsPlugin-4.input.js (100%) create mode 100644 packages/migrate/uglifyJsPlugin/__tests__/uglifyJsPlugin.test.ts delete mode 100644 packages/migrate/uglifyJsPlugin/uglifyJsPlugin.test.js diff --git a/packages/add/README.md b/packages/add/README.md index 81145ceee68..0cb1b45b86c 100644 --- a/packages/add/README.md +++ b/packages/add/README.md @@ -10,17 +10,25 @@ This package contains the logic to add new properties in a webpack configuration npm i -D webpack-cli @webpack-cli/add ``` +or + +```bash +yarn add --dev webpack-cli @webpack-cli/add +``` + ## Usage To run the scaffolding instance programmatically, install it as a dependency. When using the package programmatically, one does not have to install webpack-cli. ### Node + ```js const add = require("@webpack-cli/add").default; add(); ``` ### CLI (via `webpack-cli`) + ```bash npx webpack-cli add -``` \ No newline at end of file +``` diff --git a/packages/add/index.ts b/packages/add/index.ts index 38f545d6889..21a80f2d2a9 100644 --- a/packages/add/index.ts +++ b/packages/add/index.ts @@ -9,15 +9,14 @@ import modifyConfigHelper from "@webpack-cli/utils/modify-config-helper"; * we're given on a generator * */ +const DEFAULT_WEBPACK_CONFIG_FILENAME: string = "webpack.config.js"; export default function add(...args: string[]): Function { - const DEFAULT_WEBPACK_CONFIG_FILENAME: string = "webpack.config.js"; + const filePaths: string[] = args.slice(3); + let configFile: string = DEFAULT_WEBPACK_CONFIG_FILENAME; + if (filePaths.length) { + configFile = filePaths[0]; + } - const filePaths: string[] = args.slice(3); - let configFile: string = DEFAULT_WEBPACK_CONFIG_FILENAME; - if (filePaths.length) { - configFile = filePaths[0]; - } - - return modifyConfigHelper("add", defaultGenerator, configFile); + return modifyConfigHelper("add", defaultGenerator, configFile); } diff --git a/packages/migrate/bannerPlugin/__snapshots__/bannerPlugin.test.js.snap b/packages/migrate/bannerPlugin/__tests__/__snapshots__/bannerPlugin.test.ts.snap similarity index 100% rename from packages/migrate/bannerPlugin/__snapshots__/bannerPlugin.test.js.snap rename to packages/migrate/bannerPlugin/__tests__/__snapshots__/bannerPlugin.test.ts.snap diff --git a/packages/migrate/bannerPlugin/__testfixtures__/bannerPlugin-0.input.js b/packages/migrate/bannerPlugin/__tests__/__testfixtures__/bannerPlugin-0.input.js similarity index 100% rename from packages/migrate/bannerPlugin/__testfixtures__/bannerPlugin-0.input.js rename to packages/migrate/bannerPlugin/__tests__/__testfixtures__/bannerPlugin-0.input.js diff --git a/packages/migrate/bannerPlugin/__testfixtures__/bannerPlugin-1.input.js b/packages/migrate/bannerPlugin/__tests__/__testfixtures__/bannerPlugin-1.input.js similarity index 100% rename from packages/migrate/bannerPlugin/__testfixtures__/bannerPlugin-1.input.js rename to packages/migrate/bannerPlugin/__tests__/__testfixtures__/bannerPlugin-1.input.js diff --git a/packages/migrate/bannerPlugin/__testfixtures__/bannerPlugin-2.input.js b/packages/migrate/bannerPlugin/__tests__/__testfixtures__/bannerPlugin-2.input.js similarity index 100% rename from packages/migrate/bannerPlugin/__testfixtures__/bannerPlugin-2.input.js rename to packages/migrate/bannerPlugin/__tests__/__testfixtures__/bannerPlugin-2.input.js diff --git a/packages/migrate/bannerPlugin/__tests__/bannerPlugin.test.ts b/packages/migrate/bannerPlugin/__tests__/bannerPlugin.test.ts new file mode 100644 index 00000000000..58dc2c12821 --- /dev/null +++ b/packages/migrate/bannerPlugin/__tests__/bannerPlugin.test.ts @@ -0,0 +1,6 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; + +defineTest(join(__dirname, ".."), "bannerPlugin", "bannerPlugin-0"); +defineTest(join(__dirname, ".."), "bannerPlugin", "bannerPlugin-1"); +defineTest(join(__dirname, ".."), "bannerPlugin", "bannerPlugin-2"); diff --git a/packages/migrate/bannerPlugin/bannerPlugin.test.js b/packages/migrate/bannerPlugin/bannerPlugin.test.js deleted file mode 100644 index 8f6ad100036..00000000000 --- a/packages/migrate/bannerPlugin/bannerPlugin.test.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "bannerPlugin", "bannerPlugin-0"); -defineTest(__dirname, "bannerPlugin", "bannerPlugin-1"); -defineTest(__dirname, "bannerPlugin", "bannerPlugin-2"); diff --git a/packages/migrate/commonsChunkPlugin/__snapshots__/commonsChunkPlugin.test.js.snap b/packages/migrate/commonsChunkPlugin/__tests__/__snapshots__/commonsChunkPlugin.test.ts.snap similarity index 100% rename from packages/migrate/commonsChunkPlugin/__snapshots__/commonsChunkPlugin.test.js.snap rename to packages/migrate/commonsChunkPlugin/__tests__/__snapshots__/commonsChunkPlugin.test.ts.snap diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-0.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-0.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-0.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-0.input.js diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-1.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-1.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-1.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-1.input.js diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-2.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-2.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-2.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-2.input.js diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-3.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-3.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-3.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-3.input.js diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-4.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-4.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-4.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-4.input.js diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-5.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-5.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-5.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-5.input.js diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-6a.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-6a.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-6a.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-6a.input.js diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-6b.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-6b.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-6b.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-6b.input.js diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-6c.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-6c.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-6c.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-6c.input.js diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-6d.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-6d.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-6d.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-6d.input.js diff --git a/packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-7.input.js b/packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-7.input.js similarity index 100% rename from packages/migrate/commonsChunkPlugin/__testfixtures__/commonsChunkPlugin-7.input.js rename to packages/migrate/commonsChunkPlugin/__tests__/__testfixtures__/commonsChunkPlugin-7.input.js diff --git a/packages/migrate/commonsChunkPlugin/__tests__/commonsChunkPlugin.test.ts b/packages/migrate/commonsChunkPlugin/__tests__/commonsChunkPlugin.test.ts new file mode 100644 index 00000000000..acbecafbf67 --- /dev/null +++ b/packages/migrate/commonsChunkPlugin/__tests__/commonsChunkPlugin.test.ts @@ -0,0 +1,30 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; + +defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-0"); +defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-1"); +defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-2"); +defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-3"); +defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-4"); +defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-5"); +defineTest( + join(__dirname, ".."), + "commonsChunkPlugin", + "commonsChunkPlugin-6a", +); +defineTest( + join(__dirname, ".."), + "commonsChunkPlugin", + "commonsChunkPlugin-6b", +); +defineTest( + join(__dirname, ".."), + "commonsChunkPlugin", + "commonsChunkPlugin-6c", +); +defineTest( + join(__dirname, ".."), + "commonsChunkPlugin", + "commonsChunkPlugin-6d", +); +defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-7"); diff --git a/packages/migrate/commonsChunkPlugin/commonsChunkPlugin.test.js b/packages/migrate/commonsChunkPlugin/commonsChunkPlugin.test.js deleted file mode 100644 index 123b3ba81d8..00000000000 --- a/packages/migrate/commonsChunkPlugin/commonsChunkPlugin.test.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-0"); -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-1"); -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-2"); -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-3"); -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-4"); -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-5"); -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-6a"); -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-6b"); -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-6c"); -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-6d"); -defineTest(__dirname, "commonsChunkPlugin", "commonsChunkPlugin-7"); diff --git a/packages/migrate/extractTextPlugin/__snapshots__/extractTextPlugin.test.js.snap b/packages/migrate/extractTextPlugin/__snapshots__/extractTextPlugin.test.js.snap deleted file mode 100644 index c60c600d9c2..00000000000 --- a/packages/migrate/extractTextPlugin/__snapshots__/extractTextPlugin.test.js.snap +++ /dev/null @@ -1,24 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`extractTextPlugin transforms correctly 1`] = ` -"let ExtractTextPlugin = require('extract-text-webpack-plugin'); -let HTMLWebpackPlugin = require('html-webpack-plugin'); - -module.export = { - module: { - rules: [ - { - test: /\\\\.css$/, - use: ExtractTextPlugin.extract({ - fallback: 'style-loader', - use: 'css-loader' - }) - } - ] - }, - plugins: [ - new ExtractTextPlugin(\\"styles.css\\"), - ] -} -" -`; diff --git a/packages/migrate/extractTextPlugin/__testfixtures__/extractTextPlugin.input.js b/packages/migrate/extractTextPlugin/__testfixtures__/extractTextPlugin.input.js deleted file mode 100644 index f578bb4342d..00000000000 --- a/packages/migrate/extractTextPlugin/__testfixtures__/extractTextPlugin.input.js +++ /dev/null @@ -1,16 +0,0 @@ -let ExtractTextPlugin = require('extract-text-webpack-plugin'); -let HTMLWebpackPlugin = require('html-webpack-plugin'); - -module.export = { - module: { - rules: [ - { - test: /\.css$/, - use: ExtractTextPlugin.extract('style-loader', 'css-loader') - } - ] - }, - plugins: [ - new ExtractTextPlugin("styles.css"), - ] -} diff --git a/packages/migrate/extractTextPlugin/__tests__/__snapshots__/extractTextPlugin.test.ts.snap b/packages/migrate/extractTextPlugin/__tests__/__snapshots__/extractTextPlugin.test.ts.snap new file mode 100644 index 00000000000..fe042da4a2c --- /dev/null +++ b/packages/migrate/extractTextPlugin/__tests__/__snapshots__/extractTextPlugin.test.ts.snap @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`extractTextPlugin transforms correctly 1`] = ` +"const ExtractTextPlugin = require(\\"extract-text-webpack-plugin\\"); + +module.exports = { + module: { + rules: [ + { + test: /\\\\.css$/, + use: ExtractTextPlugin.extract({ + fallback: 'style-loader', + use: 'css-loader' + }) + } + ] + }, + plugins: [new ExtractTextPlugin(\\"styles.css\\")] +}; +" +`; diff --git a/packages/migrate/extractTextPlugin/__tests__/__testfixtures__/extractTextPlugin.input.js b/packages/migrate/extractTextPlugin/__tests__/__testfixtures__/extractTextPlugin.input.js new file mode 100644 index 00000000000..07d46e38cc0 --- /dev/null +++ b/packages/migrate/extractTextPlugin/__tests__/__testfixtures__/extractTextPlugin.input.js @@ -0,0 +1,13 @@ +const ExtractTextPlugin = require("extract-text-webpack-plugin"); + +module.exports = { + module: { + rules: [ + { + test: /\.css$/, + use: ExtractTextPlugin.extract("style-loader", "css-loader") + } + ] + }, + plugins: [new ExtractTextPlugin("styles.css")] +}; diff --git a/packages/migrate/extractTextPlugin/__tests__/extractTextPlugin.test.ts b/packages/migrate/extractTextPlugin/__tests__/extractTextPlugin.test.ts new file mode 100644 index 00000000000..ed310c44315 --- /dev/null +++ b/packages/migrate/extractTextPlugin/__tests__/extractTextPlugin.test.ts @@ -0,0 +1,4 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; + +defineTest(join(__dirname, ".."), "extractTextPlugin"); diff --git a/packages/migrate/extractTextPlugin/extractTextPlugin.test.js b/packages/migrate/extractTextPlugin/extractTextPlugin.test.js deleted file mode 100644 index b003fcc520a..00000000000 --- a/packages/migrate/extractTextPlugin/extractTextPlugin.test.js +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "extractTextPlugin"); diff --git a/packages/migrate/loaderOptionsPlugin/__snapshots__/loaderOptionsPlugin.test.js.snap b/packages/migrate/loaderOptionsPlugin/__tests__/__snapshots__/loaderOptionsPlugin.test.ts.snap similarity index 100% rename from packages/migrate/loaderOptionsPlugin/__snapshots__/loaderOptionsPlugin.test.js.snap rename to packages/migrate/loaderOptionsPlugin/__tests__/__snapshots__/loaderOptionsPlugin.test.ts.snap diff --git a/packages/migrate/loaderOptionsPlugin/__testfixtures__/loaderOptionsPlugin-0.input.js b/packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-0.input.js similarity index 100% rename from packages/migrate/loaderOptionsPlugin/__testfixtures__/loaderOptionsPlugin-0.input.js rename to packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-0.input.js diff --git a/packages/migrate/loaderOptionsPlugin/__testfixtures__/loaderOptionsPlugin-1.input.js b/packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-1.input.js similarity index 100% rename from packages/migrate/loaderOptionsPlugin/__testfixtures__/loaderOptionsPlugin-1.input.js rename to packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-1.input.js diff --git a/packages/migrate/loaderOptionsPlugin/__testfixtures__/loaderOptionsPlugin-2.input.js b/packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-2.input.js similarity index 100% rename from packages/migrate/loaderOptionsPlugin/__testfixtures__/loaderOptionsPlugin-2.input.js rename to packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-2.input.js diff --git a/packages/migrate/loaderOptionsPlugin/__testfixtures__/loaderOptionsPlugin-3.input.js b/packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-3.input.js similarity index 100% rename from packages/migrate/loaderOptionsPlugin/__testfixtures__/loaderOptionsPlugin-3.input.js rename to packages/migrate/loaderOptionsPlugin/__tests__/__testfixtures__/loaderOptionsPlugin-3.input.js diff --git a/packages/migrate/loaderOptionsPlugin/__tests__/loaderOptionsPlugin.test.ts b/packages/migrate/loaderOptionsPlugin/__tests__/loaderOptionsPlugin.test.ts new file mode 100644 index 00000000000..2a97886e9b1 --- /dev/null +++ b/packages/migrate/loaderOptionsPlugin/__tests__/loaderOptionsPlugin.test.ts @@ -0,0 +1,22 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; +defineTest( + join(__dirname, ".."), + "loaderOptionsPlugin", + "loaderOptionsPlugin-0", +); +defineTest( + join(__dirname, ".."), + "loaderOptionsPlugin", + "loaderOptionsPlugin-1", +); +defineTest( + join(__dirname, ".."), + "loaderOptionsPlugin", + "loaderOptionsPlugin-2", +); +defineTest( + join(__dirname, ".."), + "loaderOptionsPlugin", + "loaderOptionsPlugin-3", +); diff --git a/packages/migrate/loaderOptionsPlugin/loaderOptionsPlugin.test.js b/packages/migrate/loaderOptionsPlugin/loaderOptionsPlugin.test.js deleted file mode 100644 index c8928b75473..00000000000 --- a/packages/migrate/loaderOptionsPlugin/loaderOptionsPlugin.test.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "loaderOptionsPlugin", "loaderOptionsPlugin-0"); -defineTest(__dirname, "loaderOptionsPlugin", "loaderOptionsPlugin-1"); -defineTest(__dirname, "loaderOptionsPlugin", "loaderOptionsPlugin-2"); -defineTest(__dirname, "loaderOptionsPlugin", "loaderOptionsPlugin-3"); diff --git a/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap b/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap index 7d170d4c435..dde1b1cb450 100644 --- a/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap +++ b/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap @@ -1,7 +1,7 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`loaders transforms correctly using "loaders-0" data 1`] = ` -"export default [ +"module.exports = [ { module: { rules: [ @@ -118,7 +118,7 @@ exports[`loaders transforms correctly using "loaders-0" data 1`] = ` `; exports[`loaders transforms correctly using "loaders-1" data 1`] = ` -"export default { +"module.exports = { module: { rules: [ { @@ -142,7 +142,7 @@ exports[`loaders transforms correctly using "loaders-1" data 1`] = ` `; exports[`loaders transforms correctly using "loaders-2" data 1`] = ` -"export default { +"module.exports = { module: { rules: [ { @@ -163,7 +163,7 @@ exports[`loaders transforms correctly using "loaders-2" data 1`] = ` `; exports[`loaders transforms correctly using "loaders-3" data 1`] = ` -"export default { +"module.exports = { module: { rules: [ { @@ -181,7 +181,7 @@ exports[`loaders transforms correctly using "loaders-3" data 1`] = ` `; exports[`loaders transforms correctly using "loaders-4" data 1`] = ` -"export default { +"module.exports = { module: { rules: [ { @@ -199,7 +199,7 @@ exports[`loaders transforms correctly using "loaders-4" data 1`] = ` `; exports[`loaders transforms correctly using "loaders-5" data 1`] = ` -"export default { +"module.exports = { module: { rules: [{ use: [{ @@ -220,7 +220,7 @@ exports[`loaders transforms correctly using "loaders-5" data 1`] = ` `; exports[`loaders transforms correctly using "loaders-6" data 1`] = ` -"export default { +"module.exports = { module: { rules: [{ use: [{ @@ -241,7 +241,7 @@ exports[`loaders transforms correctly using "loaders-6" data 1`] = ` `; exports[`loaders transforms correctly using "loaders-7" data 1`] = ` -"export default { +"module.exports = { module: { rules: [ { @@ -264,27 +264,26 @@ exports[`loaders transforms correctly using "loaders-7" data 1`] = ` `; exports[`loaders transforms correctly using "loaders-8" data 1`] = ` -"import * as path from \\"path\\"; -module.exports = { - module: { - rules: [ - { - include: path.join(__dirname, \\"src\\"), - use: [{ - loader: 'style-loader' - }, { - loader: 'css-loader', +"module.exports = { + module: { + rules: [ + { + include: path.join(__dirname, \\"src\\"), + use: [{ + loader: 'style-loader' + }, { + loader: 'css-loader', - options: { - modules: true, - importLoaders: 1, - string: 'test123' - } - }], - test: /\\\\.js$/, - }, - ], - }, + options: { + modules: true, + importLoaders: 1, + string: 'test123' + } + }], + test: /\\\\.js$/ + } + ] + } }; " `; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-0.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-0.input.js similarity index 98% rename from packages/migrate/loaders/__tests__/__testfixtures__/loaders-0.input.ts rename to packages/migrate/loaders/__tests__/__testfixtures__/loaders-0.input.js index aa192c06157..e58bb6f88ef 100644 --- a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-0.input.ts +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-0.input.js @@ -1,4 +1,4 @@ -export default [ +module.exports = [ { module: { loaders: [ diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-1.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-1.input.js similarity index 86% rename from packages/migrate/loaders/__tests__/__testfixtures__/loaders-1.input.ts rename to packages/migrate/loaders/__tests__/__testfixtures__/loaders-1.input.js index 64bced753e4..0662abea05e 100644 --- a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-1.input.ts +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-1.input.js @@ -1,4 +1,4 @@ -export default { +module.exports = { module: { loaders: [ { diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-2.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-2.input.js similarity index 90% rename from packages/migrate/loaders/__tests__/__testfixtures__/loaders-2.input.ts rename to packages/migrate/loaders/__tests__/__testfixtures__/loaders-2.input.js index 1dcd9a55334..388182d1d9e 100644 --- a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-2.input.ts +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-2.input.js @@ -1,4 +1,4 @@ -export default { +module.exports = { module: { loaders: [ { diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-3.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-3.input.js similarity index 81% rename from packages/migrate/loaders/__tests__/__testfixtures__/loaders-3.input.ts rename to packages/migrate/loaders/__tests__/__testfixtures__/loaders-3.input.js index 43c2ada1ea9..cef7c100bb7 100644 --- a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-3.input.ts +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-3.input.js @@ -1,4 +1,4 @@ -export default { +module.exports = { module: { preLoaders: [ { diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-4.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-4.input.js similarity index 82% rename from packages/migrate/loaders/__tests__/__testfixtures__/loaders-4.input.ts rename to packages/migrate/loaders/__tests__/__testfixtures__/loaders-4.input.js index 117ccfdcf4e..863f7acb499 100644 --- a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-4.input.ts +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-4.input.js @@ -1,4 +1,4 @@ -export default { +module.exports = { module: { postLoaders: [ { diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-5.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-5.input.js similarity index 89% rename from packages/migrate/loaders/__tests__/__testfixtures__/loaders-5.input.ts rename to packages/migrate/loaders/__tests__/__testfixtures__/loaders-5.input.js index 42266dafbc4..63758597dcf 100644 --- a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-5.input.ts +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-5.input.js @@ -1,4 +1,4 @@ -export default { +module.exports = { module: { loaders: [ { diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-6.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-6.input.js similarity index 89% rename from packages/migrate/loaders/__tests__/__testfixtures__/loaders-6.input.ts rename to packages/migrate/loaders/__tests__/__testfixtures__/loaders-6.input.js index 4840f5be1d7..405e508e2d7 100644 --- a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-6.input.ts +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-6.input.js @@ -1,4 +1,4 @@ -export default { +module.exports = { module: { loaders: [ { diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.js similarity index 89% rename from packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.ts rename to packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.js index dc7122ebfe7..1b685ab72ba 100644 --- a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.ts +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.js @@ -1,4 +1,4 @@ -export default { +module.exports = { module: { loaders: [ { diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.js b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.js new file mode 100644 index 00000000000..1be3161d4b7 --- /dev/null +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.js @@ -0,0 +1,11 @@ +module.exports = { + module: { + loaders: [ + { + include: path.join(__dirname, "src"), + loaders: ["style", "css?modules&importLoaders=1&string=test123"], + test: /\.js$/ + } + ] + } +}; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.ts deleted file mode 100644 index ef4bb00b9d1..00000000000 --- a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-8.input.ts +++ /dev/null @@ -1,12 +0,0 @@ -import * as path from "path"; -module.exports = { - module: { - loaders: [ - { - include: path.join(__dirname, "src"), - loaders: ["style", "css?modules&importLoaders=1&string=test123"], - test: /\.js$/, - }, - ], - }, -}; diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-9.input.ts b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-9.input.js similarity index 100% rename from packages/migrate/loaders/__tests__/__testfixtures__/loaders-9.input.ts rename to packages/migrate/loaders/__tests__/__testfixtures__/loaders-9.input.js diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__snapshots__/moduleConcatenationPlugin.test.ts.snap b/packages/migrate/moduleConcatenationPlugin/__tests__/__snapshots__/moduleConcatenationPlugin.test.ts.snap index d108b19ff45..5a974551a29 100644 --- a/packages/migrate/moduleConcatenationPlugin/__tests__/__snapshots__/moduleConcatenationPlugin.test.ts.snap +++ b/packages/migrate/moduleConcatenationPlugin/__tests__/__snapshots__/moduleConcatenationPlugin.test.ts.snap @@ -1,36 +1,31 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`moduleConcatenationPlugin transforms correctly using "moduleConcatenationPlugin-0" data 1`] = ` -"import webpack from \\"webpack\\"; -module.exports = { - optimizations: { - concatenateModules: true - } +"module.exports = { + optimizations: { + concatenateModules: true + } }; " `; exports[`moduleConcatenationPlugin transforms correctly using "moduleConcatenationPlugin-1" data 1`] = ` -"import webpack from \\"webpack\\"; -class Foo {} -module.exports = { - optimizations: { - splitChunks: false, - concatenateModules: true - }, - plugins: [new Foo()], +"module.exports = { + optimizations: { + splitChunks: false, + concatenateModules: true + }, + plugins: [new Foo()] }; " `; exports[`moduleConcatenationPlugin transforms correctly using "moduleConcatenationPlugin-2" data 1`] = ` -"import webpack from \\"webpack\\"; -class Foo {} -module.exports = { - optimizations: { - concatenateModules: true - }, - plugins: [new Foo()], +"module.exports = { + optimizations: { + concatenateModules: true + }, + plugins: [new Foo()] }; " `; diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.js b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.js new file mode 100644 index 00000000000..cd8dd6c0e65 --- /dev/null +++ b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.js @@ -0,0 +1,3 @@ +module.exports = { + plugins: [new webpack.optimize.ModuleConcatenationPlugin()] +}; diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.ts b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.ts deleted file mode 100644 index 5c60c9ff999..00000000000 --- a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-0.input.ts +++ /dev/null @@ -1,4 +0,0 @@ -import webpack from "webpack"; -module.exports = { - plugins: [new webpack.optimize.ModuleConcatenationPlugin()], -}; diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.js b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.js new file mode 100644 index 00000000000..4681fe01cb8 --- /dev/null +++ b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.js @@ -0,0 +1,6 @@ +module.exports = { + optimizations: { + splitChunks: false + }, + plugins: [new Foo(), new webpack.optimize.ModuleConcatenationPlugin()] +}; diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.ts b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.ts deleted file mode 100644 index 9c44d562cc2..00000000000 --- a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-1.input.ts +++ /dev/null @@ -1,8 +0,0 @@ -import webpack from "webpack"; -class Foo {} -module.exports = { - optimizations: { - splitChunks: false, - }, - plugins: [new Foo(), new webpack.optimize.ModuleConcatenationPlugin()], -}; diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.js b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.js new file mode 100644 index 00000000000..1cae8402ad0 --- /dev/null +++ b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.js @@ -0,0 +1,6 @@ +module.exports = { + optimizations: { + concatenateModules: false + }, + plugins: [new Foo(), new webpack.optimize.ModuleConcatenationPlugin()] +}; diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.ts b/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.ts deleted file mode 100644 index 9be55345c7d..00000000000 --- a/packages/migrate/moduleConcatenationPlugin/__tests__/__testfixtures__/moduleConcatenationPlugin-2.input.ts +++ /dev/null @@ -1,8 +0,0 @@ -import webpack from "webpack"; -class Foo {} -module.exports = { - optimizations: { - concatenateModules: false, - }, - plugins: [new Foo(), new webpack.optimize.ModuleConcatenationPlugin()], -}; diff --git a/packages/migrate/namedModulesPlugin/__snapshots__/namedModulesPlugin.test.js.snap b/packages/migrate/namedModulesPlugin/__tests__/__snapshots__/namedModulesPlugin.test.ts.snap similarity index 100% rename from packages/migrate/namedModulesPlugin/__snapshots__/namedModulesPlugin.test.js.snap rename to packages/migrate/namedModulesPlugin/__tests__/__snapshots__/namedModulesPlugin.test.ts.snap diff --git a/packages/migrate/namedModulesPlugin/__testfixtures__/namedModulesPlugin-0.input.js b/packages/migrate/namedModulesPlugin/__tests__/__testfixtures__/namedModulesPlugin-0.input.js similarity index 100% rename from packages/migrate/namedModulesPlugin/__testfixtures__/namedModulesPlugin-0.input.js rename to packages/migrate/namedModulesPlugin/__tests__/__testfixtures__/namedModulesPlugin-0.input.js diff --git a/packages/migrate/namedModulesPlugin/__testfixtures__/namedModulesPlugin-1.input.js b/packages/migrate/namedModulesPlugin/__tests__/__testfixtures__/namedModulesPlugin-1.input.js similarity index 100% rename from packages/migrate/namedModulesPlugin/__testfixtures__/namedModulesPlugin-1.input.js rename to packages/migrate/namedModulesPlugin/__tests__/__testfixtures__/namedModulesPlugin-1.input.js diff --git a/packages/migrate/namedModulesPlugin/__testfixtures__/namedModulesPlugin-2.input.js b/packages/migrate/namedModulesPlugin/__tests__/__testfixtures__/namedModulesPlugin-2.input.js similarity index 100% rename from packages/migrate/namedModulesPlugin/__testfixtures__/namedModulesPlugin-2.input.js rename to packages/migrate/namedModulesPlugin/__tests__/__testfixtures__/namedModulesPlugin-2.input.js diff --git a/packages/migrate/namedModulesPlugin/__tests__/namedModulesPlugin.test.ts b/packages/migrate/namedModulesPlugin/__tests__/namedModulesPlugin.test.ts new file mode 100644 index 00000000000..ff24c9912eb --- /dev/null +++ b/packages/migrate/namedModulesPlugin/__tests__/namedModulesPlugin.test.ts @@ -0,0 +1,5 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; +defineTest(join(__dirname, ".."), "namedModulesPlugin", "namedModulesPlugin-0"); +defineTest(join(__dirname, ".."), "namedModulesPlugin", "namedModulesPlugin-1"); +defineTest(join(__dirname, ".."), "namedModulesPlugin", "namedModulesPlugin-2"); diff --git a/packages/migrate/namedModulesPlugin/namedModulesPlugin.test.js b/packages/migrate/namedModulesPlugin/namedModulesPlugin.test.js deleted file mode 100644 index b0a0b14969a..00000000000 --- a/packages/migrate/namedModulesPlugin/namedModulesPlugin.test.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "namedModulesPlugin", "namedModulesPlugin-0"); -defineTest(__dirname, "namedModulesPlugin", "namedModulesPlugin-1"); -defineTest(__dirname, "namedModulesPlugin", "namedModulesPlugin-2"); diff --git a/packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-0.input.js b/packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-0.input.js deleted file mode 100644 index 040e6e057e4..00000000000 --- a/packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-0.input.js +++ /dev/null @@ -1,5 +0,0 @@ -module.export = { - plugins: [ - new webpack.NoEmitOnErrorsPlugin() - ] -} diff --git a/packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-1.input.js b/packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-1.input.js deleted file mode 100644 index a194920c60a..00000000000 --- a/packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-1.input.js +++ /dev/null @@ -1,9 +0,0 @@ -module.export = { - optimizations: { - splitChunks: false - }, - plugins: [ - new Foo(), - new webpack.NoEmitOnErrorsPlugin() - ] -} diff --git a/packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-2.input.js b/packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-2.input.js deleted file mode 100644 index d320a16507a..00000000000 --- a/packages/migrate/noEmitOnErrorsPlugin/__testfixtures__/noEmitOnErrorsPlugin-2.input.js +++ /dev/null @@ -1,9 +0,0 @@ -module.export = { - optimizations: { - noEmitOnErrors: false - }, - plugins: [ - new Foo(), - new webpack.NoEmitOnErrorsPlugin() - ] -} diff --git a/packages/migrate/noEmitOnErrorsPlugin/__snapshots__/noEmitOnErrorsPlugin.test.js.snap b/packages/migrate/noEmitOnErrorsPlugin/__tests__/__snapshots__/noEmitOnErrorsPlugin.test.ts.snap similarity index 82% rename from packages/migrate/noEmitOnErrorsPlugin/__snapshots__/noEmitOnErrorsPlugin.test.js.snap rename to packages/migrate/noEmitOnErrorsPlugin/__tests__/__snapshots__/noEmitOnErrorsPlugin.test.ts.snap index b831648670e..6febeb7012a 100644 --- a/packages/migrate/noEmitOnErrorsPlugin/__snapshots__/noEmitOnErrorsPlugin.test.js.snap +++ b/packages/migrate/noEmitOnErrorsPlugin/__tests__/__snapshots__/noEmitOnErrorsPlugin.test.ts.snap @@ -1,31 +1,31 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`noEmitOnErrorsPlugin transforms correctly using "noEmitOnErrorsPlugin-0" data 1`] = ` -"module.export = { +"module.exports = { optimizations: { noEmitOnErrors: true } -} +}; " `; exports[`noEmitOnErrorsPlugin transforms correctly using "noEmitOnErrorsPlugin-1" data 1`] = ` -"module.export = { +"module.exports = { optimizations: { splitChunks: false, noEmitOnErrors: true }, - plugins: [new Foo()] -} + plugins: [new Foo()] +}; " `; exports[`noEmitOnErrorsPlugin transforms correctly using "noEmitOnErrorsPlugin-2" data 1`] = ` -"module.export = { +"module.exports = { optimizations: { noEmitOnErrors: true }, - plugins: [new Foo()] -} + plugins: [new Foo()] +}; " `; diff --git a/packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-0.input.js b/packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-0.input.js new file mode 100644 index 00000000000..7eb2fa30679 --- /dev/null +++ b/packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-0.input.js @@ -0,0 +1,3 @@ +module.exports = { + plugins: [new webpack.NoEmitOnErrorsPlugin()] +}; diff --git a/packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-1.input.js b/packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-1.input.js new file mode 100644 index 00000000000..9d409eb31d0 --- /dev/null +++ b/packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-1.input.js @@ -0,0 +1,6 @@ +module.exports = { + optimizations: { + splitChunks: false + }, + plugins: [new Foo(), new webpack.NoEmitOnErrorsPlugin()] +}; diff --git a/packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-2.input.js b/packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-2.input.js new file mode 100644 index 00000000000..b30145bcc85 --- /dev/null +++ b/packages/migrate/noEmitOnErrorsPlugin/__tests__/__testfixtures__/noEmitOnErrorsPlugin-2.input.js @@ -0,0 +1,6 @@ +module.exports = { + optimizations: { + noEmitOnErrors: false + }, + plugins: [new Foo(), new webpack.NoEmitOnErrorsPlugin()] +}; diff --git a/packages/migrate/noEmitOnErrorsPlugin/__tests__/noEmitOnErrorsPlugin.test.ts b/packages/migrate/noEmitOnErrorsPlugin/__tests__/noEmitOnErrorsPlugin.test.ts new file mode 100644 index 00000000000..2e3fe50a758 --- /dev/null +++ b/packages/migrate/noEmitOnErrorsPlugin/__tests__/noEmitOnErrorsPlugin.test.ts @@ -0,0 +1,17 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; +defineTest( + join(__dirname, ".."), + "noEmitOnErrorsPlugin", + "noEmitOnErrorsPlugin-0", +); +defineTest( + join(__dirname, ".."), + "noEmitOnErrorsPlugin", + "noEmitOnErrorsPlugin-1", +); +defineTest( + join(__dirname, ".."), + "noEmitOnErrorsPlugin", + "noEmitOnErrorsPlugin-2", +); diff --git a/packages/migrate/noEmitOnErrorsPlugin/noEmitOnErrorsPlugin.test.js b/packages/migrate/noEmitOnErrorsPlugin/noEmitOnErrorsPlugin.test.js deleted file mode 100644 index fc7c0663748..00000000000 --- a/packages/migrate/noEmitOnErrorsPlugin/noEmitOnErrorsPlugin.test.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "noEmitOnErrorsPlugin", "noEmitOnErrorsPlugin-0"); -defineTest(__dirname, "noEmitOnErrorsPlugin", "noEmitOnErrorsPlugin-1"); -defineTest(__dirname, "noEmitOnErrorsPlugin", "noEmitOnErrorsPlugin-2"); diff --git a/packages/migrate/outputPath/__tests__/__snapshots__/outputPath.test.ts.snap b/packages/migrate/outputPath/__tests__/__snapshots__/outputPath.test.ts.snap index 851dcbcb42d..faf8dd2b327 100644 --- a/packages/migrate/outputPath/__tests__/__snapshots__/outputPath.test.ts.snap +++ b/packages/migrate/outputPath/__tests__/__snapshots__/outputPath.test.ts.snap @@ -10,21 +10,19 @@ exports[`outputPath transforms correctly using "outputPath-0" data 1`] = ` `; exports[`outputPath transforms correctly using "outputPath-1" data 1`] = ` -"import * as path from \\"path\\"; -module.exports = { - output: { - path: path.join(__dirname, \\"dist\\"), - }, +"module.exports = { + output: { + path: path.join(__dirname, \\"dist\\") + } }; " `; exports[`outputPath transforms correctly using "outputPath-2" data 1`] = ` -"import * as path from \\"path\\"; -module.exports = { - output: { - path: path.join(__dirname, \\"dist\\"), - }, +"module.exports = { + output: { + path: path.join(__dirname, \\"dist\\") + } }; " `; diff --git a/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-0.input.ts b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-0.input.js similarity index 100% rename from packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-0.input.ts rename to packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-0.input.js diff --git a/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.js b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.js new file mode 100644 index 00000000000..18e3d927d8f --- /dev/null +++ b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.js @@ -0,0 +1,5 @@ +module.exports = { + output: { + path: path.join(__dirname, "dist") + } +}; diff --git a/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.ts b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.ts deleted file mode 100644 index 12117f5c3e1..00000000000 --- a/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-1.input.ts +++ /dev/null @@ -1,6 +0,0 @@ -import * as path from "path"; -module.exports = { - output: { - path: path.join(__dirname, "dist"), - }, -}; diff --git a/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.js b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.js new file mode 100644 index 00000000000..9f9c30a0420 --- /dev/null +++ b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.js @@ -0,0 +1,5 @@ +module.exports = { + output: { + path: "dist" + } +}; diff --git a/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.ts b/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.ts deleted file mode 100644 index eace16103ce..00000000000 --- a/packages/migrate/outputPath/__tests__/__testfixtures__/outputPath-2.input.ts +++ /dev/null @@ -1,6 +0,0 @@ -import * as path from "path"; -module.exports = { - output: { - path: "dist", - }, -}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__snapshots__/removeDeprecatedPlugins.test.ts.snap b/packages/migrate/removeDeprecatedPlugins/__tests__/__snapshots__/removeDeprecatedPlugins.test.ts.snap index d459445a8fe..62b69a6e5de 100644 --- a/packages/migrate/removeDeprecatedPlugins/__tests__/__snapshots__/removeDeprecatedPlugins.test.ts.snap +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__snapshots__/removeDeprecatedPlugins.test.ts.snap @@ -1,51 +1,42 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`removeDeprecatedPlugins transforms correctly using "removeDeprecatedPlugins-0" data 1`] = ` -"// Works for OccurrenceOrderPlugin -import webpack from \\"webpack\\"; -module.exports = {}; +"module.exports = {}; " `; exports[`removeDeprecatedPlugins transforms correctly using "removeDeprecatedPlugins-1" data 1`] = ` -"// Works for DedupePlugin -import webpack from \\"webpack\\"; - -module.exports = {}; +"module.exports = {}; " `; exports[`removeDeprecatedPlugins transforms correctly using "removeDeprecatedPlugins-2" data 1`] = ` -"// Doesn't remove unmatched plugins -import webpack from \\"webpack\\"; - -module.exports = { - plugins: [new webpack.optimize.UglifyJsPlugin()], +"module.exports = { + plugins: [new webpack.optimize.UglifyJsPlugin()] }; " `; exports[`removeDeprecatedPlugins transforms correctly using "removeDeprecatedPlugins-3" data 1`] = ` "// This should throw -import webpack from \\"webpack\\"; -export default (config) => { - config.plugins.push(new webpack.optimize.UglifyJsPlugin()); - config.plugins.push(new webpack.optimize.DedupePlugin()); - config.plugins.push(new webpack.optimize.OccurrenceOrderPlugin()); - return config; +module.exports = config => { + config.plugins.push(new webpack.optimize.UglifyJsPlugin()); + config.plugins.push(new webpack.optimize.DedupePlugin()); + config.plugins.push(new webpack.optimize.OccurrenceOrderPlugin()); + return config; }; " `; exports[`removeDeprecatedPlugins transforms correctly using "removeDeprecatedPlugins-4" data 1`] = ` "// This should throw -import webpack from \\"webpack\\"; +const webpack = require(\\"webpack\\"); const inst = new webpack.optimize.OccurrenceOrderPlugin(); -export default (config) => { - config.plugins = [inst]; - return config; +module.exports = config => { + config.plugins = [inst]; + return config; }; " `; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.js b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.js new file mode 100644 index 00000000000..5171ac6d172 --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.js @@ -0,0 +1,3 @@ +module.exports = { + plugins: [new webpack.optimize.OccurrenceOrderPlugin()] +}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.ts deleted file mode 100644 index c67bac6b636..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-0.input.ts +++ /dev/null @@ -1,5 +0,0 @@ -// Works for OccurrenceOrderPlugin -import webpack from "webpack"; -module.exports = { - plugins: [new webpack.optimize.OccurrenceOrderPlugin()], -}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.js b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.js new file mode 100644 index 00000000000..73c1c9554fd --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.js @@ -0,0 +1,3 @@ +module.exports = { + plugins: [new webpack.optimize.DedupePlugin()] +}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.ts deleted file mode 100644 index 6a34f8b5f99..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-1.input.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Works for DedupePlugin -import webpack from "webpack"; - -module.exports = { - plugins: [new webpack.optimize.DedupePlugin()], -}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.js b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.js new file mode 100644 index 00000000000..93c058b3fff --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.js @@ -0,0 +1,3 @@ +module.exports = { + plugins: [new webpack.optimize.OccurrenceOrderPlugin(), new webpack.optimize.UglifyJsPlugin(), new webpack.optimize.DedupePlugin()] +}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.ts deleted file mode 100644 index cf7235f8883..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-2.input.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Doesn't remove unmatched plugins -import webpack from "webpack"; - -module.exports = { - plugins: [ - new webpack.optimize.OccurrenceOrderPlugin(), - new webpack.optimize.UglifyJsPlugin(), - new webpack.optimize.DedupePlugin(), - ], -}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.js b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.js new file mode 100644 index 00000000000..abdd8a4599b --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.js @@ -0,0 +1,8 @@ +// This should throw + +module.exports = config => { + config.plugins.push(new webpack.optimize.UglifyJsPlugin()); + config.plugins.push(new webpack.optimize.DedupePlugin()); + config.plugins.push(new webpack.optimize.OccurrenceOrderPlugin()); + return config; +}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.ts deleted file mode 100644 index 63f88411213..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-3.input.ts +++ /dev/null @@ -1,9 +0,0 @@ -// This should throw -import webpack from "webpack"; - -export default (config) => { - config.plugins.push(new webpack.optimize.UglifyJsPlugin()); - config.plugins.push(new webpack.optimize.DedupePlugin()); - config.plugins.push(new webpack.optimize.OccurrenceOrderPlugin()); - return config; -}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.js b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.js new file mode 100644 index 00000000000..b436cbdb8ad --- /dev/null +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.js @@ -0,0 +1,8 @@ +// This should throw +const webpack = require("webpack"); + +const inst = new webpack.optimize.OccurrenceOrderPlugin(); +module.exports = config => { + config.plugins = [inst]; + return config; +}; diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.ts deleted file mode 100644 index add2a9ad67b..00000000000 --- a/packages/migrate/removeDeprecatedPlugins/__tests__/__testfixtures__/removeDeprecatedPlugins-4.input.ts +++ /dev/null @@ -1,8 +0,0 @@ -// This should throw -import webpack from "webpack"; - -const inst = new webpack.optimize.OccurrenceOrderPlugin(); -export default (config) => { - config.plugins = [inst]; - return config; -}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__snapshots__/removeJsonLoader.test.ts.snap b/packages/migrate/removeJsonLoader/__tests__/__snapshots__/removeJsonLoader.test.ts.snap index 7f0e1cb3fc7..cb5cf219f5e 100644 --- a/packages/migrate/removeJsonLoader/__tests__/__snapshots__/removeJsonLoader.test.ts.snap +++ b/packages/migrate/removeJsonLoader/__tests__/__snapshots__/removeJsonLoader.test.ts.snap @@ -1,53 +1,53 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`removeJsonLoader transforms correctly using "removeJsonLoader-0" data 1`] = ` -"export default { - module: { - rules: [ - { - test: /\\\\.yml/, - use: [{ - loader: \\"another-loader\\", - }, { - loader: \\"yml-loader\\", - }], - }, - ], - }, +"module.exports = { + module: { + rules: [ + { + test: /\\\\.yml/, + use: [{ + loader: \\"another-loader\\" + }, { + loader: \\"yml-loader\\" + }] + } + ] + } }; " `; exports[`removeJsonLoader transforms correctly using "removeJsonLoader-1" data 1`] = ` -"export default { - module: { - rules: [ - { - test: /\\\\.yml/, - use: [{ - loader: \\"yml-loader\\", - }], - }, - ], - }, +"module.exports = { + module: { + rules: [ + { + test: /\\\\.yml/, + use: [{ + loader: \\"yml-loader\\" + }] + } + ] + } }; " `; exports[`removeJsonLoader transforms correctly using "removeJsonLoader-2" data 1`] = ` -"export default { - module: { - rules: [], - }, +"module.exports = { + module: { + rules: [] + } }; " `; exports[`removeJsonLoader transforms correctly using "removeJsonLoader-3" data 1`] = ` -"export default { - module: { - rules: [], - }, +"module.exports = { + module: { + rules: [] + } }; " `; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.js b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.js new file mode 100644 index 00000000000..a492d057aec --- /dev/null +++ b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.js @@ -0,0 +1,20 @@ +module.exports = { + module: { + rules: [ + { + test: /\.yml/, + use: [ + { + loader: "json-loader" + }, + { + loader: "another-loader" + }, + { + loader: "yml-loader" + } + ] + } + ] + } +}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.ts b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.ts deleted file mode 100644 index 3fdaec96b28..00000000000 --- a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-0.input.ts +++ /dev/null @@ -1,20 +0,0 @@ -export default { - module: { - rules: [ - { - test: /\.yml/, - use: [ - { - loader: "json-loader", - }, - { - loader: "another-loader", - }, - { - loader: "yml-loader", - }, - ], - }, - ], - }, -}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.js b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.js new file mode 100644 index 00000000000..cf3e50853c4 --- /dev/null +++ b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.js @@ -0,0 +1,17 @@ +module.exports = { + module: { + rules: [ + { + test: /\.yml/, + use: [ + { + loader: "json-loader" + }, + { + loader: "yml-loader" + } + ] + } + ] + } +}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.ts b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.ts deleted file mode 100644 index b2b1031b7bc..00000000000 --- a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-1.input.ts +++ /dev/null @@ -1,17 +0,0 @@ -export default { - module: { - rules: [ - { - test: /\.yml/, - use: [ - { - loader: "json-loader", - }, - { - loader: "yml-loader", - }, - ], - }, - ], - }, -}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.js b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.js new file mode 100644 index 00000000000..5a8709cb4b4 --- /dev/null +++ b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.js @@ -0,0 +1,10 @@ +module.exports = { + module: { + rules: [ + { + loader: "json-loader", + test: /\.json/ + } + ] + } +}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.ts b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.ts deleted file mode 100644 index d9dfa19b162..00000000000 --- a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-2.input.ts +++ /dev/null @@ -1,10 +0,0 @@ -export default { - module: { - rules: [ - { - loader: "json-loader", - test: /\.json/, - }, - ], - }, -}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.js b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.js new file mode 100644 index 00000000000..c4050edc398 --- /dev/null +++ b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.js @@ -0,0 +1,14 @@ +module.exports = { + module: { + rules: [ + { + test: /\.json/, + use: [ + { + loader: "json-loader" + } + ] + } + ] + } +}; diff --git a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.ts b/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.ts deleted file mode 100644 index c52db6684f7..00000000000 --- a/packages/migrate/removeJsonLoader/__tests__/__testfixtures__/removeJsonLoader-3.input.ts +++ /dev/null @@ -1,14 +0,0 @@ -export default { - module: { - rules: [ - { - test: /\.json/, - use: [ - { - loader: "json-loader", - }, - ], - }, - ], - }, -}; diff --git a/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap b/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap index ba6af31fcb2..83ab9cf40bc 100644 --- a/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap +++ b/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap @@ -1,29 +1,28 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`resolve transforms correctly 1`] = ` -"import * as path from \\"path\\"; - -export default [ - { - resolve: { - modules: [path.resolve(\\"/src\\")], +"const path = require(\\"patch\\"); +module.exports = [ + { + resolve: { + modules: [path.resolve(\\"/src\\")] + } }, - }, - { - resolve: { - modules: [path.resolve(\\"/src\\")], + { + resolve: { + modules: [path.resolve(\\"/src\\")] + } }, - }, - { - resolve: { - modules: [path.resolve(\\"/src\\"), \\"node_modules\\"], + { + resolve: { + modules: [path.resolve(\\"/src\\"), \\"node_modules\\"] + } }, - }, - { - resolve: { - modules: [\\"node_modules\\", path.resolve(\\"/src\\")] - }, - }, + { + resolve: { + modules: [\\"node_modules\\", path.resolve(\\"/src\\")] + } + } ]; " `; diff --git a/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js b/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js new file mode 100644 index 00000000000..7449362ea5f --- /dev/null +++ b/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js @@ -0,0 +1,24 @@ +const path = require("patch"); +module.exports = [ + { + resolve: { + root: path.resolve("/src") + } + }, + { + resolve: { + root: [path.resolve("/src")] + } + }, + { + resolve: { + root: [path.resolve("/src"), "node_modules"] + } + }, + { + resolve: { + modules: ["node_modules"], + root: path.resolve("/src") + } + } +]; diff --git a/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.ts b/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.ts deleted file mode 100644 index 2da094d0196..00000000000 --- a/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.ts +++ /dev/null @@ -1,25 +0,0 @@ -import * as path from "path"; - -export default [ - { - resolve: { - root: path.resolve("/src"), - }, - }, - { - resolve: { - root: [path.resolve("/src")], - }, - }, - { - resolve: { - root: [path.resolve("/src"), "node_modules"], - }, - }, - { - resolve: { - modules: ["node_modules"], - root: path.resolve("/src"), - }, - }, -]; diff --git a/packages/migrate/uglifyJsPlugin/__snapshots__/uglifyJsPlugin.test.js.snap b/packages/migrate/uglifyJsPlugin/__tests__/__snapshots__/uglifyJsPlugin.test.ts.snap similarity index 100% rename from packages/migrate/uglifyJsPlugin/__snapshots__/uglifyJsPlugin.test.js.snap rename to packages/migrate/uglifyJsPlugin/__tests__/__snapshots__/uglifyJsPlugin.test.ts.snap diff --git a/packages/migrate/uglifyJsPlugin/__testfixtures__/uglifyJsPlugin-0.input.js b/packages/migrate/uglifyJsPlugin/__tests__/__testfixtures__/uglifyJsPlugin-0.input.js similarity index 100% rename from packages/migrate/uglifyJsPlugin/__testfixtures__/uglifyJsPlugin-0.input.js rename to packages/migrate/uglifyJsPlugin/__tests__/__testfixtures__/uglifyJsPlugin-0.input.js diff --git a/packages/migrate/uglifyJsPlugin/__testfixtures__/uglifyJsPlugin-1.input.js b/packages/migrate/uglifyJsPlugin/__tests__/__testfixtures__/uglifyJsPlugin-1.input.js similarity index 100% rename from packages/migrate/uglifyJsPlugin/__testfixtures__/uglifyJsPlugin-1.input.js rename to packages/migrate/uglifyJsPlugin/__tests__/__testfixtures__/uglifyJsPlugin-1.input.js diff --git a/packages/migrate/uglifyJsPlugin/__testfixtures__/uglifyJsPlugin-2.input.js b/packages/migrate/uglifyJsPlugin/__tests__/__testfixtures__/uglifyJsPlugin-2.input.js similarity index 100% rename from packages/migrate/uglifyJsPlugin/__testfixtures__/uglifyJsPlugin-2.input.js rename to packages/migrate/uglifyJsPlugin/__tests__/__testfixtures__/uglifyJsPlugin-2.input.js diff --git a/packages/migrate/uglifyJsPlugin/__testfixtures__/uglifyJsPlugin-3.input.js b/packages/migrate/uglifyJsPlugin/__tests__/__testfixtures__/uglifyJsPlugin-3.input.js similarity index 100% rename from packages/migrate/uglifyJsPlugin/__testfixtures__/uglifyJsPlugin-3.input.js rename to packages/migrate/uglifyJsPlugin/__tests__/__testfixtures__/uglifyJsPlugin-3.input.js diff --git a/packages/migrate/uglifyJsPlugin/__testfixtures__/uglifyJsPlugin-4.input.js b/packages/migrate/uglifyJsPlugin/__tests__/__testfixtures__/uglifyJsPlugin-4.input.js similarity index 100% rename from packages/migrate/uglifyJsPlugin/__testfixtures__/uglifyJsPlugin-4.input.js rename to packages/migrate/uglifyJsPlugin/__tests__/__testfixtures__/uglifyJsPlugin-4.input.js diff --git a/packages/migrate/uglifyJsPlugin/__tests__/uglifyJsPlugin.test.ts b/packages/migrate/uglifyJsPlugin/__tests__/uglifyJsPlugin.test.ts new file mode 100644 index 00000000000..5b229349d40 --- /dev/null +++ b/packages/migrate/uglifyJsPlugin/__tests__/uglifyJsPlugin.test.ts @@ -0,0 +1,7 @@ +import defineTest from "@webpack-cli/utils/defineTest"; +import { join } from "path"; +defineTest(join(__dirname, ".."), "uglifyJsPlugin", "uglifyJsPlugin-0"); +defineTest(join(__dirname, ".."), "uglifyJsPlugin", "uglifyJsPlugin-1"); +defineTest(join(__dirname, ".."), "uglifyJsPlugin", "uglifyJsPlugin-2"); +defineTest(join(__dirname, ".."), "uglifyJsPlugin", "uglifyJsPlugin-3"); +defineTest(join(__dirname, ".."), "uglifyJsPlugin", "uglifyJsPlugin-4"); diff --git a/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.test.js b/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.test.js deleted file mode 100644 index d60cd4ba928..00000000000 --- a/packages/migrate/uglifyJsPlugin/uglifyJsPlugin.test.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; - -const defineTest = require("@webpack-cli/utils/defineTest").default; - -defineTest(__dirname, "uglifyJsPlugin", "uglifyJsPlugin-0"); -defineTest(__dirname, "uglifyJsPlugin", "uglifyJsPlugin-1"); -defineTest(__dirname, "uglifyJsPlugin", "uglifyJsPlugin-2"); -defineTest(__dirname, "uglifyJsPlugin", "uglifyJsPlugin-3"); -defineTest(__dirname, "uglifyJsPlugin", "uglifyJsPlugin-4"); diff --git a/packages/utils/defineTest.ts b/packages/utils/defineTest.ts index 4070d188610..52201408dcc 100644 --- a/packages/utils/defineTest.ts +++ b/packages/utils/defineTest.ts @@ -61,7 +61,7 @@ function runSingleTransform( "__tests__", "__testfixtures__", ); - const inputPath: string = path.join(fixtureDir, testFilePrefix + ".input.ts"); + const inputPath: string = path.join(fixtureDir, testFilePrefix + ".input.js"); const source: string = fs.readFileSync(inputPath, "utf8"); let module: IModule; diff --git a/tsconfig.base.json b/tsconfig.base.json index 1b322830b9e..d92fae8bb6a 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,11 +1,16 @@ { - "compilerOptions": { - "target": "es6", - "module": "commonjs", - "moduleResolution": "node", - "allowSyntheticDefaultImports": true, - "skipLibCheck": true - }, - "include": ["packages/**/*.ts"], - "exclude": ["node_modules/**", "packages/*/node_modules/**", "packages/**/__tests__/*.test.ts", "packages/**/__testfixtures__/*.ts"] + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "moduleResolution": "node", + "allowSyntheticDefaultImports": true, + "skipLibCheck": true + }, + "include": ["packages/**/*.ts"], + "exclude": [ + "node_modules/**", + "packages/*/node_modules/**", + "packages/**/__tests__/*.test.ts", + "packages/**/__testfixtures__/*.ts" + ] } diff --git a/tsconfig.json b/tsconfig.json index b76518ebc78..4257314b6ca 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { - "extends": "./tsconfig.base.json", - "compilerOptions": { - "allowJs": true - } + "extends": "./tsconfig.base.json", + "compilerOptions": { + "allowJs": true + } } diff --git a/tsconfig.packages.json b/tsconfig.packages.json index 41bddf784fc..87eae9c0e2a 100644 --- a/tsconfig.packages.json +++ b/tsconfig.packages.json @@ -1,6 +1,6 @@ { - "extends": "tsconfig.base.json", - "compilerOptions": { - "declaration": true - } + "extends": "tsconfig.base.json", + "compilerOptions": { + "declaration": true + } } From aaa28a3839b8fc56f839a12900a5b8a8aebd45f6 Mon Sep 17 00:00:00 2001 From: Hemal Patel Date: Tue, 6 Nov 2018 16:16:05 +0530 Subject: [PATCH 06/20] tests(webpack-scaffold): moved to typescript --- ...{index.test.js.snap => index.test.ts.snap} | 0 .../{index.test.js => index.test.ts} | 36 +++++++++---------- packages/webpack-scaffold/index.ts | 8 ++--- 3 files changed, 22 insertions(+), 22 deletions(-) rename packages/webpack-scaffold/__tests__/__snapshots__/{index.test.js.snap => index.test.ts.snap} (100%) rename packages/webpack-scaffold/__tests__/{index.test.js => index.test.ts} (88%) diff --git a/packages/webpack-scaffold/__tests__/__snapshots__/index.test.js.snap b/packages/webpack-scaffold/__tests__/__snapshots__/index.test.ts.snap similarity index 100% rename from packages/webpack-scaffold/__tests__/__snapshots__/index.test.js.snap rename to packages/webpack-scaffold/__tests__/__snapshots__/index.test.ts.snap diff --git a/packages/webpack-scaffold/__tests__/index.test.js b/packages/webpack-scaffold/__tests__/index.test.ts similarity index 88% rename from packages/webpack-scaffold/__tests__/index.test.js rename to packages/webpack-scaffold/__tests__/index.test.ts index 3c3e2981449..5e955bc7f96 100755 --- a/packages/webpack-scaffold/__tests__/index.test.js +++ b/packages/webpack-scaffold/__tests__/index.test.ts @@ -1,5 +1,5 @@ "use strict"; -const utils = require("../index"); +import * as utils from "../index"; describe("utils", () => { describe("createArrowFunction", () => { @@ -18,7 +18,7 @@ describe("utils", () => { }); it("should stringify an array", () => { expect( - utils.createDynamicPromise(["app.js", "index.js"]) + utils.createDynamicPromise(["app.js", "index.js"]), ).toMatchSnapshot(); }); }); @@ -48,49 +48,49 @@ describe("utils", () => { describe("Inquirer", () => { it("should make an List object", () => { expect(utils.List("entry", "does it work?", ["Yes", "Maybe"])).toEqual({ - type: "list", - name: "entry", + choices: ["Yes", "Maybe"], message: "does it work?", - choices: ["Yes", "Maybe"] + name: "entry", + type: "list", }); }); it("should make an RawList object", () => { expect( - utils.RawList("output", "does it work?", ["Yes", "Maybe"]) + utils.RawList("output", "does it work?", ["Yes", "Maybe"]), ).toEqual({ - type: "rawlist", - name: "output", + choices: ["Yes", "Maybe"], message: "does it work?", - choices: ["Yes", "Maybe"] + name: "output", + type: "rawlist", }); }); it("should make an CheckList object", () => { expect( - utils.CheckList("context", "does it work?", ["Yes", "Maybe"]) + utils.CheckList("context", "does it work?", ["Yes", "Maybe"]), ).toEqual({ - type: "checkbox", - name: "context", + choices: ["Yes", "Maybe"], message: "does it work?", - choices: ["Yes", "Maybe"] + name: "context", + type: "checkbox", }); }); it("should make an Input object", () => { expect(utils.Input("plugins", "what is your plugin?")).toEqual({ - type: "input", + message: "what is your plugin?", name: "plugins", - message: "what is your plugin?" + type: "input", }); }); it("should make an Confirm object", () => { expect(utils.Confirm("context", "what is your context?")).toEqual({ - type: "confirm", + message: "what is your context?", name: "context", - message: "what is your context?" + type: "confirm", }); }); it("should make an Input object with validation", () => { expect( - utils.InputValidate("plugins", "what is your plugin?", () => {}) + utils.InputValidate("plugins", "what is your plugin?", () => true), ).toMatchSnapshot(); }); }); diff --git a/packages/webpack-scaffold/index.ts b/packages/webpack-scaffold/index.ts index 01cf53a3558..fc9e3211897 100755 --- a/packages/webpack-scaffold/index.ts +++ b/packages/webpack-scaffold/index.ts @@ -20,19 +20,19 @@ export interface IInquirerInput extends IInquirerScaffoldObject { validate?: (input: string) => string | boolean; } -export function createArrowFunction(value: Function): string { +export function createArrowFunction(value: string): string { return `() => '${value}'`; } -export function createRegularFunction(value: Function): string { +export function createRegularFunction(value: string): string { return `function () {\n return '${value}'\n}`; } -export function createDynamicPromise(arrOrString: Function[] | string): string { +export function createDynamicPromise(arrOrString: string[] | string): string { if (Array.isArray(arrOrString)) { return ( "() => new Promise((resolve) => resolve([" + - arrOrString.map((func: Function) => { + arrOrString.map((func: string) => { return "'" + func + "'"; }) + "]))" From 1a80233327cdc9418d0792ed4069edb341c48536 Mon Sep 17 00:00:00 2001 From: dhruvdutt Date: Fri, 16 Nov 2018 20:16:13 +0530 Subject: [PATCH 07/20] tests(migrate): clean js text fixtures --- .../loaders/__testfixtures__/loaders-7.input.js | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 packages/migrate/loaders/__testfixtures__/loaders-7.input.js diff --git a/packages/migrate/loaders/__testfixtures__/loaders-7.input.js b/packages/migrate/loaders/__testfixtures__/loaders-7.input.js deleted file mode 100644 index 32d30c7eb86..00000000000 --- a/packages/migrate/loaders/__testfixtures__/loaders-7.input.js +++ /dev/null @@ -1,14 +0,0 @@ -export default { - module: { - loaders: [ - { - test: /\.js$/, - exclude: /(node_modules)/, - loader: 'babel-loader', - query: { - presets: ['@babel/preset-env'] - } - } - ] - } -}; From 7e60efeb611fa534e226c4539fab2650d008c38b Mon Sep 17 00:00:00 2001 From: dhruvdutt Date: Fri, 16 Nov 2018 20:19:39 +0530 Subject: [PATCH 08/20] tests(migrate): update babel-loader test --- .../loaders/__tests__/__testfixtures__/loaders-7.input.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.js b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.js index 1b685ab72ba..40c46492632 100644 --- a/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.js +++ b/packages/migrate/loaders/__tests__/__testfixtures__/loaders-7.input.js @@ -5,7 +5,7 @@ module.exports = { exclude: /(node_modules)/, loader: "babel-loader", query: { - presets: ["env"], + presets: ["@babel/preset-env"], }, test: /\.js$/, }, From b4f114b9b8ce5900a74134664a77fb8aa2950c0d Mon Sep 17 00:00:00 2001 From: dhruvdutt Date: Fri, 16 Nov 2018 20:21:16 +0530 Subject: [PATCH 09/20] tests(migrate): update babel-loader snapshot --- .../loaders/__tests__/__snapshots__/loaders.test.ts.snap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap b/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap index dde1b1cb450..e12d1d75875 100644 --- a/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap +++ b/packages/migrate/loaders/__tests__/__snapshots__/loaders.test.ts.snap @@ -251,7 +251,7 @@ exports[`loaders transforms correctly using "loaders-7" data 1`] = ` loader: 'babel-loader', options: { - presets: [\\"env\\"], + presets: [\\"@babel/preset-env\\"], } }], From dd238a82cf59b5b42aa3758f8c18ab050df58da6 Mon Sep 17 00:00:00 2001 From: Hemal Patel Date: Sun, 18 Nov 2018 03:17:09 +0530 Subject: [PATCH 10/20] tests(utils): move tests to TS (#688) * chore(test): add migrate test * chore(lint): revert change * chore(test): moved to typescript migrate tests * tests(ts): moved module concatenation plugin to ts * tests(migrate): moved to typescript * tests(webpack-scaffold): moved to typescript * tests(utils): copy fixtures to __tests_ * tests(utils): move package-manager.test.js to TS * tests(utils): move validate-identifier.test.js to TS * tests(utils): move resolve-packages.test.js to TS * tests(utils): is-local-path.test.js to TS * tests(utils): move npm-exists.test.js to TS * tests(utils): move ast-utils.test.js to TS * tests(utils): WIP-test-cases * tests(utils): move recursive-parser.test.js to TS * tests(utils): move npm-package-exists.test.js to TS * tests(utils): cleanup .js , __fixtures__ and __snapshots__ files * chore(utils): clean console recursive-parser.test.ts * chore(utils): make options param optional * chore: use INode in ast-utils.test.ts --- package.json | 3 +- .../__snapshots__/ast-utils.test.ts.snap} | 14 ++-- .../recursive-parser.test.ts.snap} | 30 ++++---- .../__testfixtures__/fixture-0.input.js | 0 .../__testfixtures__/fixture-1.input.js | 0 .../__testfixtures__/fixture-2.input.js | 0 .../__testfixtures__/fixture-3.input.js | 0 .../ast-utils.test.ts} | 71 ++++++++++--------- .../is-local-path.test.ts} | 4 +- .../npm-exists.test.ts} | 6 +- .../npm-packages-exists.test.ts} | 17 ++--- .../package-manager.test.ts} | 20 +++--- .../utils/__tests__/recursive-parser.test.ts | 65 +++++++++++++++++ .../resolve-packages.test.ts} | 20 +++--- .../validate-identifier.test.ts} | 15 ++-- packages/utils/ast-utils.ts | 2 +- packages/utils/defineTest.ts | 8 +-- packages/utils/recursive-parser.test.js | 64 ----------------- 18 files changed, 172 insertions(+), 167 deletions(-) rename packages/utils/{__snapshots__/ast-utils.test.js.snap => __tests__/__snapshots__/ast-utils.test.ts.snap} (96%) rename packages/utils/{__snapshots__/recursive-parser.test.js.snap => __tests__/__snapshots__/recursive-parser.test.ts.snap} (98%) rename packages/utils/{ => __tests__}/__testfixtures__/fixture-0.input.js (100%) rename packages/utils/{ => __tests__}/__testfixtures__/fixture-1.input.js (100%) rename packages/utils/{ => __tests__}/__testfixtures__/fixture-2.input.js (100%) rename packages/utils/{ => __tests__}/__testfixtures__/fixture-3.input.js (100%) rename packages/utils/{ast-utils.test.js => __tests__/ast-utils.test.ts} (88%) rename packages/utils/{is-local-path.test.js => __tests__/is-local-path.test.ts} (87%) rename packages/utils/{npm-exists.test.js => __tests__/npm-exists.test.ts} (64%) rename packages/utils/{npm-packages-exists.test.js => __tests__/npm-packages-exists.test.ts} (56%) rename packages/utils/{package-manager.test.js => __tests__/package-manager.test.ts} (94%) create mode 100644 packages/utils/__tests__/recursive-parser.test.ts rename packages/utils/{resolve-packages.test.js => __tests__/resolve-packages.test.ts} (82%) rename packages/utils/{validate-identifier.test.js => __tests__/validate-identifier.test.ts} (59%) delete mode 100644 packages/utils/recursive-parser.test.js diff --git a/package.json b/package.json index 075b43935c4..6e4456a7ada 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,8 @@ "testRegex": "/__tests__/.*\\.(test.js|test.ts)$", "moduleFileExtensions": [ "ts", - "js" + "js", + "json" ] }, "nyc": { diff --git a/packages/utils/__snapshots__/ast-utils.test.js.snap b/packages/utils/__tests__/__snapshots__/ast-utils.test.ts.snap similarity index 96% rename from packages/utils/__snapshots__/ast-utils.test.js.snap rename to packages/utils/__tests__/__snapshots__/ast-utils.test.ts.snap index 39b61acb349..0e3eab43eb3 100644 --- a/packages/utils/__snapshots__/ast-utils.test.js.snap +++ b/packages/utils/__tests__/__snapshots__/ast-utils.test.ts.snap @@ -12,14 +12,13 @@ exports[`utils addProperty add entry property using add 1`] = ` }], man: () => duper, + man: () => duper, + nice: ':)', objects: are, super: [yeah, { loader: 'eslint-loader' - }], - - nice: ':)', - man: () => duper + }] } }" `; @@ -27,14 +26,13 @@ exports[`utils addProperty add entry property using add 1`] = ` exports[`utils addProperty add entry property using init 1`] = ` "module.exports = { entry: { + man: () => duper, + nice: ':)', objects: are, super: [yeah, { loader: 'eslint-loader' - }], - - nice: ':)', - man: () => duper + }] } }" `; diff --git a/packages/utils/__snapshots__/recursive-parser.test.js.snap b/packages/utils/__tests__/__snapshots__/recursive-parser.test.ts.snap similarity index 98% rename from packages/utils/__snapshots__/recursive-parser.test.js.snap rename to packages/utils/__tests__/__snapshots__/recursive-parser.test.ts.snap index 882e9e5f327..282542a0fd7 100644 --- a/packages/utils/__snapshots__/recursive-parser.test.js.snap +++ b/packages/utils/__tests__/__snapshots__/recursive-parser.test.ts.snap @@ -25,23 +25,23 @@ module.exports = { foo: \\"Promise.resolve()\\", man: \\"() => duper\\", mode: \\"yaaa\\", + foo: Promise.resolve(), + man: () => nice!!, + mode: super-man, + nice: '=)', objects: are not, super: [op, { - test: /\\\\.(wasm|c)$/, - loader: 'pia-loader', enforce: 'pre', include: [asd, 'Stringy'], + loader: 'pia-loader', options: { formatter: 'nao' - } - }], + }, - nice: '=)', - foo: Promise.resolve(), - man: () => nice!!, - mode: super-man + test: /\\\\.(wasm|c)$/ + }] } } " @@ -50,22 +50,22 @@ module.exports = { exports[`init transforms correctly using "fixture-1" data 1`] = ` "module.exports = { entry: { + foo: Promise.resolve(), + man: () => duper, + nice: ':)', objects: are, super: [yeah, { - test: /\\\\.(js|vue)$/, - loader: 'eslint-loader', enforce: 'pre', include: [customObj, 'Stringy'], + loader: 'eslint-loader', options: { formatter: 'someOption' - } - }], + }, - nice: ':)', - foo: Promise.resolve(), - man: () => duper + test: /\\\\.(js|vue)$/ + }] } };" `; diff --git a/packages/utils/__testfixtures__/fixture-0.input.js b/packages/utils/__tests__/__testfixtures__/fixture-0.input.js similarity index 100% rename from packages/utils/__testfixtures__/fixture-0.input.js rename to packages/utils/__tests__/__testfixtures__/fixture-0.input.js diff --git a/packages/utils/__testfixtures__/fixture-1.input.js b/packages/utils/__tests__/__testfixtures__/fixture-1.input.js similarity index 100% rename from packages/utils/__testfixtures__/fixture-1.input.js rename to packages/utils/__tests__/__testfixtures__/fixture-1.input.js diff --git a/packages/utils/__testfixtures__/fixture-2.input.js b/packages/utils/__tests__/__testfixtures__/fixture-2.input.js similarity index 100% rename from packages/utils/__testfixtures__/fixture-2.input.js rename to packages/utils/__tests__/__testfixtures__/fixture-2.input.js diff --git a/packages/utils/__testfixtures__/fixture-3.input.js b/packages/utils/__tests__/__testfixtures__/fixture-3.input.js similarity index 100% rename from packages/utils/__testfixtures__/fixture-3.input.js rename to packages/utils/__tests__/__testfixtures__/fixture-3.input.js diff --git a/packages/utils/ast-utils.test.js b/packages/utils/__tests__/ast-utils.test.ts similarity index 88% rename from packages/utils/ast-utils.test.js rename to packages/utils/__tests__/ast-utils.test.ts index bdb2ffe901a..a1cf84403df 100644 --- a/packages/utils/ast-utils.test.js +++ b/packages/utils/__tests__/ast-utils.test.ts @@ -1,7 +1,8 @@ "use strict"; -const j = require("jscodeshift/dist/core"); -const utils = require("./ast-utils"); +import * as j from "jscodeshift/dist/core"; +import * as utils from "../ast-utils"; +import { INode } from "../types/NodePath"; describe("utils", () => { describe("createProperty", () => { @@ -105,7 +106,7 @@ const a = { plugs: [] } describe("createOrUpdatePluginByName", () => { it("should create a new plugin without arguments", () => { const ast = j("{ plugins: [] }"); - ast.find(j.ArrayExpression).forEach(node => { + ast.find(j.ArrayExpression).forEach((node: INode) => { utils.createOrUpdatePluginByName(j, node, "Plugin"); }); expect(ast.toSource()).toMatchSnapshot(); @@ -113,9 +114,9 @@ const a = { plugs: [] } it("should create a new plugin with arguments", () => { const ast = j("{ plugins: [] }"); - ast.find(j.ArrayExpression).forEach(node => { + ast.find(j.ArrayExpression).forEach((node: INode) => { utils.createOrUpdatePluginByName(j, node, "Plugin", { - foo: "bar" + foo: "bar", }); }); expect(ast.toSource()).toMatchSnapshot(); @@ -123,9 +124,9 @@ const a = { plugs: [] } it("should add an object as an argument", () => { const ast = j("[new Plugin()]"); - ast.find(j.ArrayExpression).forEach(node => { + ast.find(j.ArrayExpression).forEach((node: INode) => { utils.createOrUpdatePluginByName(j, node, "Plugin", { - foo: true + foo: true, }); }); expect(ast.toSource()).toMatchSnapshot(); @@ -133,13 +134,13 @@ const a = { plugs: [] } it("should merge options objects", () => { const ast = j("[new Plugin({ foo: true })]"); - ast.find(j.ArrayExpression).forEach(node => { + ast.find(j.ArrayExpression).forEach((node: INode) => { utils.createOrUpdatePluginByName(j, node, "Plugin", { bar: "baz", - foo: false + foo: false, }); utils.createOrUpdatePluginByName(j, node, "Plugin", { - "baz-long": true + "baz-long": true, }); }); expect(ast.toSource()).toMatchSnapshot(); @@ -191,8 +192,8 @@ const a = { plugs: [] } expect( ast .find(j.ObjectExpression) - .filter(p => utils.findObjWithOneOfKeys(p, ["a"])) - .size() + .filter((p) => utils.findObjWithOneOfKeys(p, ["a"])) + .size(), ).toEqual(1); }); }); @@ -207,12 +208,12 @@ const a = { plugs: [] } describe("safeTraverse", () => { it("should safe traverse", () => { const testObject = { - type: "NodeType" + type: "NodeType", }; const p = { foo: { - bar: testObject - } + bar: testObject, + }, }; const require = utils.safeTraverse(p, ["foo", "bar"]); expect(require).toEqual(testObject); @@ -220,14 +221,14 @@ const a = { plugs: [] } it("should safe traverse thrice", () => { const type = { - type: "NodeType" + type: "NodeType", }; const p = { parent: { value: { - value: type - } - } + value: type, + }, + }, }; const traversedValue = utils.safeTraverse(p, ["parent", "value", "value"]); expect(traversedValue).toEqual(type); @@ -240,9 +241,9 @@ const a = { plugs: [] } const p = { value: { value: { - type: NODE_TYPE - } - } + type: NODE_TYPE, + }, + }, }; const typeValue = utils.safeTraverseAndGetType(p); expect(typeValue).toEqual(NODE_TYPE); @@ -253,9 +254,9 @@ const a = { plugs: [] } const p = { foo: { bar: { - type: NODE_TYPE - } - } + type: NODE_TYPE, + }, + }, }; const typeValue = utils.safeTraverseAndGetType(p); expect(typeValue).toEqual(false); @@ -266,20 +267,20 @@ const a = { plugs: [] } it("add entry property using init", () => { const ast = j("module.exports = {}"); const propertyValue = { + man: "() => duper", + nice: "':)'", objects: "are", super: [ "yeah", { - loader: "'eslint-loader'" - } + loader: "'eslint-loader'", + }, ], - nice: "':)'", - man: "() => duper" }; const root = ast.find(j.ObjectExpression); - root.forEach(p => { + root.forEach((p) => { utils.addProperty(j, p, "entry", propertyValue); }); @@ -299,20 +300,20 @@ const a = { plugs: [] } } }`); const propertyValue = { + man: "() => duper", + nice: "':)'", objects: "are", super: [ "yeah", { - loader: "'eslint-loader'" - } + loader: "'eslint-loader'", + }, ], - nice: "':)'", - man: "() => duper" }; const root = ast.find(j.ObjectExpression); - utils.findRootNodesByName(j, root, "entry").forEach(p => { + utils.findRootNodesByName(j, root, "entry").forEach((p) => { j(p).replaceWith(utils.addProperty(j, p, "entry", propertyValue, "add")); }); diff --git a/packages/utils/is-local-path.test.js b/packages/utils/__tests__/is-local-path.test.ts similarity index 87% rename from packages/utils/is-local-path.test.js rename to packages/utils/__tests__/is-local-path.test.ts index a6db609e694..ca34c0e7b66 100644 --- a/packages/utils/is-local-path.test.js +++ b/packages/utils/__tests__/is-local-path.test.ts @@ -1,7 +1,7 @@ "use strict"; -const isLocalPath = require("./is-local-path").default; -const path = require("path"); +import * as path from "path"; +import isLocalPath from "../is-local-path"; describe("is-local-path", () => { it("returns true for paths beginning in the current directory", () => { diff --git a/packages/utils/npm-exists.test.js b/packages/utils/__tests__/npm-exists.test.ts similarity index 64% rename from packages/utils/npm-exists.test.js rename to packages/utils/__tests__/npm-exists.test.ts index ebcf6dc9e21..4d052c3c19d 100644 --- a/packages/utils/npm-exists.test.js +++ b/packages/utils/__tests__/npm-exists.test.ts @@ -1,15 +1,15 @@ "use strict"; -const exists = require("./npm-exists").default; +import exists from "../npm-exists"; describe("npm-exists", () => { it("should successfully existence of a published module", () => { - exists("webpack-addons-ylvis").then(status => { + exists("webpack-addons-ylvis").then((status) => { expect(status).toBe(true); }); }); it("should return false for the existence of a fake module", () => { - exists("webpack-scaffold-noop").then(status => { + exists("webpack-scaffold-noop").then((status) => { expect(status).toBe(false); }); }); diff --git a/packages/utils/npm-packages-exists.test.js b/packages/utils/__tests__/npm-packages-exists.test.ts similarity index 56% rename from packages/utils/npm-packages-exists.test.js rename to packages/utils/__tests__/npm-packages-exists.test.ts index c9b4a68bfd4..76228b10498 100644 --- a/packages/utils/npm-packages-exists.test.js +++ b/packages/utils/__tests__/npm-packages-exists.test.ts @@ -1,10 +1,11 @@ -const npmPackagesExists = require("./npm-packages-exists").default; -// console.log('npmPackagesExists: ', npmPackagesExists); +import npmPackagesExists from "../npm-packages-exists"; +import {resolvePackages} from "../resolve-packages"; -jest.mock("./npm-exists"); -jest.mock("./resolve-packages"); +jest.mock("../npm-exists"); +jest.mock("../resolve-packages"); -const mockResolvePackages = require("./resolve-packages").resolvePackages; +// TS is not aware that jest changes the type of resolvePackages +const mockResolvePackages = resolvePackages as jest.Mock; describe("npmPackagesExists", () => { test("resolves packages when they are available on the local filesystem", () => { @@ -16,12 +17,12 @@ describe("npmPackagesExists", () => { expect(() => npmPackagesExists(["my-webpack-addon"])).toThrowError(TypeError); }); - test("resolves packages when they are available on npm", done => { - require("./npm-exists").default.mockImplementation(() => Promise.resolve(true)); + test("resolves packages when they are available on npm", (done) => { + require("../npm-exists").default.mockImplementation(() => Promise.resolve(true)); npmPackagesExists(["webpack-scaffold-foobar"]); setTimeout(() => { expect(mockResolvePackages.mock.calls[mockResolvePackages.mock.calls.length - 1][0]).toEqual([ - "webpack-scaffold-foobar" + "webpack-scaffold-foobar", ]); done(); }, 10); diff --git a/packages/utils/package-manager.test.js b/packages/utils/__tests__/package-manager.test.ts similarity index 94% rename from packages/utils/package-manager.test.js rename to packages/utils/__tests__/package-manager.test.ts index e86e015ab0e..036f10604bb 100644 --- a/packages/utils/package-manager.test.js +++ b/packages/utils/__tests__/package-manager.test.ts @@ -1,31 +1,31 @@ "use strict"; -const path = require("path"); +import * as path from "path"; +import * as packageManager from "../package-manager"; jest.mock("cross-spawn"); jest.mock("fs"); describe("package-manager", () => { - const packageManager = require("./package-manager"); const spawn = require("cross-spawn"); const fs = require("fs"); const defaultSyncResult = { - pid: 1234, + error: null, output: [null, null, null], - stdout: null, - stderr: null, + pid: 1234, signal: null, status: 1, - error: null + stderr: null, + stdout: null, }; function mockSpawnErrorOnce() { spawn.sync.mockReturnValueOnce( Object.assign({}, defaultSyncResult, { + error: new Error(), status: null, - error: new Error() - }) + }), ); } @@ -101,8 +101,8 @@ describe("package-manager", () => { // Mock stdout of `yarn global dir` spawn.sync.mockReturnValueOnce({ stdout: { - toString: () => `${yarnDir}\n` - } + toString: () => `${yarnDir}\n`, + }, }); const globalPath = packageManager.getPathToGlobalPackages(); const expected = path.join(yarnDir, "node_modules"); diff --git a/packages/utils/__tests__/recursive-parser.test.ts b/packages/utils/__tests__/recursive-parser.test.ts new file mode 100644 index 00000000000..87778124f13 --- /dev/null +++ b/packages/utils/__tests__/recursive-parser.test.ts @@ -0,0 +1,65 @@ +"use strict"; + +import { join } from "path"; +import defineTest from "../defineTest"; + +defineTest(join(__dirname, ".."), "init", "fixture-1", "entry", { + foo: "Promise.resolve()", + man: "() => duper", + nice: "':)'", + objects: "are", + super: [ + "yeah", + { + enforce: "'pre'", + include: ["customObj", "'Stringy'"], + loader: "'eslint-loader'", + options: { + formatter: "'someOption'", + }, + test: new RegExp(/\.(js|vue)$/), + }, + ], +}); + +defineTest(join(__dirname, ".."), "add", "fixture-2", "entry", { + foo: "Promise.resolve()", + man: "() => nice!!", + mode: "super-man", + nice: "'=)'", + objects: "are not", + super: [ + "op", + { + enforce: "'pre'", + include: ["asd", "'Stringy'"], + loader: "'pia-loader'", + options: { + formatter: "'nao'", + }, + test: new RegExp(/\.(wasm|c)$/), + }, + ], +}); + +defineTest(join(__dirname, ".."), "remove", "fixture-3", "resolve", { + alias: null, +}); + +defineTest(join(__dirname, ".."), "remove", "fixture-3", "plugins", ["plugin2"]); + +defineTest(join(__dirname, ".."), "remove", "fixture-3", "module", { + noParse: null, +}); + +defineTest(join(__dirname, ".."), "remove", "fixture-3", "entry", { + a: null, +}); + +defineTest(join(__dirname, ".."), "remove", "fixture-3", "module", { + rules: [ + { + loader: "eslint-loader", + }, + ], +}); diff --git a/packages/utils/resolve-packages.test.js b/packages/utils/__tests__/resolve-packages.test.ts similarity index 82% rename from packages/utils/resolve-packages.test.js rename to packages/utils/__tests__/resolve-packages.test.ts index bb30405ff93..d571dc01762 100644 --- a/packages/utils/resolve-packages.test.js +++ b/packages/utils/__tests__/resolve-packages.test.ts @@ -1,13 +1,13 @@ "use strict"; -const path = require("path"); +import * as path from "path"; function mockPromise(value) { const isValueAPromise = (value || {}).then; const mockedPromise = { - then: function(callback) { + then(callback) { return mockPromise(callback(value)); - } + }, }; return isValueAPromise ? value : mockedPromise; @@ -17,17 +17,15 @@ function spawnChild(pkg) { } function getLoc(option) { - let packageModule = []; - option.filter(pkg => { - mockPromise(spawnChild(pkg)).then(_ => { + const packageModule = []; + option.filter((pkg) => { + mockPromise(spawnChild(pkg)).then((_) => { try { - let loc = path.join("..", "..", "node_modules", pkg); + const loc = path.join("..", "..", "node_modules", pkg); packageModule.push(loc); } catch (err) { throw new Error( - "Package wasn't validated correctly.." + "Submit an issue for", - pkg, - "if this persists" + "Package wasn't validated correctly.." + "Submit an issue for " + pkg + " if this persists", ); } }); @@ -62,7 +60,7 @@ describe("resolve-packages", () => { moduleLoc = getLoc(["webpack-scaffold-ylvis", "webpack-scaffold-noop"]); expect(moduleLoc).toEqual([ path.normalize("../../node_modules/webpack-scaffold-ylvis"), - path.normalize("../../node_modules/webpack-scaffold-noop") + path.normalize("../../node_modules/webpack-scaffold-noop"), ]); }); }); diff --git a/packages/utils/validate-identifier.test.js b/packages/utils/__tests__/validate-identifier.test.ts similarity index 59% rename from packages/utils/validate-identifier.test.js rename to packages/utils/__tests__/validate-identifier.test.ts index 598c2c1d18e..96d36c09408 100644 --- a/packages/utils/validate-identifier.test.js +++ b/packages/utils/__tests__/validate-identifier.test.ts @@ -1,6 +1,6 @@ "use strict"; -const validateIdentifier = require("./validate-identifier"); +import * as validateIdentifier from "../validate-identifier"; describe("validate-identifier", () => { it("should return true for reserved keyword", () => { @@ -13,22 +13,27 @@ describe("validate-identifier", () => { expect(validateIdentifier.isKeyword(l)).toBe(false); }); - it("should retrun false if literal is not in U+200C zero width non-joiner, U+200D zero width joiner, or any symbol with the Unicode derived core property ID_Continue", () => { + it("should retrun false if literal is not in U+200C zero width non-joiner,\ + U+200D zero width joiner, or any symbol with \ + the Unicode derived core property ID_Continue", () => { const l = "\u00A9"; expect(validateIdentifier.isIdentifierChar(l)).toBe(false); }); - it("should retrun true if literal is in U+200C zero width non-joiner, U+200D zero width joiner, or any symbol with the Unicode derived core property ID_Continue", () => { + it("should retrun true if literal is in U+200C zero width non-joiner, U+200D zero width joiner,\ + or any symbol with the Unicode derived core property ID_Continue", () => { const l = "foo$bar"; expect(validateIdentifier.isIdentifierChar(l)).toBe(true); }); - it("should return true if literal name starts with $, _ or any symbol with the unicode derived core property ID_Start", () => { + it("should return true if literal name starts with \ + $, _ or any symbol with the unicode derived core property ID_Start", () => { const l = "$foo"; expect(validateIdentifier.isIdentifierStart(l)).toBe(true); }); - it("should return false if literal name does not starts with $, _ or any symbol with the unicode derived core property ID_Start", () => { + it("should return false if literal name does not starts with \ + $, _ or any symbol with the unicode derived core property ID_Start", () => { const l = "^bar"; expect(validateIdentifier.isIdentifierStart(l)).toBe(false); }); diff --git a/packages/utils/ast-utils.ts b/packages/utils/ast-utils.ts index 9d1fc58d50e..03222303e50 100644 --- a/packages/utils/ast-utils.ts +++ b/packages/utils/ast-utils.ts @@ -296,7 +296,7 @@ function findAndRemovePluginByName(j: IJSCodeshift, node: INode, pluginName: str * @returns {Void} */ -function createOrUpdatePluginByName(j: IJSCodeshift, rootNodePath: INode, pluginName: string, options: object): void { +function createOrUpdatePluginByName(j: IJSCodeshift, rootNodePath: INode, pluginName: string, options?: object): void { const pluginInstancePath: INode = findPluginsByName(j, j(rootNodePath), [ pluginName, ]); diff --git a/packages/utils/defineTest.ts b/packages/utils/defineTest.ts index 52201408dcc..a2a570207f2 100644 --- a/packages/utils/defineTest.ts +++ b/packages/utils/defineTest.ts @@ -18,7 +18,7 @@ type transformType = ( jscodeshift: IJSCodeshift, ast: INode, initOptions: string | boolean | object, - action: string, + action: object | string, transformName?: string, ) => INode; @@ -51,7 +51,7 @@ function runSingleTransform( transformName: string, testFilePrefix: string, initOptions: object | boolean | string, - action: string, + action: object | string, ): string { if (!testFilePrefix) { testFilePrefix = transformName; @@ -118,8 +118,8 @@ export default function defineTest( dirName: string, transformName: string, testFilePrefix?: string, - transformObject?: object, - action?: string, + transformObject?: object | string, + action?: object | string, ): void { const testName: string = testFilePrefix ? `transforms correctly using "${testFilePrefix}" data` diff --git a/packages/utils/recursive-parser.test.js b/packages/utils/recursive-parser.test.js deleted file mode 100644 index 7a6d6b99e05..00000000000 --- a/packages/utils/recursive-parser.test.js +++ /dev/null @@ -1,64 +0,0 @@ -"use strict"; - -const defineTest = require("./defineTest").default; - -defineTest(__dirname, "init", "fixture-1", "entry", { - objects: "are", - super: [ - "yeah", - { - test: new RegExp(/\.(js|vue)$/), - loader: "'eslint-loader'", - enforce: "'pre'", - include: ["customObj", "'Stringy'"], - options: { - formatter: "'someOption'" - } - } - ], - nice: "':)'", - foo: "Promise.resolve()", - man: "() => duper" -}); - -defineTest(__dirname, "add", "fixture-2", "entry", { - objects: "are not", - super: [ - "op", - { - test: new RegExp(/\.(wasm|c)$/), - loader: "'pia-loader'", - enforce: "'pre'", - include: ["asd", "'Stringy'"], - options: { - formatter: "'nao'" - } - } - ], - nice: "'=)'", - foo: "Promise.resolve()", - man: "() => nice!!", - mode: "super-man" -}); - -defineTest(__dirname, "remove", "fixture-3", "resolve", { - alias: null -}); - -defineTest(__dirname, "remove", "fixture-3", "plugins", ["plugin2"]); - -defineTest(__dirname, "remove", "fixture-3", "module", { - noParse: null -}); - -defineTest(__dirname, "remove", "fixture-3", "entry", { - a: null -}); - -defineTest(__dirname, "remove", "fixture-3", "module", { - rules: [ - { - loader: "eslint-loader" - } - ] -}); From d6d27dcf162af108760b71d28c7c72fc9799fadc Mon Sep 17 00:00:00 2001 From: Devid Farinelli Date: Tue, 19 Feb 2019 18:16:13 +0100 Subject: [PATCH 11/20] tests(migrate): adds interface ILazyTransformObject --- packages/migrate/migrate.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/migrate/migrate.ts b/packages/migrate/migrate.ts index ac3b2d29914..6ab47853f12 100644 --- a/packages/migrate/migrate.ts +++ b/packages/migrate/migrate.ts @@ -40,12 +40,25 @@ const transformsObject: ITransformsObject = { removeDeprecatedPluginsTransform, commonsChunkPluginTransform, }; + +interface ILazyTransformObject { + loadersTransform?: (ast: object, source: string) => pLazy<{}>; + resolveTransform?: (ast: object, source: string) => pLazy<{}>; + removeJsonLoaderTransform?: (ast: object, source: string) => pLazy<{}>; + uglifyJsPluginTransform?: (ast: object, source: string) => pLazy<{}>; + loaderOptionsPluginTransform?: (ast: object, source: string) => pLazy<{}>; + bannerPluginTransform?: (ast: object, source: string) => pLazy<{}>; + extractTextPluginTransform?: (ast: object, source: string) => pLazy<{}>; + noEmitOnErrorsPluginTransform?: (ast: object, source: string) => pLazy<{}>; + removeDeprecatedPluginsTransform?: (ast: object, source: string) => pLazy<{}>; + commonsChunkPluginTransform?: (ast: object, source: string) => pLazy<{}>; +} /* tslint:enable object-literal-sort-keys */ -export const transformations: any = +export const transformations: ILazyTransformObject = Object .keys(transformsObject) - .reduce((res: object, key: string): object => { + .reduce((res: object, key: string): ILazyTransformObject => { res[key] = (ast: object, source: string) => transformSingleAST(ast, source, transformsObject[key]); return res; From eb7a4578fdd8dbc517153dfe8dabd2272ec5909c Mon Sep 17 00:00:00 2001 From: Devid Farinelli Date: Tue, 19 Feb 2019 18:17:46 +0100 Subject: [PATCH 12/20] chore(commitlint): remove deprecated lang rule --- commitlint.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/commitlint.config.js b/commitlint.config.js index e5ac86ba709..0bb49930e3f 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -12,7 +12,6 @@ module.exports = { "body-leading-blank": [1, "always"], "footer-leading-blank": [1, "always"], "header-max-length": [2, "always", 80], - lang: [0, "always", "eng"], "scope-case": [2, "always", "lowerCase"], "scope-empty": [0, "never"], "subject-case": [2, "never", ["sentence-case", "start-case", "pascal-case", "upper-case"]], From 34aa9821f1acd786ef8db020ed1dffb0d390c548 Mon Sep 17 00:00:00 2001 From: Devid Farinelli Date: Tue, 19 Feb 2019 18:22:15 +0100 Subject: [PATCH 13/20] chore(typings): fix tslint error --- packages/migrate/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/migrate/index.ts b/packages/migrate/index.ts index 09b166c6adb..4818a994a57 100644 --- a/packages/migrate/index.ts +++ b/packages/migrate/index.ts @@ -17,7 +17,7 @@ declare var process: { webpackModule: { validate: Function; WebpackOptionsValidationError: { - new(errors: string[]): { + new: (errors: string[]) => { message: string; }; }; From a98e867f5f6fc1a6a2039a04440e0f265f1d3fb9 Mon Sep 17 00:00:00 2001 From: Devid Farinelli Date: Tue, 19 Feb 2019 19:39:22 +0100 Subject: [PATCH 14/20] tests(migration): refactor dirName in a variable --- .../__tests__/bannerPlugin.test.ts | 8 ++++--- .../__tests__/commonsChunkPlugin.test.ts | 24 ++++++++++--------- .../__tests__/loaderOptionsPlugin.test.ts | 11 +++++---- .../migrate/loaders/__tests__/loaders.test.ts | 20 +++++++++------- .../moduleConcatenationPlugin.test.ts | 8 ++++--- .../__tests__/namedModulesPlugin.test.ts | 9 ++++--- .../__tests__/noEmitOnErrorsPlugin.test.ts | 9 ++++--- .../outputPath/__tests__/outputPath.test.ts | 8 ++++--- .../__tests__/removeDeprecatedPlugins.test.ts | 12 ++++++---- .../__tests__/removeJsonLoader.test.ts | 13 ++++++---- .../migrate/resolve/__tests__/resolve.test.ts | 4 ++-- .../__tests__/uglifyJsPlugin.test.ts | 13 ++++++---- 12 files changed, 83 insertions(+), 56 deletions(-) diff --git a/packages/migrate/bannerPlugin/__tests__/bannerPlugin.test.ts b/packages/migrate/bannerPlugin/__tests__/bannerPlugin.test.ts index 58dc2c12821..f7382096901 100644 --- a/packages/migrate/bannerPlugin/__tests__/bannerPlugin.test.ts +++ b/packages/migrate/bannerPlugin/__tests__/bannerPlugin.test.ts @@ -1,6 +1,8 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; -defineTest(join(__dirname, ".."), "bannerPlugin", "bannerPlugin-0"); -defineTest(join(__dirname, ".."), "bannerPlugin", "bannerPlugin-1"); -defineTest(join(__dirname, ".."), "bannerPlugin", "bannerPlugin-2"); +const dirName: string = join(__dirname, ".."); + +defineTest(dirName, "bannerPlugin", "bannerPlugin-0"); +defineTest(dirName, "bannerPlugin", "bannerPlugin-1"); +defineTest(dirName, "bannerPlugin", "bannerPlugin-2"); diff --git a/packages/migrate/commonsChunkPlugin/__tests__/commonsChunkPlugin.test.ts b/packages/migrate/commonsChunkPlugin/__tests__/commonsChunkPlugin.test.ts index acbecafbf67..5c2e28e1f40 100644 --- a/packages/migrate/commonsChunkPlugin/__tests__/commonsChunkPlugin.test.ts +++ b/packages/migrate/commonsChunkPlugin/__tests__/commonsChunkPlugin.test.ts @@ -1,30 +1,32 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; -defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-0"); -defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-1"); -defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-2"); -defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-3"); -defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-4"); -defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-5"); +const dirName: string = join(__dirname, ".."); + +defineTest(dirName, "commonsChunkPlugin", "commonsChunkPlugin-0"); +defineTest(dirName, "commonsChunkPlugin", "commonsChunkPlugin-1"); +defineTest(dirName, "commonsChunkPlugin", "commonsChunkPlugin-2"); +defineTest(dirName, "commonsChunkPlugin", "commonsChunkPlugin-3"); +defineTest(dirName, "commonsChunkPlugin", "commonsChunkPlugin-4"); +defineTest(dirName, "commonsChunkPlugin", "commonsChunkPlugin-5"); defineTest( - join(__dirname, ".."), + dirName, "commonsChunkPlugin", "commonsChunkPlugin-6a", ); defineTest( - join(__dirname, ".."), + dirName, "commonsChunkPlugin", "commonsChunkPlugin-6b", ); defineTest( - join(__dirname, ".."), + dirName, "commonsChunkPlugin", "commonsChunkPlugin-6c", ); defineTest( - join(__dirname, ".."), + dirName, "commonsChunkPlugin", "commonsChunkPlugin-6d", ); -defineTest(join(__dirname, ".."), "commonsChunkPlugin", "commonsChunkPlugin-7"); +defineTest(dirName, "commonsChunkPlugin", "commonsChunkPlugin-7"); diff --git a/packages/migrate/loaderOptionsPlugin/__tests__/loaderOptionsPlugin.test.ts b/packages/migrate/loaderOptionsPlugin/__tests__/loaderOptionsPlugin.test.ts index 2a97886e9b1..0126a11b8cd 100644 --- a/packages/migrate/loaderOptionsPlugin/__tests__/loaderOptionsPlugin.test.ts +++ b/packages/migrate/loaderOptionsPlugin/__tests__/loaderOptionsPlugin.test.ts @@ -1,22 +1,25 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; + +const dirName: string = join(__dirname, ".."); + defineTest( - join(__dirname, ".."), + dirName, "loaderOptionsPlugin", "loaderOptionsPlugin-0", ); defineTest( - join(__dirname, ".."), + dirName, "loaderOptionsPlugin", "loaderOptionsPlugin-1", ); defineTest( - join(__dirname, ".."), + dirName, "loaderOptionsPlugin", "loaderOptionsPlugin-2", ); defineTest( - join(__dirname, ".."), + dirName, "loaderOptionsPlugin", "loaderOptionsPlugin-3", ); diff --git a/packages/migrate/loaders/__tests__/loaders.test.ts b/packages/migrate/loaders/__tests__/loaders.test.ts index c3cf6373871..052103e79ef 100644 --- a/packages/migrate/loaders/__tests__/loaders.test.ts +++ b/packages/migrate/loaders/__tests__/loaders.test.ts @@ -1,12 +1,14 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; -defineTest(join(__dirname, ".."), "loaders", "loaders-0"); -defineTest(join(__dirname, ".."), "loaders", "loaders-1"); -defineTest(join(__dirname, ".."), "loaders", "loaders-2"); -defineTest(join(__dirname, ".."), "loaders", "loaders-3"); -defineTest(join(__dirname, ".."), "loaders", "loaders-4"); -defineTest(join(__dirname, ".."), "loaders", "loaders-5"); -defineTest(join(__dirname, ".."), "loaders", "loaders-6"); -defineTest(join(__dirname, ".."), "loaders", "loaders-7"); -defineTest(join(__dirname, ".."), "loaders", "loaders-8"); +const dirName: string = join(__dirname, ".."); + +defineTest(dirName, "loaders", "loaders-0"); +defineTest(dirName, "loaders", "loaders-1"); +defineTest(dirName, "loaders", "loaders-2"); +defineTest(dirName, "loaders", "loaders-3"); +defineTest(dirName, "loaders", "loaders-4"); +defineTest(dirName, "loaders", "loaders-5"); +defineTest(dirName, "loaders", "loaders-6"); +defineTest(dirName, "loaders", "loaders-7"); +defineTest(dirName, "loaders", "loaders-8"); diff --git a/packages/migrate/moduleConcatenationPlugin/__tests__/moduleConcatenationPlugin.test.ts b/packages/migrate/moduleConcatenationPlugin/__tests__/moduleConcatenationPlugin.test.ts index e7322895d89..840dee420a2 100644 --- a/packages/migrate/moduleConcatenationPlugin/__tests__/moduleConcatenationPlugin.test.ts +++ b/packages/migrate/moduleConcatenationPlugin/__tests__/moduleConcatenationPlugin.test.ts @@ -1,18 +1,20 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; +const dirName: string = join(__dirname, ".."); + defineTest( - join(__dirname, ".."), + dirName, "moduleConcatenationPlugin", "moduleConcatenationPlugin-0", ); defineTest( - join(__dirname, ".."), + dirName, "moduleConcatenationPlugin", "moduleConcatenationPlugin-1", ); defineTest( - join(__dirname, ".."), + dirName, "moduleConcatenationPlugin", "moduleConcatenationPlugin-2", ); diff --git a/packages/migrate/namedModulesPlugin/__tests__/namedModulesPlugin.test.ts b/packages/migrate/namedModulesPlugin/__tests__/namedModulesPlugin.test.ts index ff24c9912eb..ed0ffe9d7d3 100644 --- a/packages/migrate/namedModulesPlugin/__tests__/namedModulesPlugin.test.ts +++ b/packages/migrate/namedModulesPlugin/__tests__/namedModulesPlugin.test.ts @@ -1,5 +1,8 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; -defineTest(join(__dirname, ".."), "namedModulesPlugin", "namedModulesPlugin-0"); -defineTest(join(__dirname, ".."), "namedModulesPlugin", "namedModulesPlugin-1"); -defineTest(join(__dirname, ".."), "namedModulesPlugin", "namedModulesPlugin-2"); + +const dirName: string = join(__dirname, ".."); + +defineTest(dirName, "namedModulesPlugin", "namedModulesPlugin-0"); +defineTest(dirName, "namedModulesPlugin", "namedModulesPlugin-1"); +defineTest(dirName, "namedModulesPlugin", "namedModulesPlugin-2"); diff --git a/packages/migrate/noEmitOnErrorsPlugin/__tests__/noEmitOnErrorsPlugin.test.ts b/packages/migrate/noEmitOnErrorsPlugin/__tests__/noEmitOnErrorsPlugin.test.ts index 2e3fe50a758..760a5a1aa75 100644 --- a/packages/migrate/noEmitOnErrorsPlugin/__tests__/noEmitOnErrorsPlugin.test.ts +++ b/packages/migrate/noEmitOnErrorsPlugin/__tests__/noEmitOnErrorsPlugin.test.ts @@ -1,17 +1,20 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; + +const dirName: string = join(__dirname, ".."); + defineTest( - join(__dirname, ".."), + dirName, "noEmitOnErrorsPlugin", "noEmitOnErrorsPlugin-0", ); defineTest( - join(__dirname, ".."), + dirName, "noEmitOnErrorsPlugin", "noEmitOnErrorsPlugin-1", ); defineTest( - join(__dirname, ".."), + dirName, "noEmitOnErrorsPlugin", "noEmitOnErrorsPlugin-2", ); diff --git a/packages/migrate/outputPath/__tests__/outputPath.test.ts b/packages/migrate/outputPath/__tests__/outputPath.test.ts index 434b3b5bf71..1d5141154bb 100644 --- a/packages/migrate/outputPath/__tests__/outputPath.test.ts +++ b/packages/migrate/outputPath/__tests__/outputPath.test.ts @@ -1,6 +1,8 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; -defineTest(join(__dirname, ".."), "outputPath", "outputPath-0"); -defineTest(join(__dirname, ".."), "outputPath", "outputPath-1"); -defineTest(join(__dirname, ".."), "outputPath", "outputPath-2"); +const dirName: string = join(__dirname, ".."); + +defineTest(dirName, "outputPath", "outputPath-0"); +defineTest(dirName, "outputPath", "outputPath-1"); +defineTest(dirName, "outputPath", "outputPath-2"); diff --git a/packages/migrate/removeDeprecatedPlugins/__tests__/removeDeprecatedPlugins.test.ts b/packages/migrate/removeDeprecatedPlugins/__tests__/removeDeprecatedPlugins.test.ts index 7d148be133b..922ca71424c 100644 --- a/packages/migrate/removeDeprecatedPlugins/__tests__/removeDeprecatedPlugins.test.ts +++ b/packages/migrate/removeDeprecatedPlugins/__tests__/removeDeprecatedPlugins.test.ts @@ -1,28 +1,30 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; +const dirName: string = join(__dirname, ".."); + defineTest( - join(__dirname, ".."), + dirName, "removeDeprecatedPlugins", "removeDeprecatedPlugins-0", ); defineTest( - join(__dirname, ".."), + dirName, "removeDeprecatedPlugins", "removeDeprecatedPlugins-1", ); defineTest( - join(__dirname, ".."), + dirName, "removeDeprecatedPlugins", "removeDeprecatedPlugins-2", ); defineTest( - join(__dirname, ".."), + dirName, "removeDeprecatedPlugins", "removeDeprecatedPlugins-3", ); defineTest( - join(__dirname, ".."), + dirName, "removeDeprecatedPlugins", "removeDeprecatedPlugins-4", ); diff --git a/packages/migrate/removeJsonLoader/__tests__/removeJsonLoader.test.ts b/packages/migrate/removeJsonLoader/__tests__/removeJsonLoader.test.ts index 4251a6b2119..6d705023056 100644 --- a/packages/migrate/removeJsonLoader/__tests__/removeJsonLoader.test.ts +++ b/packages/migrate/removeJsonLoader/__tests__/removeJsonLoader.test.ts @@ -1,22 +1,25 @@ import defineTest from "@webpack-cli/utils/defineTest"; -import * as path from "path"; +import { join } from "path"; + +const dirName: string = join(__dirname, ".."); + defineTest( - path.join(__dirname, ".."), + dirName, "removeJsonLoader", "removeJsonLoader-0", ); defineTest( - path.join(__dirname, ".."), + dirName, "removeJsonLoader", "removeJsonLoader-1", ); defineTest( - path.join(__dirname, ".."), + dirName, "removeJsonLoader", "removeJsonLoader-2", ); defineTest( - path.join(__dirname, ".."), + dirName, "removeJsonLoader", "removeJsonLoader-3", ); diff --git a/packages/migrate/resolve/__tests__/resolve.test.ts b/packages/migrate/resolve/__tests__/resolve.test.ts index d6fc59596d8..fcf121a3ad5 100644 --- a/packages/migrate/resolve/__tests__/resolve.test.ts +++ b/packages/migrate/resolve/__tests__/resolve.test.ts @@ -1,4 +1,4 @@ import defineTest from "@webpack-cli/utils/defineTest"; -import * as path from "path"; +import { join } from "path"; -defineTest(path.join(__dirname, ".."), "resolve"); +defineTest(join(__dirname, ".."), "resolve"); diff --git a/packages/migrate/uglifyJsPlugin/__tests__/uglifyJsPlugin.test.ts b/packages/migrate/uglifyJsPlugin/__tests__/uglifyJsPlugin.test.ts index 5b229349d40..d5e3ddbaf97 100644 --- a/packages/migrate/uglifyJsPlugin/__tests__/uglifyJsPlugin.test.ts +++ b/packages/migrate/uglifyJsPlugin/__tests__/uglifyJsPlugin.test.ts @@ -1,7 +1,10 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; -defineTest(join(__dirname, ".."), "uglifyJsPlugin", "uglifyJsPlugin-0"); -defineTest(join(__dirname, ".."), "uglifyJsPlugin", "uglifyJsPlugin-1"); -defineTest(join(__dirname, ".."), "uglifyJsPlugin", "uglifyJsPlugin-2"); -defineTest(join(__dirname, ".."), "uglifyJsPlugin", "uglifyJsPlugin-3"); -defineTest(join(__dirname, ".."), "uglifyJsPlugin", "uglifyJsPlugin-4"); + +const dirName: string = join(__dirname, ".."); + +defineTest(dirName, "uglifyJsPlugin", "uglifyJsPlugin-0"); +defineTest(dirName, "uglifyJsPlugin", "uglifyJsPlugin-1"); +defineTest(dirName, "uglifyJsPlugin", "uglifyJsPlugin-2"); +defineTest(dirName, "uglifyJsPlugin", "uglifyJsPlugin-3"); +defineTest(dirName, "uglifyJsPlugin", "uglifyJsPlugin-4"); From 31220a36d0cb800d3c0c90ca03f48d2682650de9 Mon Sep 17 00:00:00 2001 From: Devid Farinelli Date: Tue, 19 Feb 2019 19:42:14 +0100 Subject: [PATCH 15/20] tests(migrate): refactor dirName in variable 2 --- .../extractTextPlugin/__tests__/extractTextPlugin.test.ts | 3 ++- packages/migrate/resolve/__tests__/resolve.test.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/migrate/extractTextPlugin/__tests__/extractTextPlugin.test.ts b/packages/migrate/extractTextPlugin/__tests__/extractTextPlugin.test.ts index ed310c44315..4e866fb005f 100644 --- a/packages/migrate/extractTextPlugin/__tests__/extractTextPlugin.test.ts +++ b/packages/migrate/extractTextPlugin/__tests__/extractTextPlugin.test.ts @@ -1,4 +1,5 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; -defineTest(join(__dirname, ".."), "extractTextPlugin"); +const dirName: string = join(__dirname, ".."); +defineTest(dirName, "extractTextPlugin"); diff --git a/packages/migrate/resolve/__tests__/resolve.test.ts b/packages/migrate/resolve/__tests__/resolve.test.ts index fcf121a3ad5..82349cbc543 100644 --- a/packages/migrate/resolve/__tests__/resolve.test.ts +++ b/packages/migrate/resolve/__tests__/resolve.test.ts @@ -1,4 +1,5 @@ import defineTest from "@webpack-cli/utils/defineTest"; import { join } from "path"; -defineTest(join(__dirname, ".."), "resolve"); +const dirName: string = join(__dirname, ".."); +defineTest(dirName, "resolve"); From 44da46bcb3dd65fa8588ff309d49cf49f633da92 Mon Sep 17 00:00:00 2001 From: Devid Farinelli Date: Tue, 19 Feb 2019 19:52:34 +0100 Subject: [PATCH 16/20] tests(migrate): import path.resolve & add rootPath variable --- .../__tests__/__testfixtures__/resolve.input.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js b/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js index 7449362ea5f..cf2a06704a2 100644 --- a/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js +++ b/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js @@ -1,24 +1,26 @@ -const path = require("patch"); +const { resolve } = require("patch"); + +const rootPath = resolve("/src"); module.exports = [ { resolve: { - root: path.resolve("/src") + root: rootPath } }, { resolve: { - root: [path.resolve("/src")] + root: [rootPath] } }, { resolve: { - root: [path.resolve("/src"), "node_modules"] + root: [rootPath, "node_modules"] } }, { resolve: { modules: ["node_modules"], - root: path.resolve("/src") + root: rootPath } } ]; From ef8987d8128cd4acf0e1533f9d3d7b76ac56bb38 Mon Sep 17 00:00:00 2001 From: Devid Farinelli Date: Tue, 19 Feb 2019 19:53:42 +0100 Subject: [PATCH 17/20] tests(utils): adds type in forEach --- packages/utils/__tests__/ast-utils.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/utils/__tests__/ast-utils.test.ts b/packages/utils/__tests__/ast-utils.test.ts index a1cf84403df..b9c8e34576c 100644 --- a/packages/utils/__tests__/ast-utils.test.ts +++ b/packages/utils/__tests__/ast-utils.test.ts @@ -313,7 +313,7 @@ const a = { plugs: [] } const root = ast.find(j.ObjectExpression); - utils.findRootNodesByName(j, root, "entry").forEach((p) => { + utils.findRootNodesByName(j, root, "entry").forEach((p: INode) => { j(p).replaceWith(utils.addProperty(j, p, "entry", propertyValue, "add")); }); From a2e187feb35941fc1351c1dd18808e7cff14c4b3 Mon Sep 17 00:00:00 2001 From: Devid Farinelli Date: Tue, 19 Feb 2019 20:32:16 +0100 Subject: [PATCH 18/20] tests(migrate): refactor resolve.test --- .../__tests__/__snapshots__/resolve.test.ts.snap | 11 ++++++----- .../__tests__/__testfixtures__/resolve.input.js | 5 ++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap b/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap index 83ab9cf40bc..c96bb8462fc 100644 --- a/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap +++ b/packages/migrate/resolve/__tests__/__snapshots__/resolve.test.ts.snap @@ -1,26 +1,27 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`resolve transforms correctly 1`] = ` -"const path = require(\\"patch\\"); +"const path = require(\\"path\\"); +const rootPath = path.resolve(\\"/src\\"); module.exports = [ { resolve: { - modules: [path.resolve(\\"/src\\")] + modules: [rootPath] } }, { resolve: { - modules: [path.resolve(\\"/src\\")] + modules: [rootPath] } }, { resolve: { - modules: [path.resolve(\\"/src\\"), \\"node_modules\\"] + modules: [rootPath, \\"node_modules\\"] } }, { resolve: { - modules: [\\"node_modules\\", path.resolve(\\"/src\\")] + modules: [\\"node_modules\\", rootPath] } } ]; diff --git a/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js b/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js index cf2a06704a2..f90803ff3d0 100644 --- a/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js +++ b/packages/migrate/resolve/__tests__/__testfixtures__/resolve.input.js @@ -1,6 +1,5 @@ -const { resolve } = require("patch"); - -const rootPath = resolve("/src"); +const path = require("path"); +const rootPath = path.resolve("/src"); module.exports = [ { resolve: { From 55ecafa0da11020da36151e039881a8d4f4b9c28 Mon Sep 17 00:00:00 2001 From: Sendil Kumar Date: Fri, 15 Mar 2019 21:18:18 +0100 Subject: [PATCH 19/20] chore(tests): enable ts in tests --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 0d571cc6f0a..1e5907bb869 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,6 @@ }, "jest": { "testPathIgnorePatterns": [ - "^.+\\.(ts)?$", "/node_modules/" ], "testEnvironment": "node", From 67788ee349892819548c9645b05d593bf7046adf Mon Sep 17 00:00:00 2001 From: Sendil Kumar Date: Fri, 15 Mar 2019 21:41:10 +0100 Subject: [PATCH 20/20] chore(tests): remove unwanted script --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index 1e5907bb869..4e7f1393bb6 100644 --- a/package.json +++ b/package.json @@ -43,8 +43,7 @@ "travis:integration": "npm run build && npm run test && npm run reportCoverage", "travis:lint": "npm run build && npm run lint && npm run tslint", "tslint": "tslint -c tslint.json \"packages/**/*.ts\"", - "watch": "npm run build && tsc -w", - "test:local": "jest --watch" + "watch": "npm run build && tsc -w" }, "husky": { "hooks": {