Path: blob/master/src/packages/backend/conat/test/sync/connectivity.test.ts
1712 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(async () => {17await before();18// some tests below will randomly sometimes take longer than 5s without this:19setDefaultTimeouts({ request: 1000, publish: 1000 });20});2122jest.setTimeout(10000);23describe("test that dkv survives server restart", () => {24let kv;25const name = `test-${Math.random()}`;2627it("right as it restarts, creates the dkv and does a basic test", async () => {28kv = await dkv({ name });29kv.a = 10;30expect(kv.a).toEqual(10);31await kv.save();32expect(kv.hasUnsavedChanges()).toBe(false);33});3435it("restart the socketio server and confirm that dkv still works", async () => {36await restartServer();37kv.b = 7;38expect(kv.b).toEqual(7);39await kv.save();40expect(kv.hasUnsavedChanges()).toBe(false);41});4243it("restart again (without await) the socketio server and confirm that dkv still works", async () => {44restartServer();45kv.b = 77;46expect(kv.b).toEqual(77);47await kv.save();48expect(kv.hasUnsavedChanges()).toBe(false);49});5051it("restart persist server", async () => {52await restartPersistServer();53kv.b = 123;54expect(kv.b).toEqual(123);55await kv.save();56expect(kv.hasUnsavedChanges()).toBe(false);57});5859jest.setTimeout(10000);60it("restart both servers at once", async () => {61await Promise.all([restartPersistServer(), restartServer()]);62kv.b = 389;63expect(kv.b).toEqual(389);64await kv.save();65expect(kv.hasUnsavedChanges()).toBe(false);66});67});6869afterAll(after);707172