Path: blob/master/src/packages/backend/conat/test/sync/connectivity.test.ts
1451 views
/*1Tests that various sync functionality works after restarting the conat server.23pnpm test ./connectivity.test.ts45*/67import { dkv } from "@cocalc/backend/conat/sync";8import {9before,10after,11restartServer,12restartPersistServer,13setDefaultTimeouts,14} from "@cocalc/backend/conat/test/setup";1516beforeAll(before);1718describe("test that dkv survives server restart", () => {19let kv;20const name = `test-${Math.random()}`;2122it("restarts the conat socketio server to make sure that works", async () => {23// some tests below will randomly sometimes take longer than 5s without this:24setDefaultTimeouts({ request: 250, publish: 250 });25await restartServer();26});2728it("creates the dkv and does a basic test", async () => {29kv = await dkv({ name });30kv.a = 10;31expect(kv.a).toEqual(10);32await kv.save();33expect(kv.hasUnsavedChanges()).toBe(false);34});3536it("restart the socketio server and confirm that dkv still works", async () => {37await restartServer();38kv.b = 7;39expect(kv.b).toEqual(7);40await kv.save();41expect(kv.hasUnsavedChanges()).toBe(false);42});4344it("restart again (without await) the socketio server and confirm that dkv still works", async () => {45restartServer();46kv.b = 77;47expect(kv.b).toEqual(77);48await kv.save();49expect(kv.hasUnsavedChanges()).toBe(false);50});5152it("restart persist server", async () => {53await restartPersistServer();54kv.b = 123;55expect(kv.b).toEqual(123);56await kv.save();57expect(kv.hasUnsavedChanges()).toBe(false);58});5960jest.setTimeout(10000);61it("restart both servers at once", async () => {62await Promise.all([restartPersistServer(), restartServer()]);63kv.b = 389;64expect(kv.b).toEqual(389);65await kv.save();66expect(kv.hasUnsavedChanges()).toBe(false);67});68});6970afterAll(after);717273