Skip to content

Commit 7363d50

Browse files
committed
test: update unit tests to use simplified custom matchers
1 parent 7a49e36 commit 7363d50

File tree

16 files changed

+107
-72
lines changed

16 files changed

+107
-72
lines changed

packages/cli/src/lib/compare/compare-command.unit.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ describe('compare-command', () => {
7474
{ ...DEFAULT_CLI_CONFIGURATION, commands: [yargsCompareCommandObject()] },
7575
).parseAsync();
7676

77-
expect(ui()).toHaveLoggedLevel('info');
78-
expect(ui()).toHaveLoggedMessage(
77+
expect(ui()).toHaveLogged(
78+
'info',
7979
`Reports diff written to ${bold(
8080
'.code-pushup/report-diff.json',
8181
)} and ${bold('.code-pushup/report-diff.md')}`,

packages/cli/src/lib/implementation/filter.middleware.unit.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -314,14 +314,14 @@ describe('filterMiddleware', () => {
314314
verbose: true,
315315
});
316316

317-
expect(ui()).toHaveLoggedNthLevel(1, 'info');
318-
expect(ui()).toHaveLoggedNthLevel(2, 'info');
319-
expect(ui()).toHaveLoggedNthMessage(
317+
expect(ui()).toHaveNthLogged(
320318
1,
319+
'info',
321320
'The --skipPlugins argument removed the following categories: c1, c2.',
322321
);
323-
expect(ui()).toHaveLoggedNthMessage(
322+
expect(ui()).toHaveNthLogged(
324323
2,
324+
'info',
325325
'The --onlyPlugins argument removed the following categories: c1, c2.',
326326
);
327327
});

packages/cli/src/lib/implementation/global.utils.unit.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ describe('logErrorBeforeThrow', () => {
6464
} catch {
6565
/* suppress */
6666
}
67-
expect(ui()).toHaveLoggedLevel('error');
68-
expect(ui()).toHaveLoggedMessage('Option validation failed');
67+
expect(ui()).toHaveLogged('error', 'Option validation failed');
6968
});
7069

7170
it('should rethrow errors other than OptionValidationError', async () => {

packages/cli/src/lib/implementation/validate-filter-options.utils.unit.test.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ describe('validateFilterOption', () => {
5050
},
5151
{ itemsToFilter, skippedItems: [], verbose: false },
5252
);
53-
expect(ui()).toHaveLoggedMessage(expected);
53+
expect(ui()).toHaveLogged('warn', expected);
5454
},
5555
);
5656

@@ -93,7 +93,7 @@ describe('validateFilterOption', () => {
9393
},
9494
{ itemsToFilter, skippedItems: [], verbose: false },
9595
);
96-
expect(ui()).toHaveLoggedMessage(expected);
96+
expect(ui()).toHaveLogged('warn', expected);
9797
},
9898
);
9999

@@ -108,7 +108,7 @@ describe('validateFilterOption', () => {
108108
},
109109
{ itemsToFilter: ['p1'], skippedItems: [], verbose: false },
110110
);
111-
expect(ui()).not.toHaveLogged();
111+
expect(ui()).not.toHaveLogs();
112112
});
113113

114114
it('should log a category ignored as a result of plugin filtering', () => {
@@ -128,7 +128,8 @@ describe('validateFilterOption', () => {
128128
{ itemsToFilter: ['p1'], skippedItems: [], verbose: true },
129129
);
130130
expect(ui()).toHaveLoggedTimes(1);
131-
expect(ui()).toHaveLoggedMessage(
131+
expect(ui()).toHaveLogged(
132+
'info',
132133
'The --onlyPlugins argument removed the following categories: c1, c3.',
133134
);
134135
});
@@ -218,12 +219,14 @@ describe('validateFilterOption', () => {
218219
{ plugins, categories },
219220
{ itemsToFilter: ['p1'], skippedItems: ['p1'], verbose: true },
220221
);
221-
expect(ui()).toHaveLoggedNthMessage(
222+
expect(ui()).toHaveNthLogged(
222223
1,
224+
'warn',
223225
'The --skipPlugins argument references a skipped plugin: p1.',
224226
);
225-
expect(ui()).toHaveLoggedNthMessage(
227+
expect(ui()).toHaveNthLogged(
226228
2,
229+
'info',
227230
'The --skipPlugins argument removed the following categories: c1.',
228231
);
229232
});
@@ -457,8 +460,8 @@ describe('validateSkippedCategories', () => {
457460
] as NonNullable<Filterables['categories']>,
458461
true,
459462
);
460-
expect(ui()).toHaveLoggedLevel('info');
461-
expect(ui()).toHaveLoggedMessage(
463+
expect(ui()).toHaveLogged(
464+
'info',
462465
'Category c1 was removed because all its refs were skipped. Affected refs: g1 (group)',
463466
);
464467
});

packages/cli/src/lib/merge-diffs/merge-diffs-command.unit.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ describe('merge-diffs-command', () => {
6464
},
6565
).parseAsync();
6666

67-
expect(ui()).toHaveLoggedMessage(
67+
expect(ui()).toHaveLogged(
68+
'info',
6869
`Reports diff written to ${bold('.code-pushup/report-diff.md')}`,
6970
);
7071
});

packages/cli/src/lib/print-config/print-config-command.unit.test.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,16 @@ describe('print-config-command', () => {
2626
{ ...DEFAULT_CLI_CONFIGURATION, commands: [yargsConfigCommandObject()] },
2727
).parseAsync();
2828

29-
expect(ui()).not.toHaveLoggedMessageContaining('"$0":');
30-
expect(ui()).not.toHaveLoggedMessageContaining('"_":');
29+
expect(ui()).not.toHaveLogged('log', expect.stringContaining('"$0":'));
30+
expect(ui()).not.toHaveLogged('log', expect.stringContaining('"_":'));
3131

32-
expect(ui()).toHaveLoggedMessageContaining('"outputDir": "destinationDir"');
33-
expect(ui()).not.toHaveLoggedMessageContaining('"output-dir":');
32+
expect(ui()).toHaveLogged(
33+
'log',
34+
expect.stringContaining('"outputDir": "destinationDir"'),
35+
);
36+
expect(ui()).not.toHaveLogged(
37+
'log',
38+
expect.stringContaining('"output-dir":'),
39+
);
3440
});
3541
});

packages/core/src/lib/collect-and-persist.unit.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,6 @@ describe('collectAndPersistReports', () => {
114114
await collectAndPersistReports(
115115
MINIMAL_CONFIG_MOCK as CollectAndPersistReportsOptions,
116116
);
117-
expect(ui()).toHaveLoggedMessage('Made with ❤ by code-pushup.dev');
117+
expect(ui()).toHaveLogged('log', 'Made with ❤ by code-pushup.dev');
118118
});
119119
});

packages/core/src/lib/implementation/persist.unit.test.ts

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -90,35 +90,54 @@ describe('persistReport', () => {
9090
describe('logPersistedResults', () => {
9191
it('should log report sizes correctly`', () => {
9292
logPersistedResults([{ status: 'fulfilled', value: ['out.json', 10_000] }]);
93-
expect(ui()).toHaveLoggedNthLevel(1, 'success');
94-
expect(ui()).toHaveLoggedNthMessageContaining(
93+
expect(ui()).toHaveNthLogged(
9594
1,
96-
'Generated reports successfully: ',
95+
'success',
96+
expect.stringContaining('Generated reports successfully: '),
97+
);
98+
expect(ui()).toHaveNthLogged(
99+
2,
100+
'success',
101+
expect.stringContaining('9.77 kB'),
102+
);
103+
expect(ui()).toHaveNthLogged(
104+
2,
105+
'success',
106+
expect.stringContaining('out.json'),
97107
);
98-
expect(ui()).toHaveLoggedNthMessageContaining(2, '9.77 kB');
99-
expect(ui()).toHaveLoggedNthMessageContaining(2, 'out.json');
100108
});
101109

102110
it('should log fails correctly`', () => {
103111
logPersistedResults([{ status: 'rejected', reason: 'fail' }]);
104-
expect(ui()).toHaveLoggedNthLevel(1, 'warn');
105-
expect(ui()).toHaveLoggedNthMessage(1, 'Generated reports failed: ');
106-
expect(ui()).toHaveLoggedNthMessageContaining(2, 'fail');
112+
expect(ui()).toHaveNthLogged(1, 'warn', 'Generated reports failed: ');
113+
expect(ui()).toHaveNthLogged(2, 'warn', expect.stringContaining('fail'));
107114
});
108115

109116
it('should log report sizes and fails correctly`', () => {
110117
logPersistedResults([
111118
{ status: 'fulfilled', value: ['out.json', 10_000] },
112119
{ status: 'rejected', reason: 'fail' },
113120
]);
114-
expect(ui()).toHaveLoggedNthLevel(1, 'success');
115-
expect(ui()).toHaveLoggedNthMessage(1, 'Generated reports successfully: ');
116-
expect(ui()).toHaveLoggedNthMessageContaining(2, 'out.json');
117-
expect(ui()).toHaveLoggedNthMessageContaining(2, '9.77 kB');
118-
expect(ui()).toHaveLoggedNthMessageContaining(
121+
expect(ui()).toHaveNthLogged(
122+
1,
123+
'success',
124+
'Generated reports successfully: ',
125+
);
126+
expect(ui()).toHaveNthLogged(
127+
2,
128+
'success',
129+
expect.stringContaining('out.json'),
130+
);
131+
expect(ui()).toHaveNthLogged(
132+
2,
133+
'success',
134+
expect.stringContaining('9.77 kB'),
135+
);
136+
expect(ui()).toHaveNthLogged(
119137
3,
120-
'Generated reports failed: ',
138+
'warn',
139+
expect.stringContaining('Generated reports failed: '),
121140
);
122-
expect(ui()).toHaveLoggedNthMessageContaining(3, 'fail');
141+
expect(ui()).toHaveNthLogged(3, 'warn', expect.stringContaining('fail'));
123142
});
124143
});

packages/core/src/lib/merge-diffs.unit.test.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,19 @@ describe('mergeDiffs', () => {
6363
),
6464
).resolves.toBe(path.join(MEMFS_VOLUME, 'report-diff.md'));
6565

66-
expect(ui()).toHaveLoggedNthMessageContaining(
66+
expect(ui()).toHaveNthLogged(
6767
1,
68-
'Skipped invalid report diff - Failed to read JSON file missing-report-diff.json',
68+
'warn',
69+
expect.stringContaining(
70+
'Skipped invalid report diff - Failed to read JSON file missing-report-diff.json',
71+
),
6972
);
70-
expect(ui()).toHaveLoggedNthMessageContaining(
73+
expect(ui()).toHaveNthLogged(
7174
2,
72-
'Skipped invalid report diff - Invalid reports diff in invalid-report-diff.json',
75+
'warn',
76+
expect.stringContaining(
77+
'Skipped invalid report diff - Invalid reports diff in invalid-report-diff.json',
78+
),
7379
);
7480
});
7581
});

packages/plugin-coverage/src/lib/runner/lcov/lcov-runner.unit.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,8 @@ end_of_record
9898
path.join('coverage', 'lcov.info'),
9999
]);
100100

101-
expect(ui()).toHaveLoggedMessage(
101+
expect(ui()).toHaveLogged(
102+
'warn',
102103
`Coverage plugin: Empty lcov report file detected at ${path.join(
103104
'coverage',
104105
'lcov.info',

0 commit comments

Comments
 (0)