webpack/test/WatcherEvents.test.js

75 lines
1.6 KiB
JavaScript
Raw Normal View History

"use strict";
/*globals describe it before after */
const path = require("path");
2017-11-15 21:08:11 +08:00
require("should");
const MemoryFs = require("memory-fs");
const webpack = require("../");
const createCompiler = config => {
const compiler = webpack(config);
compiler.outputFileSystem = new MemoryFs();
return compiler;
};
const createSingleCompiler = () => {
return createCompiler({
context: path.join(__dirname, "fixtures"),
entry: "./a.js"
});
};
const createMultiCompiler = () => {
2018-02-25 09:00:20 +08:00
return createCompiler([
{
context: path.join(__dirname, "fixtures"),
entry: "./a.js"
}
]);
};
2017-05-29 16:52:30 +08:00
describe("WatcherEvents", function() {
2018-02-25 09:00:20 +08:00
if (process.env.NO_WATCH_TESTS) {
2017-12-20 23:53:56 +08:00
it("long running tests excluded");
return;
}
2017-05-29 16:52:30 +08:00
this.timeout(10000);
2018-03-26 22:56:10 +08:00
it("should emit 'watch-close' when using single-compiler mode and the compiler is not running", function(done) {
let called = false;
const compiler = createSingleCompiler();
const watcher = compiler.watch({}, (err, stats) => {
called.should.be.exactly(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();
});
});
2018-03-26 22:56:10 +08:00
it("should emit 'watch-close' when using multi-compiler mode and the compiler is not running", function(done) {
let called = false;
const compiler = createMultiCompiler();
const watcher = compiler.watch({}, (err, stats) => {
called.should.be.exactly(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();
});
});
});