forked from jestjs/jest
-
Notifications
You must be signed in to change notification settings - Fork 0
/
typescriptConfigFile.test.ts
109 lines (97 loc) · 3.4 KB
/
typescriptConfigFile.test.ts
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
/**
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import {tmpdir} from 'os';
import * as path from 'path';
import {cleanup, writeFiles} from '../Utils';
import runJest from '../runJest';
const DIR = path.resolve(tmpdir(), 'typescript-config-file');
beforeEach(() => cleanup(DIR));
afterEach(() => cleanup(DIR));
test('works with single typescript config that imports something', () => {
writeFiles(DIR, {
'__tests__/mytest.alpha.js': "test('alpha', () => expect(1).toBe(1));",
'__tests__/mytest.common.js': "test('common', () => expect(1).toBe(1));",
'alpha.config.ts': `
import commonRegex from './common';
export default {
testRegex: [ commonRegex, '__tests__/mytest.alpha.js' ]
};`,
'common.ts': "export default '__tests__/mytest.common.js$';",
});
const {stdout, stderr, exitCode} = runJest(
DIR,
['--projects', 'alpha.config.ts'],
{
skipPkgJsonCheck: true,
},
);
expect(stderr).toContain('PASS __tests__/mytest.alpha.js');
expect(stderr).toContain('PASS __tests__/mytest.common.js');
expect(stderr).toContain('Test Suites: 2 passed, 2 total');
expect(exitCode).toBe(0);
expect(stdout).toBe('');
});
test('works with multiple typescript configs', () => {
writeFiles(DIR, {
'__tests__/mytest.alpha.js': "test('alpha', () => expect(1).toBe(1));",
'__tests__/mytest.beta.js': "test('beta', () => expect(1).toBe(1));",
'alpha.config.ts': `
export default {
testRegex: '__tests__/mytest.alpha.js'
};`,
'beta.config.ts': `
export default {
testRegex: '__tests__/mytest.beta.js'
};`,
});
const {stdout, stderr, exitCode} = runJest(
DIR,
['--projects', 'alpha.config.ts', 'beta.config.ts'],
{
skipPkgJsonCheck: true,
},
);
expect(stderr).toContain('PASS __tests__/mytest.alpha.js');
expect(stderr).toContain('PASS __tests__/mytest.beta.js');
expect(stderr).toContain('Test Suites: 2 passed, 2 total');
expect(exitCode).toBe(0);
expect(stdout).toBe('');
});
test('works with multiple typescript configs that import something', () => {
writeFiles(DIR, {
'__tests__/mytest.alpha.js': "test('alpha', () => expect(1).toBe(1));",
'__tests__/mytest.beta.js': "test('beta', () => expect(1).toBe(1));",
'__tests__/mytest.common.js': "test('common', () => expect(1).toBe(1));",
'alpha.config.ts': `
import commonRegex from './common';
export default {
testRegex: [ commonRegex, '__tests__/mytest.alpha.js' ]
};`,
'beta.config.ts': `
import commonRegex from './common';
export default {
testRegex: [ commonRegex, '__tests__/mytest.beta.js' ]
};`,
'common.ts': "export default '__tests__/mytest.common.js$';",
});
const {stdout, stderr, exitCode} = runJest(
DIR,
['--projects', 'alpha.config.ts', 'beta.config.ts'],
{
skipPkgJsonCheck: true,
},
);
expect(stderr).toContain('PASS __tests__/mytest.alpha.js');
expect(stderr).toContain('PASS __tests__/mytest.beta.js');
expect(stderr).toContain('PASS __tests__/mytest.common.js');
expect(stderr.replace('PASS __tests__/mytest.common.js', '')).toContain(
'PASS __tests__/mytest.common.js',
);
expect(stderr).toContain('Test Suites: 4 passed, 4 total');
expect(exitCode).toBe(0);
expect(stdout).toBe('');
});