forked from jestjs/jest
/
esmConfigFile.test.ts
80 lines (68 loc) 路 2.12 KB
/
esmConfigFile.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
/**
* 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 {resolve} from 'path';
import execa = require('execa');
import {existsSync} from 'graceful-fs';
import {onNodeVersions} from '@jest/test-utils';
import {getConfig} from '../runJest';
test('reads config from cjs file', () => {
const {configs} = getConfig('esm-config/cjs', [], {
skipPkgJsonCheck: true,
});
expect(configs).toHaveLength(1);
expect(configs[0].displayName).toEqual({
color: 'white',
name: 'Config from cjs file',
});
});
onNodeVersions('>=12.17.0', () => {
test('reads config from mjs file', () => {
const {configs} = getConfig('esm-config/mjs', [], {
skipPkgJsonCheck: true,
});
expect(configs).toHaveLength(1);
expect(configs[0].displayName).toEqual({
color: 'white',
name: 'Config from mjs file',
});
});
test('reads config from js file when package.json#type=module', () => {
const {configs} = getConfig('esm-config/js', [], {
skipPkgJsonCheck: true,
});
expect(configs).toHaveLength(1);
expect(configs[0].displayName).toEqual({
color: 'white',
name: 'Config from js file',
});
});
describe('typescript', () => {
beforeAll(async () => {
// the typescript config test needs `@jest/types` to be built
const cwd = resolve(__dirname, '../../');
const typesPackageDirectory = 'packages/jest-types';
const indexDTsFile = resolve(
cwd,
typesPackageDirectory,
'build/index.d.ts',
);
if (!existsSync(indexDTsFile)) {
await execa('tsc', ['-b', typesPackageDirectory], {cwd});
}
}, 60_000);
test('reads config from ts file when package.json#type=module', () => {
const {configs} = getConfig('esm-config/ts', [], {
skipPkgJsonCheck: true,
});
expect(configs).toHaveLength(1);
expect(configs[0].displayName).toEqual({
color: 'white',
name: 'Config from ts file',
});
});
});
});