From 1d9dcd2a27736b83d20abc0111141fdd6bffde7e Mon Sep 17 00:00:00 2001 From: Shoubhit Dash Date: Fri, 6 Mar 2026 18:19:15 +0530 Subject: share: speed up share loads (#16165) --- packages/enterprise/test/core/share.test.ts | 30 +++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'packages/enterprise/test/core') diff --git a/packages/enterprise/test/core/share.test.ts b/packages/enterprise/test/core/share.test.ts index 9e9c06db3..d49d4b763 100644 --- a/packages/enterprise/test/core/share.test.ts +++ b/packages/enterprise/test/core/share.test.ts @@ -30,8 +30,8 @@ describe.concurrent("core.share", () => { data, }) - const events = await Storage.list({ prefix: ["share_event", share.id] }) - expect(events.length).toBe(1) + const snapshot = await Storage.read<{ data: Share.Data[] }>(["share_snapshot", share.id]) + expect(snapshot?.data).toHaveLength(1) await Share.remove({ id: share.id, secret: share.secret }) }) @@ -64,8 +64,8 @@ describe.concurrent("core.share", () => { data: data2, }) - const events = await Storage.list({ prefix: ["share_event", share.id] }) - expect(events.length).toBe(2) + const snapshot = await Storage.read<{ data: Share.Data[] }>(["share_snapshot", share.id]) + expect(snapshot?.data).toHaveLength(2) await Share.remove({ id: share.id, secret: share.secret }) }) @@ -194,6 +194,28 @@ describe.concurrent("core.share", () => { await Share.remove({ id: share.id, secret: share.secret }) }) + test("should migrate legacy event data into the snapshot", async () => { + const sessionID = Identifier.descending() + const share = await Share.create({ sessionID }) + const data: Share.Data[] = [ + { + type: "part", + data: { id: "part1", sessionID, messageID: "msg1", type: "text", text: "Hello" }, + }, + ] + + await Storage.remove(["share_snapshot", share.id]) + await Storage.write(["share_event", share.id, Identifier.descending()], data) + + const result = await Share.data(share.id) + const snapshot = await Storage.read<{ data: Share.Data[] }>(["share_snapshot", share.id]) + + expect(result).toHaveLength(1) + expect(snapshot?.data).toHaveLength(1) + + await Share.remove({ id: share.id, secret: share.secret }) + }) + test("should throw error for invalid secret", async () => { const sessionID = Identifier.descending() const share = await Share.create({ sessionID }) -- cgit v1.2.3