Skip to content

Commit a2a4617

Browse files
test: test gsoc and pss onClose handlers (#1083)
* test: test gsoc and pss onClose handlers * test: update test coverage * test: update test coverage --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 1b331fe commit a2a4617

File tree

2 files changed

+110
-2
lines changed

2 files changed

+110
-2
lines changed

test/coverage/coverage-summary.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
{"total": {"lines":{"total":2455,"covered":2008,"skipped":0,"pct":81.79},"statements":{"total":2498,"covered":2047,"skipped":0,"pct":81.94},"functions":{"total":595,"covered":472,"skipped":0,"pct":79.32},"branches":{"total":558,"covered":346,"skipped":0,"pct":62},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}}
1+
{"total": {"lines":{"total":2455,"covered":2009,"skipped":0,"pct":81.83},"statements":{"total":2498,"covered":2048,"skipped":0,"pct":81.98},"functions":{"total":595,"covered":473,"skipped":0,"pct":79.49},"branches":{"total":558,"covered":346,"skipped":0,"pct":62},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}}
22
,"/home/runner/work/bee-js/bee-js/src/bee-dev.ts": {"lines":{"total":14,"covered":5,"skipped":0,"pct":35.71},"functions":{"total":2,"covered":0,"skipped":0,"pct":0},"statements":{"total":14,"covered":5,"skipped":0,"pct":35.71},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
3-
,"/home/runner/work/bee-js/bee-js/src/bee.ts": {"lines":{"total":445,"covered":369,"skipped":0,"pct":82.92},"functions":{"total":127,"covered":103,"skipped":0,"pct":81.1},"statements":{"total":448,"covered":372,"skipped":0,"pct":83.03},"branches":{"total":115,"covered":67,"skipped":0,"pct":58.26}}
3+
,"/home/runner/work/bee-js/bee-js/src/bee.ts": {"lines":{"total":445,"covered":370,"skipped":0,"pct":83.14},"functions":{"total":127,"covered":104,"skipped":0,"pct":81.88},"statements":{"total":448,"covered":373,"skipped":0,"pct":83.25},"branches":{"total":115,"covered":67,"skipped":0,"pct":58.26}}
44
,"/home/runner/work/bee-js/bee-js/src/index.ts": {"lines":{"total":16,"covered":16,"skipped":0,"pct":100},"functions":{"total":10,"covered":7,"skipped":0,"pct":70},"statements":{"total":25,"covered":25,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}}
55
,"/home/runner/work/bee-js/bee-js/src/chunk/bmt.ts": {"lines":{"total":16,"covered":15,"skipped":0,"pct":93.75},"functions":{"total":3,"covered":3,"skipped":0,"pct":100},"statements":{"total":17,"covered":16,"skipped":0,"pct":94.11},"branches":{"total":1,"covered":0,"skipped":0,"pct":0}}
66
,"/home/runner/work/bee-js/bee-js/src/chunk/cac.ts": {"lines":{"total":21,"covered":19,"skipped":0,"pct":90.47},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":21,"covered":19,"skipped":0,"pct":90.47},"branches":{"total":7,"covered":5,"skipped":0,"pct":71.42}}

test/integration/on-close.spec.ts

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
import { Dates, System } from 'cafe-utility'
2+
import { createServer } from 'http'
3+
import { WebSocketServer } from 'ws'
4+
import { Bee, NULL_IDENTIFIER, NULL_TOPIC } from '../../src'
5+
6+
interface HandledEvents {
7+
message: any[]
8+
error: any[]
9+
close: any[]
10+
}
11+
12+
test('pss onClose handler', async () => {
13+
const events: HandledEvents = {
14+
message: [],
15+
error: [],
16+
close: [],
17+
}
18+
const bee = new Bee('http://localhost:8081')
19+
20+
const httpServer = createServer()
21+
const socketServer = new WebSocketServer({ noServer: true })
22+
23+
httpServer.on('upgrade', (request, socket, head) => {
24+
socketServer.handleUpgrade(request, socket, head, ws => {
25+
socketServer.emit('connection', ws, request)
26+
})
27+
})
28+
29+
httpServer.listen(8081)
30+
31+
bee.pssSubscribe(NULL_TOPIC, {
32+
onMessage: event => {
33+
events.message.push(event)
34+
},
35+
onError: error => {
36+
events.error.push(error)
37+
},
38+
onClose: () => {
39+
events.close.push('closed')
40+
},
41+
})
42+
43+
await System.waitFor(async () => socketServer.clients.size === 1, {
44+
attempts: 10,
45+
waitMillis: Dates.seconds(1),
46+
})
47+
48+
socketServer.clients.forEach(client => client.close())
49+
socketServer.close()
50+
httpServer.close()
51+
52+
await System.waitFor(async () => events.close.length > 0, {
53+
attempts: 60,
54+
waitMillis: Dates.seconds(1),
55+
})
56+
57+
expect(events.message.length).toBe(0)
58+
expect(events.error.length).toBe(0)
59+
})
60+
61+
test('gsoc onClose handler', async () => {
62+
const events: HandledEvents = {
63+
message: [],
64+
error: [],
65+
close: [],
66+
}
67+
const bee = new Bee('http://localhost:8082')
68+
69+
const httpServer = createServer()
70+
const socketServer = new WebSocketServer({ noServer: true })
71+
72+
httpServer.on('upgrade', (request, socket, head) => {
73+
socketServer.handleUpgrade(request, socket, head, ws => {
74+
socketServer.emit('connection', ws, request)
75+
})
76+
})
77+
78+
httpServer.listen(8082)
79+
80+
bee.gsocSubscribe('0x0123401234012340123401234012340123401234', NULL_IDENTIFIER, {
81+
onMessage: event => {
82+
events.message.push(event)
83+
},
84+
onError: error => {
85+
events.error.push(error)
86+
},
87+
onClose: () => {
88+
events.close.push('closed')
89+
},
90+
})
91+
92+
await System.waitFor(async () => socketServer.clients.size === 1, {
93+
attempts: 10,
94+
waitMillis: Dates.seconds(1),
95+
})
96+
97+
socketServer.clients.forEach(client => client.close())
98+
socketServer.close()
99+
httpServer.close()
100+
101+
await System.waitFor(async () => events.close.length > 0, {
102+
attempts: 60,
103+
waitMillis: Dates.seconds(1),
104+
})
105+
106+
expect(events.message.length).toBe(0)
107+
expect(events.error.length).toBe(0)
108+
})

0 commit comments

Comments
 (0)