Skip to content

Commit 5c639da

Browse files
authored
test(dht): Fix toEqualPeerDescriptor inverse custom matcher (#2892)
Fixed error message for `toBeEqualPeerDescriptor` for a use case where it is used like this: ```ts expect(foo).not.toEqualPeerDescriptor(foo) ``` ## Other changes Also fixed `tcp` field name in error messages. The custom matcher implementation now uses stricter types. Also improved error message for normal use case. Now the error message mentions that we are comparing `PeerDescriptor` instances. Typical error message is like this: ``` PeerDescriptor nodeId values don't match: Expected: "5d7e7be5ba676dda8a390d557e345c85e19458b4" Received: "61c7c821496d1d151ea1932655c40140f6cd44d2" ```
1 parent 42d48ae commit 5c639da

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

packages/dht/test/unit/customMatchers.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,22 @@ describe('custom matchers', () => {
1313
it('no match', () => {
1414
expect(createMockPeerDescriptor()).not.toEqualPeerDescriptor(createMockPeerDescriptor())
1515
})
16+
17+
describe('error message', () => {
18+
19+
it('normal', () => {
20+
const actual = createMockPeerDescriptor()
21+
const expected = createMockPeerDescriptor()
22+
expect(() => {
23+
expect(actual).toEqualPeerDescriptor(expected)
24+
}).toThrow('PeerDescriptor nodeId values don\'t match')
25+
})
26+
27+
it('inverse', () => {
28+
const peerDescriptor = createMockPeerDescriptor()
29+
expect(() => {
30+
expect(peerDescriptor).not.toEqualPeerDescriptor(peerDescriptor)
31+
}).toThrow('PeerDescriptors are equal')
32+
})
33+
})
1634
})

packages/dht/test/utils/customMatchers.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ declare global {
1515
}
1616
}
1717

18-
const formErrorMessage = (description: string, expected: string | number | undefined, actual: string | number | undefined): string => {
19-
return `${description}\nExpected: ${printExpected(expected)}\nReceived: ${printReceived(actual)}`
18+
const formErrorMessage = (field: keyof PeerDescriptor, expected: string | number | undefined, actual: string | number | undefined): string => {
19+
return `PeerDescriptor ${field} values don't match:\nExpected: ${printExpected(expected)}\nReceived: ${printReceived(actual)}`
2020
}
2121

2222
const toEqualPeerDescriptor = (
@@ -32,7 +32,7 @@ const toEqualPeerDescriptor = (
3232
messages.push(formErrorMessage('type', typeNames[expected.type], typeNames[actual.type]))
3333
}
3434
expectEqualConnectivityMethod('udp', expected.udp, actual.udp, messages)
35-
expectEqualConnectivityMethod('tpc', expected.tcp, actual.tcp, messages)
35+
expectEqualConnectivityMethod('tcp', expected.tcp, actual.tcp, messages)
3636
expectEqualConnectivityMethod('websocket', expected.websocket, actual.websocket, messages)
3737
if (expected.region !== actual.region) {
3838
messages.push(formErrorMessage('region', expected?.region, actual?.region))
@@ -45,13 +45,13 @@ const toEqualPeerDescriptor = (
4545
} else {
4646
return {
4747
pass: true,
48-
message: () => `Expected not to throw ${printReceived('StreamrClientError')}`
48+
message: () => 'PeerDescriptors are equal'
4949
}
5050
}
5151
}
5252

5353
const expectEqualConnectivityMethod = (
54-
description: string,
54+
field: keyof PeerDescriptor,
5555
method1: ConnectivityMethod | undefined,
5656
method2: ConnectivityMethod | undefined,
5757
messages: string[]
@@ -62,7 +62,7 @@ const expectEqualConnectivityMethod = (
6262
: undefined
6363
}
6464
if (!isEqual(method1, method2)) {
65-
messages.push(formErrorMessage(description, toOutput(method1), toOutput(method2)))
65+
messages.push(formErrorMessage(field, toOutput(method1), toOutput(method2)))
6666
}
6767
}
6868

0 commit comments

Comments
 (0)