Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit 8ef31d7

Browse files
committed
Tweak filterConsole
1 parent 72e95f1 commit 8ef31d7

File tree

6 files changed

+28
-39
lines changed

6 files changed

+28
-39
lines changed

test/components/structures/auth/ForgotPassword-test.tsx

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ describe("<ForgotPassword>", () => {
4040
let onComplete: () => void;
4141
let onLoginClick: () => void;
4242
let renderResult: RenderResult;
43-
let restoreConsole: () => void;
4443

4544
const typeIntoField = async (label: string, value: string): Promise<void> => {
4645
await act(async () => {
@@ -63,14 +62,14 @@ describe("<ForgotPassword>", () => {
6362
});
6463
};
6564

66-
beforeEach(() => {
67-
restoreConsole = filterConsole(
68-
// not implemented by js-dom https://github.com/jsdom/jsdom/issues/1937
69-
"Not implemented: HTMLFormElement.prototype.requestSubmit",
70-
// not of interested for this test
71-
"Starting load of AsyncWrapper for modal",
72-
);
65+
filterConsole(
66+
// not implemented by js-dom https://github.com/jsdom/jsdom/issues/1937
67+
"Not implemented: HTMLFormElement.prototype.requestSubmit",
68+
// not of interested for this test
69+
"Starting load of AsyncWrapper for modal",
70+
);
7371

72+
beforeEach(() => {
7473
client = stubClient();
7574
mocked(createClient).mockReturnValue(client);
7675

@@ -87,7 +86,6 @@ describe("<ForgotPassword>", () => {
8786
afterEach(() => {
8887
// clean up modals
8988
Modal.closeCurrentModal("force");
90-
restoreConsole?.();
9189
});
9290

9391
beforeAll(() => {

test/components/views/avatars/RoomAvatar-test.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { MatrixClient, Room } from "matrix-js-sdk/src/matrix";
2020
import { mocked } from "jest-mock";
2121

2222
import RoomAvatar from "../../../../src/components/views/avatars/RoomAvatar";
23-
import { stubClient } from "../../../test-utils";
23+
import { filterConsole, stubClient } from "../../../test-utils";
2424
import DMRoomMap from "../../../../src/utils/DMRoomMap";
2525
import { LocalRoom } from "../../../../src/models/LocalRoom";
2626
import * as AvatarModule from "../../../../src/Avatar";
@@ -29,6 +29,11 @@ import { DirectoryMember } from "../../../../src/utils/direct-messages";
2929
describe("RoomAvatar", () => {
3030
let client: MatrixClient;
3131

32+
filterConsole(
33+
// unrelated for this test
34+
"Room !room:example.com does not have an m.room.create event",
35+
);
36+
3237
beforeAll(() => {
3338
client = stubClient();
3439
const dmRoomMap = new DMRoomMap(client);

test/components/views/rooms/RoomTile-test.tsx

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,20 +75,19 @@ describe("RoomTile", () => {
7575
};
7676

7777
let client: Mocked<MatrixClient>;
78-
let restoreConsole: () => void;
7978
let voiceBroadcastInfoEvent: MatrixEvent;
8079
let room: Room;
8180
let renderResult: RenderResult;
8281
let sdkContext: TestSdkContext;
8382

83+
filterConsole(
84+
// irrelevant for this test
85+
"Room !1:example.org does not have an m.room.create event",
86+
);
87+
8488
beforeEach(() => {
8589
sdkContext = new TestSdkContext();
8690

87-
restoreConsole = filterConsole(
88-
// irrelevant for this test
89-
"Room !1:example.org does not have an m.room.create event",
90-
);
91-
9291
client = mocked(stubClient());
9392
sdkContext.client = client;
9493
DMRoomMap.makeShared();
@@ -105,7 +104,6 @@ describe("RoomTile", () => {
105104
});
106105

107106
afterEach(() => {
108-
restoreConsole();
109107
jest.clearAllMocks();
110108
});
111109

test/components/views/user-onboarding/UserOnboardingPage-test.tsx

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ jest.mock("../../../../src/components/structures/HomePage", () => ({
3333
}));
3434

3535
describe("UserOnboardingPage", () => {
36-
let restoreConsole: () => void;
37-
3836
const renderComponent = async (): Promise<RenderResult> => {
3937
const renderResult = render(<UserOnboardingPage />);
4038
await act(async () => {
@@ -43,12 +41,10 @@ describe("UserOnboardingPage", () => {
4341
return renderResult;
4442
};
4543

46-
beforeAll(() => {
47-
restoreConsole = filterConsole(
48-
// unrelated for this test
49-
"could not update user onboarding context",
50-
);
51-
});
44+
filterConsole(
45+
// unrelated for this test
46+
"could not update user onboarding context",
47+
);
5248

5349
beforeEach(() => {
5450
stubClient();
@@ -60,10 +56,6 @@ describe("UserOnboardingPage", () => {
6056
jest.restoreAllMocks();
6157
});
6258

63-
afterAll(() => {
64-
restoreConsole();
65-
});
66-
6759
describe("when the user registered before the cutoff date", () => {
6860
beforeEach(() => {
6961
jest.spyOn(MatrixClientPeg, "userRegisteredAfter").mockReturnValue(false);

test/test-utils/console.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ const originalFunctions: FilteredConsole = {
2626

2727
/**
2828
* Allows to filter out specific messages in console.*.
29+
* Automagically restores the original function by implementing an afterAll hook.
2930
*
3031
* @param ignoreList Messages to be filtered
31-
* @returns function to restore the console
3232
*/
33-
export const filterConsole = (...ignoreList: string[]): (() => void) => {
33+
export const filterConsole = (...ignoreList: string[]): void => {
3434
for (const [key, originalFunction] of Object.entries(originalFunctions)) {
3535
window.console[key as keyof FilteredConsole] = (...data: any[]) => {
3636
const message = data?.[0]?.message || data?.[0];
@@ -43,9 +43,9 @@ export const filterConsole = (...ignoreList: string[]): (() => void) => {
4343
};
4444
}
4545

46-
return () => {
46+
afterAll(() => {
4747
for (const [key, originalFunction] of Object.entries(originalFunctions)) {
4848
window.console[key as keyof FilteredConsole] = originalFunction;
4949
}
50-
};
50+
});
5151
};

test/voice-broadcast/components/molecules/VoiceBroadcastRecordingPip-test.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ describe("VoiceBroadcastRecordingPip", () => {
6262
let infoEvent: MatrixEvent;
6363
let recording: VoiceBroadcastRecording;
6464
let renderResult: RenderResult;
65-
let restoreConsole: () => void;
6665

6766
const renderPip = async (state: VoiceBroadcastInfoState) => {
6867
infoEvent = mkVoiceBroadcastInfoStateEvent(roomId, state, client.getUserId() || "", client.getDeviceId() || "");
@@ -85,6 +84,8 @@ describe("VoiceBroadcastRecordingPip", () => {
8584
});
8685
};
8786

87+
filterConsole("Starting load of AsyncWrapper for modal");
88+
8889
beforeAll(() => {
8990
client = stubClient();
9091
mocked(requestMediaPermissions).mockResolvedValue({
@@ -105,11 +106,6 @@ describe("VoiceBroadcastRecordingPip", () => {
105106
[MediaDeviceKindEnum.VideoInput]: [],
106107
});
107108
jest.spyOn(MediaDeviceHandler.instance, "setDevice").mockImplementation();
108-
restoreConsole = filterConsole("Starting load of AsyncWrapper for modal");
109-
});
110-
111-
afterAll(() => {
112-
restoreConsole();
113109
});
114110

115111
describe("when rendering a started recording", () => {

0 commit comments

Comments
 (0)