Update Healer Man server

This commit is contained in:
phenom committed 2026-09-23 22:25:39 -04:00
1 parent d869d6b51c
commit a64b2cb575
4 files changed
+98 -17

No files matched your search

+27
View File
@@ -4,6 +4,7 @@ import {
createCharacter,
createLocalAccount,
createOfflineSession,
clearSession,
listCharacters,
loadAccountBossCards,
saveAccountBossCards,
@@ -12,6 +13,7 @@ import {
loadCombatPresentationSettings,
loginLocalAccount,
restoreSession,
saveSession,
updateCharacterActionBindings,
updateCharacterEquipment,
updateCharacterDungeonRunCheckpoint,
@@ -165,6 +167,31 @@ describe("local profile repository", () => {
expect(restoreSession(storage)?.roles).toEqual([]);
});
it("keeps a login across browser sessions and clears it on sign-out", () => {
const persistent = new MemoryStorage();
const firstTab = new MemoryStorage();
const nextTab = new MemoryStorage();
const session = { kind: "account" as const, ownerId: "account-1", displayName: "Healer", accessToken: "server-token", roles: ["gm" as const] };
saveSession(session, persistent, firstTab);
expect(firstTab.getItem(PROFILE_STORAGE_KEYS.session)).toBeNull();
expect(restoreSession(persistent, nextTab)).toMatchObject({ ...session, roles: [] });
clearSession(persistent, nextTab);
expect(restoreSession(persistent, nextTab)).toBeNull();
});
it("moves a previous tab-scoped session into persistent storage", () => {
const persistent = new MemoryStorage();
const previousTab = new MemoryStorage();
const session = { kind: "offline" as const, ownerId: "offline-roster", displayName: "Offline" };
previousTab.setItem(PROFILE_STORAGE_KEYS.session, JSON.stringify(session));
expect(restoreSession(persistent, previousTab)).toMatchObject(session);
expect(previousTab.getItem(PROFILE_STORAGE_KEYS.session)).toBeNull();
expect(restoreSession(persistent, new MemoryStorage())).toMatchObject(session);
});
it("normalizes legacy profiles and persists progression atomically", () => {
const storage = new MemoryStorage();
storage.setItem(PROFILE_STORAGE_KEYS.database, JSON.stringify({