Cover dashboard route state helpers
This commit is contained in:
@@ -77,6 +77,38 @@ function makeDeps(
|
||||
}
|
||||
|
||||
describe('web dashboard inbox action routes', () => {
|
||||
it('tracks timestamped and global inbox dismissals separately', () => {
|
||||
const tracker = createInboxDismissTracker();
|
||||
|
||||
tracker.dismiss('ci:task-1', '2026-04-26T05:00:00.000Z');
|
||||
expect(
|
||||
tracker.isDismissed({
|
||||
id: 'ci:task-1',
|
||||
lastOccurredAt: '2026-04-26T05:00:00.000Z',
|
||||
}),
|
||||
).toBe(true);
|
||||
expect(
|
||||
tracker.isDismissed({
|
||||
id: 'ci:task-1',
|
||||
lastOccurredAt: '2026-04-26T05:05:00.000Z',
|
||||
}),
|
||||
).toBe(false);
|
||||
|
||||
tracker.dismiss('ci:task-2', null);
|
||||
expect(
|
||||
tracker.isDismissed({
|
||||
id: 'ci:task-2',
|
||||
lastOccurredAt: '2026-04-26T05:00:00.000Z',
|
||||
}),
|
||||
).toBe(true);
|
||||
expect(
|
||||
tracker.isDismissed({
|
||||
id: 'ci:task-2',
|
||||
lastOccurredAt: '2026-04-26T05:05:00.000Z',
|
||||
}),
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it('dismisses inbox items and queues paired follow-up intents', async () => {
|
||||
const dismissTracker = createInboxDismissTracker();
|
||||
const task = makePairedTask({ id: 'merge-1', status: 'merge_ready' });
|
||||
|
||||
@@ -68,6 +68,17 @@ function makeDeps(
|
||||
}
|
||||
|
||||
describe('web dashboard room message routes', () => {
|
||||
it('expires the oldest remembered room message ids after the cache limit', () => {
|
||||
const remember = createRoomMessageIdCache(2);
|
||||
|
||||
expect(remember('room:message-1')).toBe(true);
|
||||
expect(remember('room:message-1')).toBe(false);
|
||||
expect(remember('room:message-2')).toBe(true);
|
||||
expect(remember('room:message-3')).toBe(true);
|
||||
expect(remember('room:message-1')).toBe(true);
|
||||
expect(remember('room:message-2')).toBe(true);
|
||||
});
|
||||
|
||||
it('injects messages and deduplicates repeated request ids', async () => {
|
||||
const messages: NewMessage[] = [];
|
||||
const queued: Array<{ chatJid: string; groupFolder: string }> = [];
|
||||
|
||||
Reference in New Issue
Block a user