This commit is contained in:
2026-04-28 19:36:39 +08:00
parent a9febe7678
commit f0471a4f8d
206 changed files with 18456 additions and 10133 deletions

View File

@@ -61,6 +61,7 @@ test('custom world agent ui state reads from query first and persists to session
activeSessionId: 'session-1',
activeOperationId: 'operation-1',
customWorldGenerationSource: 'agent-draft-foundation',
ownerUserId: 'user-1',
});
currentUrl = '/play';
@@ -75,6 +76,48 @@ test('custom world agent ui state reads from query first and persists to session
expect(readCustomWorldAgentUiState(env)).toEqual({});
});
test('custom world agent ui state hydrates query owner from matching stored session only', () => {
const sessionStorage = createMemoryStorage();
sessionStorage.setItem(
'genarrative.custom-world-agent-ui.v1',
JSON.stringify({
activeSessionId: 'session-1',
ownerUserId: 'user-1',
}),
);
expect(
readCustomWorldAgentUiState({
location: {
pathname: '/',
search: '?customWorldSessionId=session-1',
},
history: null,
sessionStorage,
}),
).toEqual({
activeSessionId: 'session-1',
activeOperationId: null,
customWorldGenerationSource: null,
ownerUserId: 'user-1',
});
expect(
readCustomWorldAgentUiState({
location: {
pathname: '/',
search: '?customWorldSessionId=session-2',
},
history: null,
sessionStorage,
}),
).toEqual({
activeSessionId: 'session-2',
activeOperationId: null,
customWorldGenerationSource: null,
});
});
test('custom world agent ui state only auto restores stored pointers on RPG creation paths', () => {
const sessionStorage = createMemoryStorage();
sessionStorage.setItem(