feat(session): add pairing_approved table and getPairingStore()
This commit is contained in:
@@ -62,4 +62,42 @@ describe('SessionStore', () => {
|
||||
expect(sessions).toContain('session-a');
|
||||
expect(sessions).toContain('session-b');
|
||||
});
|
||||
|
||||
describe('pairing persistence', () => {
|
||||
it('getPairingStore returns a PairingStore', () => {
|
||||
const pairingStore = store.getPairingStore();
|
||||
expect(pairingStore).toBeDefined();
|
||||
expect(pairingStore.loadApproved).toBeInstanceOf(Function);
|
||||
expect(pairingStore.saveApproved).toBeInstanceOf(Function);
|
||||
expect(pairingStore.removeApproved).toBeInstanceOf(Function);
|
||||
});
|
||||
|
||||
it('saveApproved and loadApproved round-trip', () => {
|
||||
const ps = store.getPairingStore();
|
||||
ps.saveApproved({ channel: 'telegram', senderId: '123', approvedAt: 1000, codeUsed: 'AABB11' });
|
||||
ps.saveApproved({ channel: 'discord', senderId: '456', approvedAt: 2000, codeUsed: 'CC33DD' });
|
||||
const loaded = ps.loadApproved();
|
||||
expect(loaded).toHaveLength(2);
|
||||
expect(loaded).toEqual(expect.arrayContaining([
|
||||
expect.objectContaining({ channel: 'telegram', senderId: '123', codeUsed: 'AABB11' }),
|
||||
expect.objectContaining({ channel: 'discord', senderId: '456', codeUsed: 'CC33DD' }),
|
||||
]));
|
||||
});
|
||||
|
||||
it('removeApproved deletes a sender', () => {
|
||||
const ps = store.getPairingStore();
|
||||
ps.saveApproved({ channel: 'telegram', senderId: '123', approvedAt: 1000, codeUsed: 'AABB11' });
|
||||
ps.removeApproved('telegram', '123');
|
||||
expect(ps.loadApproved()).toHaveLength(0);
|
||||
});
|
||||
|
||||
it('saveApproved upserts on duplicate channel+senderId', () => {
|
||||
const ps = store.getPairingStore();
|
||||
ps.saveApproved({ channel: 'telegram', senderId: '123', approvedAt: 1000, codeUsed: 'FIRST1' });
|
||||
ps.saveApproved({ channel: 'telegram', senderId: '123', approvedAt: 2000, codeUsed: 'SECOND' });
|
||||
const loaded = ps.loadApproved();
|
||||
expect(loaded).toHaveLength(1);
|
||||
expect(loaded[0].codeUsed).toBe('SECOND');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user