forked from phenom/healer-man
Update Healer Man server
This commit is contained in:
1 parent
d869d6b51c
commit
a64b2cb575
4 files changed
+98
-17
No files matched your search
@@ -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({
|
||||
|
||||
Reference in new issue
Block a user