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
102 lines
2.5 KiB
TypeScript
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);
|
|
});
|
|
});
|