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
86 lines
2.3 KiB
TypeScript
86 lines
2.3 KiB
TypeScript
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')
|
||
// },
|
||
// })
|
||
// })
|
||
// })
|