Files
upstream-hocuspocus/tests/server/providerVersion.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

102 lines
2.5 KiB
TypeScript

import type {
connectedPayload,
onAuthenticatePayload,
onConnectPayload,
} from "@hocuspocus/server";
import test from "ava";
import {
newHocuspocus,
newHocuspocusProvider,
newHocuspocusProviderWebsocket,
} from "../utils/index.ts";
test("onAuthenticate receives providerVersion", async (t) => {
await new Promise(async (resolve) => {
const server = await newHocuspocus(t, {
async onAuthenticate({ providerVersion }: onAuthenticatePayload) {
t.is(typeof providerVersion, "string");
t.not(providerVersion, null);
resolve("done");
},
});
newHocuspocusProvider(t, server, {
token: "test-token",
});
});
});
test("onConnect receives providerVersion", async (t) => {
await new Promise(async (resolve) => {
const server = await newHocuspocus(t, {
async onConnect({ providerVersion }: onConnectPayload) {
t.is(typeof providerVersion, "string");
t.not(providerVersion, null);
resolve("done");
},
});
newHocuspocusProvider(t, server, {
token: "test-token",
});
});
});
test("connected receives providerVersion and it is set on the connection", async (t) => {
await new Promise(async (resolve) => {
const server = await newHocuspocus(t, {
async connected({
providerVersion,
connection,
}: connectedPayload) {
t.is(typeof providerVersion, "string");
t.not(providerVersion, null);
t.is(connection.providerVersion, providerVersion);
resolve("done");
},
});
newHocuspocusProvider(t, server, {
token: "test-token",
});
});
});
test("providerVersion is a non-empty string", async (t) => {
await new Promise(async (resolve) => {
const server = await newHocuspocus(t, {
async onAuthenticate({ providerVersion }: onAuthenticatePayload) {
t.is(typeof providerVersion, "string");
t.truthy(providerVersion!.length > 0);
resolve("done");
},
});
newHocuspocusProvider(t, server, {
token: "test-token",
});
});
});
test("providerVersion is the same across multiplexed documents", async (t) => {
await new Promise(async (resolve) => {
const versions: string[] = [];
const server = await newHocuspocus(t, {
async onAuthenticate({ providerVersion }: onAuthenticatePayload) {
versions.push(providerVersion!);
if (versions.length === 2) {
t.is(versions[0], versions[1]);
t.not(versions[0], null);
resolve("done");
}
},
});
const ws = newHocuspocusProviderWebsocket(t, server);
newHocuspocusProvider(t, server, { name: "doc1", token: "t1" }, {}, ws);
newHocuspocusProvider(t, server, { name: "doc2", token: "t2" }, {}, ws);
});
});