-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
update-base-jest-config.spec.ts
100 lines (87 loc) · 2.63 KB
/
update-base-jest-config.spec.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
const mockGetJestProjects = jest.fn(() => []);
jest.mock('../../utils/config/get-jest-projects', () => ({
getJestProjects: mockGetJestProjects,
}));
const mockResolveConfig = jest.fn(() =>
Promise.resolve({ singleQuote: true, endOfLine: 'lf' })
);
import { Tree } from '@nrwl/devkit';
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
import update from './update-base-jest-config';
describe('update 12.6.0', () => {
let tree: Tree;
beforeEach(() => {
tree = createTreeWithEmptyWorkspace();
tree.write(
'jest.config.js',
`module.exports = {
projects: ['<rootDir>/test-1']
}`
);
});
beforeEach(async () => {
const prettier = await import('prettier');
prettier.resolveConfig = mockResolveConfig as any;
});
test('no projects key configured', async () => {
tree.write('jest.config.js', 'module.exports = {}');
await update(tree);
const result = tree.read('jest.config.js').toString();
expect(result).toMatchInlineSnapshot(`
"const { getJestProjects } = require('@nrwl/jest');
module.exports = { projects: getJestProjects() };
"
`);
});
test('all jest projects covered', async () => {
mockGetJestProjects.mockImplementation(() => ['<rootDir>/test-1']);
await update(tree);
const result = tree.read('jest.config.js').toString();
expect(result).toMatchInlineSnapshot(`
"const { getJestProjects } = require('@nrwl/jest');
module.exports = { projects: getJestProjects() };
"
`);
});
test('some jest projects uncovered', async () => {
mockGetJestProjects.mockImplementation(() => ['<rootDir>/test-2']);
await update(tree);
const result = tree.read('jest.config.js').toString();
expect(result).toMatchInlineSnapshot(`
"const { getJestProjects } = require('@nrwl/jest');
module.exports = { projects: [...getJestProjects(), '<rootDir>/test-1'] };
"
`);
});
test('proper formatting with multiple uncovered jest projects', async () => {
mockGetJestProjects.mockImplementation(() => ['<rootDir>/test-2']);
tree.write(
'jest.config.js',
`
module.exports = {
projects: [
'<rootDir>/test-1',
'<rootDir>/test-2',
'<rootDir>/test-3',
'<rootDir>/test-4',
'<rootDir>/test-5'
]
}`
);
await update(tree);
const result = tree.read('jest.config.js').toString();
expect(result).toMatchInlineSnapshot(`
"const { getJestProjects } = require('@nrwl/jest');
module.exports = {
projects: [
...getJestProjects(),
'<rootDir>/test-1',
'<rootDir>/test-3',
'<rootDir>/test-4',
'<rootDir>/test-5',
],
};
"
`);
});
});