-
-
Notifications
You must be signed in to change notification settings - Fork 6.4k
/
logDebugMessages.test.ts
65 lines (56 loc) · 1.8 KB
/
logDebugMessages.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
/**
* 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 {wrap} from 'jest-snapshot-serializer-raw';
import {makeGlobalConfig, makeProjectConfig} from '@jest/test-utils';
import logDebugMessages from '../logDebugMessages';
jest.mock('../../../package.json', () => ({version: 123}));
jest.mock('myRunner', () => ({name: 'My Runner'}), {virtual: true});
const getOutputStream = (resolve: (message: string) => void) =>
({
write(message: string) {
resolve(message);
},
} as NodeJS.WriteStream);
it('prints the jest version', async () => {
expect.assertions(1);
const message = await new Promise<string>(resolve => {
logDebugMessages(
makeGlobalConfig({watch: true}),
makeProjectConfig({testRunner: 'myRunner'}),
getOutputStream(resolve),
);
});
expect(JSON.parse(message).version).toBe(123);
});
it('prints the test framework name', async () => {
expect.assertions(1);
const message = await new Promise<string>(resolve => {
logDebugMessages(
makeGlobalConfig({watch: true}),
makeProjectConfig({testRunner: 'myRunner'}),
getOutputStream(resolve),
);
});
expect(JSON.parse(message).configs.testRunner).toBe('myRunner');
});
it('prints the config object', async () => {
expect.assertions(1);
const globalConfig = makeGlobalConfig({
watch: true,
});
const config = makeProjectConfig({
automock: false,
rootDir: '/path/to/dir',
roots: ['path/to/dir/test'],
testRunner: 'myRunner',
});
const message = await new Promise<string>(resolve => {
logDebugMessages(globalConfig, config, getOutputStream(resolve));
});
expect(wrap(message)).toMatchSnapshot();
});