From b1d8cfdb0e299baa7ac9a22809f2b5c8bb0020dc Mon Sep 17 00:00:00 2001 From: regexowl Date: Fri, 5 Jun 2026 16:17:48 +0200 Subject: [PATCH] vitest: Fail on console errors and warnings Some changes introduce warning and error console logs in the test output. This will make the test run fail when there's any "mess" and the problems can be fixed in place instead of retroactively when the test output becomes unreadable. "Maximum update depth exceeded" warning was silences for now and will be revisited later. There's just new act warning and stuff coming in almost every week. --- src/test/setup.ts | 43 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/src/test/setup.ts b/src/test/setup.ts index f847331560..7656f0baf3 100644 --- a/src/test/setup.ts +++ b/src/test/setup.ts @@ -30,13 +30,18 @@ vi.stubGlobal('ResizeObserver', MockResizeObserver); vi.mock('@redhat-cloud-services/frontend-components/useChrome', () => ({ default: () => ({ auth: { - getUser: async () => ({ - identity: { - internal: { - org_id: 5, - }, - }, - }), + getUser: () => + new Promise((resolve) => { + setTimeout(() => { + resolve({ + identity: { + internal: { + org_id: 5, + }, + }, + }); + }, 0); + }), }, isBeta: () => true, isProd: () => true, @@ -80,6 +85,26 @@ configure({ }, }); -beforeAll(() => server.listen({ onUnhandledRequest: 'error' })); -afterAll(() => server.close()); +// Fail tests on console warnings and errors +beforeAll(() => { + server.listen({ onUnhandledRequest: 'error' }); + + vi.spyOn(console, 'error').mockImplementation((...args) => { + throw new Error(`Console error:\n${args.join(' ')}`); + }); + + vi.spyOn(console, 'warn').mockImplementation((...args) => { + const message = args.join(' '); + if (message.includes('Maximum update depth exceeded')) { + return; + } + throw new Error(`Console warning:\n${message}`); + }); +}); + +afterAll(() => { + server.close(); + vi.restoreAllMocks(); +}); + afterEach(() => server.resetHandlers());