add test case
This commit is contained in:
parent
00109744f7
commit
200ab0e3bd
|
@ -0,0 +1,61 @@
|
|||
"use strict";
|
||||
|
||||
require("./helpers/warmup-webpack");
|
||||
|
||||
const path = require("path");
|
||||
const webpack = require("..");
|
||||
const { createFsFromVolume, Volume } = require("memfs");
|
||||
|
||||
describe("Watch", () => {
|
||||
jest.setTimeout(10000);
|
||||
|
||||
it("should only compile a single time", done => {
|
||||
let counterBeforeCompile = 0;
|
||||
let counterDone = 0;
|
||||
let counterHandler = 0;
|
||||
const compiler = webpack(
|
||||
{
|
||||
context: path.resolve(__dirname, "fixtures/watch"),
|
||||
watch: true,
|
||||
mode: "development",
|
||||
snapshot: {
|
||||
managedPaths: [/^(.+?[\\/]node_modules[\\/])/]
|
||||
},
|
||||
experiments: {
|
||||
futureDefaults: true
|
||||
},
|
||||
module: {
|
||||
// unsafeCache: false,
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
use: "some-loader"
|
||||
}
|
||||
]
|
||||
},
|
||||
plugins: [
|
||||
c => {
|
||||
c.hooks.beforeCompile.tap("test", () => {
|
||||
counterBeforeCompile++;
|
||||
});
|
||||
c.hooks.done.tap("test", () => {
|
||||
counterDone++;
|
||||
});
|
||||
}
|
||||
]
|
||||
},
|
||||
(err, stats) => {
|
||||
if (err) return done(err);
|
||||
if (stats.hasErrors()) return done(new Error(stats.toString()));
|
||||
counterHandler++;
|
||||
}
|
||||
);
|
||||
compiler.outputFileSystem = createFsFromVolume(new Volume());
|
||||
setTimeout(() => {
|
||||
expect(counterBeforeCompile).toBe(1);
|
||||
expect(counterDone).toBe(1);
|
||||
expect(counterHandler).toBe(1);
|
||||
compiler.close(done);
|
||||
}, 5000);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,3 @@
|
|||
module.exports = function(x) {
|
||||
return x;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"name": "inline-loader",
|
||||
"version": "1.0.0"
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"name": "nested-package1",
|
||||
"version": "1.0.0"
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
import "nested-package1";
|
||||
import "nested-package2";
|
||||
import "inline-loader!nested-package1";
|
||||
import "inline-loader!nested-package2";
|
0
test/fixtures/watch/node_modules/package/node_modules/nested-package2/index.js
generated
vendored
Normal file
0
test/fixtures/watch/node_modules/package/node_modules/nested-package2/index.js
generated
vendored
Normal file
4
test/fixtures/watch/node_modules/package/node_modules/nested-package2/package.json
generated
vendored
Normal file
4
test/fixtures/watch/node_modules/package/node_modules/nested-package2/package.json
generated
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"name": "nested-package2",
|
||||
"version": "1.0.0"
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"name": "package",
|
||||
"version": "1.0.0"
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
module.exports = function(x) {
|
||||
return x;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"name": "some-loader",
|
||||
"version": "1.0.0"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
import "package";
|
||||
import "inline-loader!package";
|
||||
|
||||
import "./local";
|
||||
import "inline-loader!./local";
|
|
@ -0,0 +1,2 @@
|
|||
import "package";
|
||||
import "inline-loader!package";
|
Loading…
Reference in New Issue