webpack/test/WatcherEvents.test.js

73 lines
1.6 KiB
JavaScript
Raw Normal View History

"use strict";
const path = require("path");
2025-07-03 17:06:45 +08:00
const { Volume, createFsFromVolume } = require("memfs");
2018-12-09 21:26:35 +08:00
const webpack = require("..");
const createCompiler = (config) => {
const compiler = webpack(config);
compiler.outputFileSystem = createFsFromVolume(new Volume());
return compiler;
};
2024-07-31 11:31:11 +08:00
const createSingleCompiler = () =>
createCompiler({
context: path.join(__dirname, "fixtures"),
entry: "./a.js"
});
2024-07-31 11:31:11 +08:00
const createMultiCompiler = () =>
createCompiler([
2018-02-25 18:46:17 +08:00
{
context: path.join(__dirname, "fixtures"),
entry: "./a.js"
}
]);
2018-01-24 23:00:43 +08:00
describe("WatcherEvents", () => {
2018-02-25 18:46:17 +08:00
if (process.env.NO_WATCH_TESTS) {
2024-06-11 20:32:02 +08:00
// eslint-disable-next-line jest/no-disabled-tests
2018-04-12 05:54:02 +08:00
it.skip("long running tests excluded", () => {});
2017-12-20 23:53:56 +08:00
return;
}
2018-01-24 23:00:43 +08:00
jest.setTimeout(10000);
it("should emit 'watch-close' when using single-compiler mode and the compiler is not running", (done) => {
let called = false;
const compiler = createSingleCompiler();
2025-07-08 22:46:17 +08:00
const watcher = compiler.watch({}, (err, _stats) => {
2018-01-24 23:00:43 +08:00
expect(called).toBe(true);
done(err);
});
2017-12-20 23:51:24 +08:00
compiler.hooks.watchClose.tap("WatcherEventsTest", () => {
2017-05-29 16:52:30 +08:00
called = true;
});
2017-12-20 23:51:24 +08:00
compiler.hooks.done.tap("WatcherEventsTest", () => {
watcher.close();
});
});
it("should emit 'watch-close' when using multi-compiler mode and the compiler is not running", (done) => {
let called = false;
const compiler = createMultiCompiler();
2025-07-08 22:46:17 +08:00
const watcher = compiler.watch({}, (err, _stats) => {
2018-01-24 23:00:43 +08:00
expect(called).toBe(true);
done(err);
});
2017-12-20 23:51:24 +08:00
compiler.hooks.watchClose.tap("WatcherEventsTest", () => {
2017-05-29 16:52:30 +08:00
called = true;
});
2017-12-20 23:51:24 +08:00
compiler.hooks.done.tap("WatcherEventsTest", () => {
watcher.close();
});
});
});