Skip to content

Commit 4f646db

Browse files
committed
test: refactor
1 parent 3888b32 commit 4f646db

File tree

8 files changed

+159
-404
lines changed

8 files changed

+159
-404
lines changed

test/e2e/DevServer.test.js

+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
'use strict';
2+
3+
const testBin = require('../helpers/test-bin');
4+
const isWebpack5 = require('../helpers/isWebpack5');
5+
6+
describe('DevServer', () => {
7+
const webpack5Test = isWebpack5 ? it : it.skip;
8+
9+
it('should add devServer entry points to a single entry point', (done) => {
10+
testBin('--config ./test/fixtures/dev-server/default-config.js')
11+
.then((output) => {
12+
expect(output.exitCode).toEqual(0);
13+
expect(output.stderr).toContain('client/default/index.js?');
14+
done();
15+
})
16+
.catch(done);
17+
});
18+
19+
it('should add devServer entry points to a multi entry point object', (done) => {
20+
testBin('--config ./test/fixtures/dev-server/multi-entry.js')
21+
.then((output) => {
22+
expect(output.exitCode).toEqual(0);
23+
expect(output.stderr).toContain('client/default/index.js?');
24+
expect(output.stderr).toContain('foo.js');
25+
expect(output.stderr).toContain('bar.js');
26+
done();
27+
})
28+
.catch(done);
29+
});
30+
31+
webpack5Test('should supports entry as descriptor', (done) => {
32+
testBin('--config ./test/fixtures/entry-as-descriptor/webpack.config --stats detailed')
33+
.then((output) => {
34+
expect(output.exitCode).toEqual(0);
35+
expect(output.stderr).toContain('foo.js');
36+
done();
37+
})
38+
.catch(done);
39+
});
40+
41+
it('should only prepends devServer entry points to "web" target', (done) => {
42+
testBin('--config ./test/fixtures/dev-server/default-config.js --target web')
43+
.then((output) => {
44+
expect(output.exitCode).toEqual(0);
45+
expect(output.stderr).toContain('client/default/index.js?');
46+
expect(output.stderr).toContain('foo.js');
47+
done();
48+
})
49+
.catch(done);
50+
});
51+
52+
it('should not prepend devServer entry points to "node" target', (done) => {
53+
testBin('--config ./test/fixtures/dev-server/default-config.js --target node')
54+
.then((output) => {
55+
expect(output.exitCode).toEqual(0);
56+
expect(output.stderr).not.toContain('client/default/index.js?');
57+
expect(output.stderr).toContain('foo.js');
58+
done();
59+
})
60+
.catch(done);
61+
});
62+
63+
it('should prepends the hot runtime to "node" target as well', (done) => {
64+
testBin('--config ./test/fixtures/dev-server/default-config.js --target node --hot')
65+
.then((output) => {
66+
expect(output.exitCode).toEqual(0);
67+
expect(output.stderr).toContain('webpack/hot/dev-server');
68+
done();
69+
})
70+
.catch(done);
71+
});
72+
73+
it('does not use client.path when default', (done) => {
74+
testBin('--config ./test/fixtures/dev-server/client-default-path-config.js')
75+
.then((output) => {
76+
expect(output.exitCode).toEqual(0);
77+
expect(output.stderr).not.toContain('&path=/ws');
78+
done();
79+
})
80+
.catch(done);
81+
});
82+
83+
it('should use client.path when custom', (done) => {
84+
testBin('--config ./test/fixtures/dev-server/client-custom-path-config.js')
85+
.then((output) => {
86+
expect(output.exitCode).toEqual(0);
87+
expect(output.stderr).toContain('&path=/custom/path');
88+
done();
89+
})
90+
.catch(done);
91+
});
92+
});

test/fixtures/dev-server/bar.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log('I am bar');
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const { resolve } = require('path');
2+
3+
module.exports = {
4+
mode: 'development',
5+
stats: 'detailed',
6+
entry: resolve(__dirname, './foo.js'),
7+
devServer: {
8+
client: {
9+
path: '/custom/path',
10+
},
11+
transportMode: {
12+
server: 'sockjs',
13+
client: 'sockjs',
14+
},
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const { resolve } = require('path');
2+
3+
module.exports = {
4+
mode: 'development',
5+
stats: 'detailed',
6+
entry: resolve(__dirname, './foo.js'),
7+
devServer: {
8+
client: {
9+
path: '/ws',
10+
},
11+
transportMode: {
12+
server: 'sockjs',
13+
client: 'sockjs',
14+
},
15+
}
16+
}
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const { resolve } = require('path');
2+
3+
module.exports = {
4+
mode: 'development',
5+
stats: 'detailed',
6+
entry: resolve(__dirname, './foo.js'),
7+
devServer: {
8+
client: {
9+
path: '/custom/path',
10+
},
11+
transportMode: {
12+
server: 'sockjs',
13+
client: 'sockjs',
14+
},
15+
}
16+
}

test/fixtures/dev-server/foo.js

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log('I am foo');
+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const { resolve } = require('path');
2+
3+
module.exports = {
4+
mode: 'development',
5+
stats: 'detailed',
6+
context: __dirname,
7+
entry: {
8+
foo: resolve(__dirname, './foo.js'),
9+
bar: resolve(__dirname, './bar.js'),
10+
},
11+
devServer: {
12+
transportMode: {
13+
server: 'sockjs',
14+
client: 'sockjs',
15+
},
16+
}
17+
}

0 commit comments

Comments
 (0)