diff --git a/test/cases/simple-async-load-css-fallback/a.css b/test/cases/simple-async-load-css-fallback/a.css new file mode 100644 index 00000000..31fc5b8a --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/a.css @@ -0,0 +1 @@ +body { background: red; } diff --git a/test/cases/simple-async-load-css-fallback/async-one.js b/test/cases/simple-async-load-css-fallback/async-one.js new file mode 100644 index 00000000..882b0824 --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/async-one.js @@ -0,0 +1,2 @@ +import './c.css'; +import './d.css'; diff --git a/test/cases/simple-async-load-css-fallback/async-two.js b/test/cases/simple-async-load-css-fallback/async-two.js new file mode 100644 index 00000000..e83f933c --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/async-two.js @@ -0,0 +1,2 @@ +import './e.css'; +import './f.css'; diff --git a/test/cases/simple-async-load-css-fallback/b.css b/test/cases/simple-async-load-css-fallback/b.css new file mode 100644 index 00000000..56af6df5 --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/b.css @@ -0,0 +1 @@ +body { background: green; } diff --git a/test/cases/simple-async-load-css-fallback/c.css b/test/cases/simple-async-load-css-fallback/c.css new file mode 100644 index 00000000..4e2dfe9a --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/c.css @@ -0,0 +1 @@ +body { background: blue; } diff --git a/test/cases/simple-async-load-css-fallback/d.css b/test/cases/simple-async-load-css-fallback/d.css new file mode 100644 index 00000000..75945584 --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/d.css @@ -0,0 +1 @@ +body { background: yellow; } diff --git a/test/cases/simple-async-load-css-fallback/e.css b/test/cases/simple-async-load-css-fallback/e.css new file mode 100644 index 00000000..484aaf18 --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/e.css @@ -0,0 +1 @@ +body { background: purple; } diff --git a/test/cases/simple-async-load-css-fallback/expected/async-one.css b/test/cases/simple-async-load-css-fallback/expected/async-one.css new file mode 100644 index 00000000..e28fd9a4 --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/expected/async-one.css @@ -0,0 +1,4 @@ +body { background: blue; } + +body { background: yellow; } + diff --git a/test/cases/simple-async-load-css-fallback/expected/async-two.css b/test/cases/simple-async-load-css-fallback/expected/async-two.css new file mode 100644 index 00000000..83c2b1a9 --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/expected/async-two.css @@ -0,0 +1,4 @@ +body { background: purple; } + +body { background: indigo; } + diff --git a/test/cases/simple-async-load-css-fallback/expected/main.css b/test/cases/simple-async-load-css-fallback/expected/main.css new file mode 100644 index 00000000..f17305d1 --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/expected/main.css @@ -0,0 +1,4 @@ +body { background: red; } + +body { background: green; } + diff --git a/test/cases/simple-async-load-css-fallback/f.css b/test/cases/simple-async-load-css-fallback/f.css new file mode 100644 index 00000000..a0f22c15 --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/f.css @@ -0,0 +1 @@ +body { background: indigo; } diff --git a/test/cases/simple-async-load-css-fallback/index.js b/test/cases/simple-async-load-css-fallback/index.js new file mode 100644 index 00000000..4a384fd0 --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/index.js @@ -0,0 +1,5 @@ +import './a.css'; +import './b.css'; +import(/* webpackChunkName: 'async-one' */'./async-one'); +import(/* webpackChunkName: 'async-two' */'./async-two'); + diff --git a/test/cases/simple-async-load-css-fallback/webpack.config.js b/test/cases/simple-async-load-css-fallback/webpack.config.js new file mode 100644 index 00000000..17dc8ead --- /dev/null +++ b/test/cases/simple-async-load-css-fallback/webpack.config.js @@ -0,0 +1,33 @@ +const Self = require('../../../'); + +module.exports = { + entry: { + 'main': './index.js', + }, + module: { + rules: [ + { + test: /\.css$/, + use: [ + Self.loader, + 'css-loader', + ], + }, + ], + }, + plugins: [ + function() { + this.hooks.compilation.tap("Test", compilation => { + compilation.hooks.beforeChunkAssets.tap("Test", () => { + for (const chunkGroup of compilation.chunkGroups) { + // remove getModuleIndex2 to enforce using fallback + chunkGroup.getModuleIndex2 = undefined; + } + }); + }) + }, + new Self({ + filename: '[name].css', + }), + ], +}; diff --git a/test/cases/simple-async-load-css/a.css b/test/cases/simple-async-load-css/a.css new file mode 100644 index 00000000..31fc5b8a --- /dev/null +++ b/test/cases/simple-async-load-css/a.css @@ -0,0 +1 @@ +body { background: red; } diff --git a/test/cases/simple-async-load-css/async-one.js b/test/cases/simple-async-load-css/async-one.js new file mode 100644 index 00000000..882b0824 --- /dev/null +++ b/test/cases/simple-async-load-css/async-one.js @@ -0,0 +1,2 @@ +import './c.css'; +import './d.css'; diff --git a/test/cases/simple-async-load-css/async-two.js b/test/cases/simple-async-load-css/async-two.js new file mode 100644 index 00000000..e83f933c --- /dev/null +++ b/test/cases/simple-async-load-css/async-two.js @@ -0,0 +1,2 @@ +import './e.css'; +import './f.css'; diff --git a/test/cases/simple-async-load-css/b.css b/test/cases/simple-async-load-css/b.css new file mode 100644 index 00000000..56af6df5 --- /dev/null +++ b/test/cases/simple-async-load-css/b.css @@ -0,0 +1 @@ +body { background: green; } diff --git a/test/cases/simple-async-load-css/c.css b/test/cases/simple-async-load-css/c.css new file mode 100644 index 00000000..4e2dfe9a --- /dev/null +++ b/test/cases/simple-async-load-css/c.css @@ -0,0 +1 @@ +body { background: blue; } diff --git a/test/cases/simple-async-load-css/d.css b/test/cases/simple-async-load-css/d.css new file mode 100644 index 00000000..75945584 --- /dev/null +++ b/test/cases/simple-async-load-css/d.css @@ -0,0 +1 @@ +body { background: yellow; } diff --git a/test/cases/simple-async-load-css/e.css b/test/cases/simple-async-load-css/e.css new file mode 100644 index 00000000..484aaf18 --- /dev/null +++ b/test/cases/simple-async-load-css/e.css @@ -0,0 +1 @@ +body { background: purple; } diff --git a/test/cases/simple-async-load-css/expected/async-one.css b/test/cases/simple-async-load-css/expected/async-one.css new file mode 100644 index 00000000..e28fd9a4 --- /dev/null +++ b/test/cases/simple-async-load-css/expected/async-one.css @@ -0,0 +1,4 @@ +body { background: blue; } + +body { background: yellow; } + diff --git a/test/cases/simple-async-load-css/expected/async-two.css b/test/cases/simple-async-load-css/expected/async-two.css new file mode 100644 index 00000000..83c2b1a9 --- /dev/null +++ b/test/cases/simple-async-load-css/expected/async-two.css @@ -0,0 +1,4 @@ +body { background: purple; } + +body { background: indigo; } + diff --git a/test/cases/simple-async-load-css/expected/main.css b/test/cases/simple-async-load-css/expected/main.css new file mode 100644 index 00000000..f17305d1 --- /dev/null +++ b/test/cases/simple-async-load-css/expected/main.css @@ -0,0 +1,4 @@ +body { background: red; } + +body { background: green; } + diff --git a/test/cases/simple-async-load-css/f.css b/test/cases/simple-async-load-css/f.css new file mode 100644 index 00000000..a0f22c15 --- /dev/null +++ b/test/cases/simple-async-load-css/f.css @@ -0,0 +1 @@ +body { background: indigo; } diff --git a/test/cases/simple-async-load-css/index.js b/test/cases/simple-async-load-css/index.js new file mode 100644 index 00000000..4a384fd0 --- /dev/null +++ b/test/cases/simple-async-load-css/index.js @@ -0,0 +1,5 @@ +import './a.css'; +import './b.css'; +import(/* webpackChunkName: 'async-one' */'./async-one'); +import(/* webpackChunkName: 'async-two' */'./async-two'); + diff --git a/test/cases/simple-async-load-css/webpack.config.js b/test/cases/simple-async-load-css/webpack.config.js new file mode 100644 index 00000000..2a846242 --- /dev/null +++ b/test/cases/simple-async-load-css/webpack.config.js @@ -0,0 +1,23 @@ +const Self = require('../../../'); + +module.exports = { + entry: { + 'main': './index.js', + }, + module: { + rules: [ + { + test: /\.css$/, + use: [ + Self.loader, + 'css-loader', + ], + }, + ], + }, + plugins: [ + new Self({ + filename: '[name].css', + }), + ], +};