mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 16:02:26 +00:00
46 lines
1.7 KiB
JavaScript
46 lines
1.7 KiB
JavaScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
import { ProfileDirectMessageActions } from "../js/ui/profileModal/ProfileDirectMessageActions.js";
|
|
|
|
test("DM pane renders a persisted snapshot while the relay load is still active", () => {
|
|
const scheduled = [];
|
|
const actor = "a".repeat(64);
|
|
const controller = {
|
|
activeMessagesRequest: Symbol("relay-load"),
|
|
directMessagesCache: [],
|
|
directMessagesLastActor: null,
|
|
helper: { resolveActiveDmActor: () => actor },
|
|
renderer: {
|
|
scheduleDirectMessagesRender: (detail) => scheduled.push(detail),
|
|
setMessagesLoadingState: () => {},
|
|
},
|
|
};
|
|
const actions = new ProfileDirectMessageActions({}, controller);
|
|
const messages = [{ event: { id: "cached-message" } }];
|
|
|
|
actions.handleDirectMessagesUpdated({ messages, reason: "snapshot" });
|
|
|
|
assert.deepEqual(controller.directMessagesCache, messages);
|
|
assert.equal(controller.directMessagesLastActor, actor);
|
|
assert.deepEqual(scheduled, [{ messages, actorPubkey: actor, reason: "snapshot" }]);
|
|
});
|
|
|
|
test("DM pane waits for relay increments but ignores unrelated updates during a load", () => {
|
|
const controller = {
|
|
activeMessagesRequest: Symbol("relay-load"),
|
|
directMessagesCache: [],
|
|
directMessagesLastActor: null,
|
|
helper: { resolveActiveDmActor: () => "a".repeat(64) },
|
|
renderer: {
|
|
scheduleDirectMessagesRender: () => assert.fail("unrelated update must not render"),
|
|
setMessagesLoadingState: () => {},
|
|
},
|
|
};
|
|
const actions = new ProfileDirectMessageActions({}, controller);
|
|
|
|
actions.handleDirectMessagesUpdated({ messages: [{ event: { id: "other" } }], reason: "load" });
|
|
|
|
assert.deepEqual(controller.directMessagesCache, []);
|
|
});
|