Files
upstream-hocuspocus/tests/server/closeConnections.ts
upstream-mirror e0c588ca1c
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
snapshot of https://github.com/ueberdosis/hocuspocus.git @ cf3cfa355b4d3bb61c6b6c80071f71783e32470e (2026-09-15)
2026-09-15 17:21:35 +05:00

86 lines
2.3 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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')
// },
// })
// })
// })