Skip to content

Commit b0d5bf5

Browse files
evangraykfacebook-github-bot
authored andcommitted
Don't mock random ids in test
Summary: This test started failing because new code paths called randomId() more often than expected, since we mock randomId like 5 times. This is super fragile. The better way is to just find whatever ID the request was made with and have the tests make sure the matching ID is sent, which is what we're actually testing. Reviewed By: quark-zju Differential Revision: D75693282 fbshipit-source-id: affb8920d32e5b795ba8137e3557ca9e915e25e4
1 parent 0650c24 commit b0d5bf5

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

addons/isl/src/testUtils.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ export function simulateMessageFromServer(message: ServerToClientMessage): void
3030
}
3131

3232
/** Filter out binary messages, and filter by wanted type. */
33-
function filterMessages(wantedType?: string) {
33+
function filterMessages<K extends string>(wantedType?: K) {
3434
let messages = testMessageBus.sent
3535
.filter((msg: unknown): msg is string => !(msg instanceof ArrayBuffer))
36-
.map(deserializeFromString) as Array<Partial<ClientToServerMessage>>;
36+
.map(deserializeFromString) as Array<ClientToServerMessage>;
3737
if (wantedType != null) {
3838
messages = messages.filter(msg => msg.type == null || msg.type === wantedType);
3939
}
@@ -44,6 +44,13 @@ export function expectMessageSentToServer(message: Partial<ClientToServerMessage
4444
expect(filterMessages(message.type)).toContainEqual(message);
4545
}
4646

47+
export function getLastMessageOfTypeSentToServer<K extends string>(
48+
wantedType: K,
49+
): (ClientToServerMessage & {type: K}) | undefined {
50+
const values = filterMessages(wantedType) as Array<ClientToServerMessage & {type: K}>;
51+
return values[values.length - 1];
52+
}
53+
4754
export function expectMessageNOTSentToServer(message: Partial<ClientToServerMessage>): void {
4855
expect(filterMessages(message.type)).not.toContainEqual(message);
4956
}

0 commit comments

Comments
 (0)