/
config-name.test.js
131 lines (110 loc) · 5.03 KB
/
config-name.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
'use strict';
const { run } = require('../utils/test-utils');
const { stat } = require('fs');
const { resolve } = require('path');
describe('--config-name flag', () => {
it('should select only the config whose name is passed with --config-name', (done) => {
const { stderr, stdout, exitCode } = run(__dirname, ['--config-name', 'first'], false);
expect(stderr).toBeFalsy();
expect(stdout).toContain('first');
expect(stdout).not.toContain('second');
expect(stdout).not.toContain('third');
expect(exitCode).toBe(0);
stat(resolve(__dirname, './dist/dist-first.js'), (err, stats) => {
expect(err).toBe(null);
expect(stats.isFile()).toBe(true);
done();
});
});
it('should work with multiple values for --config-name', (done) => {
const { stderr, stdout, exitCode } = run(__dirname, ['--config-name', 'first', '--config-name', 'third'], false);
expect(stderr).toBeFalsy();
expect(stdout).toContain('first');
expect(stdout).not.toContain('second');
expect(stdout).toContain('third');
expect(exitCode).toBe(0);
stat(resolve(__dirname, './dist/dist-third.js'), (err, stats) => {
expect(err).toBe(null);
expect(stats.isFile()).toBe(true);
stat(resolve(__dirname, './dist/dist-first.js'), (err, stats) => {
expect(err).toBe(null);
expect(stats.isFile()).toBe(true);
done();
});
});
});
it('should log error if invalid config name is provided', () => {
const { stderr, stdout, exitCode } = run(__dirname, ['--config-name', 'test'], false);
expect(stderr).toContain('Configuration with name "test" was not found.');
expect(stdout).toBeFalsy();
expect(exitCode).toBe(2);
});
it('should log error if multiple configurations are not found', () => {
const { stderr, stdout, exitCode } = run(__dirname, ['--config-name', 'test', '-c', 'single-config.js'], false);
expect(stderr).toContain('Configuration with name "test" was not found.');
expect(stdout).toBeFalsy();
expect(exitCode).toBe(2);
});
it('should log error if multiple configurations are not found #1', () => {
const { stderr, stdout, exitCode } = run(
__dirname,
['--config-name', 'test', '--config-name', 'bar', '-c', 'single-config.js'],
false,
);
expect(stderr).toContain('Configuration with name "test" was not found.');
expect(stderr).toContain('Configuration with name "bar" was not found.');
expect(stdout).toBeFalsy();
expect(exitCode).toBe(2);
});
it('should log error if multiple configurations are not found #2', () => {
const { stderr, stdout, exitCode } = run(
__dirname,
['--config-name', 'first', '--config-name', 'bar', '-c', 'single-config.js'],
false,
);
expect(stderr).not.toContain('Configuration with name "first" was not found.');
expect(stderr).toContain('Configuration with name "bar" was not found.');
expect(stdout).toBeFalsy();
expect(exitCode).toBe(2);
});
it('should work with config as a function', (done) => {
const { stderr, stdout, exitCode } = run(__dirname, ['--config', 'function-config.js', '--config-name', 'first'], false);
expect(stderr).toBeFalsy();
expect(stdout).toContain('first');
expect(stdout).not.toContain('second');
expect(stdout).not.toContain('third');
expect(exitCode).toBe(0);
stat(resolve(__dirname, './dist/dist-first.js'), (err, stats) => {
expect(err).toBe(null);
expect(stats.isFile()).toBe(true);
done();
});
});
it('should work with multiple values for --config-name when the config is a function', (done) => {
const { stderr, stdout, exitCode } = run(
__dirname,
['--config', 'function-config.js', '--config-name', 'first', '--config-name', 'third'],
false,
);
expect(stderr).toBeFalsy();
expect(stdout).toContain('first');
expect(stdout).not.toContain('second');
expect(stdout).toContain('third');
expect(exitCode).toBe(0);
stat(resolve(__dirname, './dist/dist-third.js'), (err, stats) => {
expect(err).toBe(null);
expect(stats.isFile()).toBe(true);
stat(resolve(__dirname, './dist/dist-first.js'), (err, stats) => {
expect(err).toBe(null);
expect(stats.isFile()).toBe(true);
done();
});
});
});
it('should log error if invalid config name is provided ', () => {
const { stderr, stdout, exitCode } = run(__dirname, ['--config', 'function-config.js', '--config-name', 'test'], false);
expect(stderr).toContain('Configuration with name "test" was not found.');
expect(stdout).toBeFalsy();
expect(exitCode).toBe(2);
});
});