snapshot of https://github.com/ueberdosis/hocuspocus.git @ cf3cfa355b4d3bb61c6b6c80071f71783e32470e (2026-09-15)
Some checks failed
build / lint (22) (push) Failing after 17s
build / test (22) (push) Failing after 8s
build / lint (23) (push) Failing after 2s
build / build (22) (push) Has been skipped
build / build (23) (push) Has been skipped
build / test (23) (push) Failing after 4s
docsearch / docsearch (push) Failing after 1s
Some checks failed
build / lint (22) (push) Failing after 17s
build / test (22) (push) Failing after 8s
build / lint (23) (push) Failing after 2s
build / build (22) (push) Has been skipped
build / build (23) (push) Has been skipped
build / test (23) (push) Failing after 4s
docsearch / docsearch (push) Failing after 1s
This commit is contained in:
85
tests/server/closeConnections.ts
Normal file
85
tests/server/closeConnections.ts
Normal file
@@ -0,0 +1,85 @@
|
||||
import test from 'ava'
|
||||
import { WebSocketStatus } from '@hocuspocus/provider'
|
||||
import {
|
||||
newHocuspocus, newHocuspocusProvider, newHocuspocusProviderWebsocket, sleep,
|
||||
} from '../utils/index.ts'
|
||||
import { retryableAssertion } from '../utils/retryableAssertion.ts'
|
||||
|
||||
// test('closes all connections', async t => {
|
||||
// const server = await newHocuspocus(t)
|
||||
// const socket = newHocuspocusProviderWebsocket(t, server)
|
||||
// const socket2 = newHocuspocusProviderWebsocket(t, server)
|
||||
|
||||
// const provider = newHocuspocusProvider(t, server, {
|
||||
// name: 'hocuspocus-test',
|
||||
// onClose() {
|
||||
// // Make sure it doesn’t reconnect.
|
||||
// socket.disconnect()
|
||||
// },
|
||||
// websocketProvider: socket,
|
||||
// })
|
||||
|
||||
// const anotherProvider = newHocuspocusProvider(t, server, {
|
||||
// name: 'hocuspocus-test-2',
|
||||
// onClose() {
|
||||
// // Make sure it doesn’t reconnect.
|
||||
// socket2.disconnect()
|
||||
// },
|
||||
// websocketProvider: socket2,
|
||||
// })
|
||||
|
||||
// await sleep(100)
|
||||
|
||||
// server.closeConnections()
|
||||
|
||||
// t.is(server.documents.size, 1)
|
||||
// })
|
||||
|
||||
test('closes a specific connection when a documentName is passed', async t => {
|
||||
const server = await newHocuspocus(t)
|
||||
const socket = newHocuspocusProviderWebsocket(t, server)
|
||||
const socket2 = newHocuspocusProviderWebsocket(t, server)
|
||||
|
||||
const provider = newHocuspocusProvider(t, server, {
|
||||
name: 'hocuspocus-test',
|
||||
onClose() {
|
||||
// Make sure it doesn’t reconnect.
|
||||
socket.disconnect()
|
||||
},
|
||||
websocketProvider: socket,
|
||||
})
|
||||
|
||||
const anotherProvider = newHocuspocusProvider(t, server, {
|
||||
name: 'hocuspocus-test-2',
|
||||
websocketProvider: socket2,
|
||||
})
|
||||
|
||||
await sleep(100)
|
||||
|
||||
server.closeConnections('hocuspocus-test')
|
||||
|
||||
await retryableAssertion(t, tt => {
|
||||
tt.is(socket.status, WebSocketStatus.Disconnected)
|
||||
tt.is(socket2.status, WebSocketStatus.Connected)
|
||||
})
|
||||
})
|
||||
|
||||
// test('uses a proper close event', async t => {
|
||||
// await new Promise(async resolve => {
|
||||
// const server = await newHocuspocus(t)
|
||||
|
||||
// newHocuspocusProvider(t, server, {
|
||||
// name: 'hocuspocus-test',
|
||||
// onSynced() {
|
||||
// server.closeConnections()
|
||||
// },
|
||||
// onClose({ event }) {
|
||||
// // Make sure it doesn’t reconnect.
|
||||
// t.is(event.code, 1000)
|
||||
// t.is(event.reason, 'Reset Connection')
|
||||
|
||||
// resolve('done')
|
||||
// },
|
||||
// })
|
||||
// })
|
||||
// })
|
||||
Reference in New Issue
Block a user