Skip to content

Commit cd218ef

Browse files
EslamHikoevilebottnawi
authored andcommitted
feat(server): add callback support for invalidate (#1900)
1 parent bca0341 commit cd218ef

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

lib/Server.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -980,9 +980,9 @@ class Server {
980980
this.contentBaseWatchers.push(watcher);
981981
}
982982

983-
invalidate() {
983+
invalidate(callback) {
984984
if (this.middleware) {
985-
this.middleware.invalidate();
985+
this.middleware.invalidate(callback);
986986
}
987987
}
988988
}

test/InvalidateCallback.test.js

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
'use strict';
2+
3+
const webpack = require('webpack');
4+
const { noop } = require('webpack-dev-middleware/lib/util');
5+
const Server = require('../lib/Server');
6+
const config = require('./fixtures/simple-config/webpack.config');
7+
8+
describe('Invalidate Callback', () => {
9+
describe('Testing callback functions on calling invalidate without callback', () => {
10+
it('should be `noop` (the default callback function)', (done) => {
11+
const compiler = webpack(config);
12+
const server = new Server(compiler);
13+
14+
server.invalidate();
15+
expect(server.middleware.context.callbacks[0]).toBe(noop);
16+
17+
compiler.hooks.done.tap('webpack-dev-server', () => {
18+
server.close(done);
19+
});
20+
21+
compiler.run(() => {});
22+
});
23+
});
24+
25+
describe('Testing callback functions on calling invalidate with callback', () => {
26+
it('should be `callback` function', (done) => {
27+
const compiler = webpack(config);
28+
const callback = jest.fn();
29+
const server = new Server(compiler);
30+
server.invalidate(callback);
31+
32+
expect(server.middleware.context.callbacks[0]).toBe(callback);
33+
34+
compiler.hooks.done.tap('webpack-dev-server', () => {
35+
server.close(done);
36+
});
37+
38+
compiler.run(() => {});
39+
});
40+
});
41+
});

0 commit comments

Comments
 (0)