Skip to content

Commit 73c24b7

Browse files
authored
Merge pull request #2 from gregario/test/get-signals-since-filter
test: add since filter test for get_signals
2 parents 7d86d87 + 4a9ad7b commit 73c24b7

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

tests/signals.test.ts

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { describe, it, expect, beforeAll, beforeEach, afterAll } from 'vitest';
2-
import { setupTestDb, cleanTestDb, teardownTestDb, seedTeam, seedOpenIntent } from './setup.js';
2+
import { setupTestDb, cleanTestDb, teardownTestDb, seedTeam, seedOpenIntent, testQuery } from './setup.js';
33
import * as db from '../src/db/queries.js';
44

55
describe('Signals', () => {
@@ -61,6 +61,28 @@ describe('Signals', () => {
6161
expect(backendSignals[0].message).toBe('Backend signal');
6262
});
6363

64+
it('filters signals by since timestamp', async () => {
65+
const intent = await seedOpenIntent();
66+
67+
// Insert a signal timestamped 1 hour ago
68+
await testQuery(
69+
`INSERT INTO signals (type, from_user, intent_id, message, created_at)
70+
VALUES ('info', 'pawel', $1, 'Old signal', now() - interval '1 hour')`,
71+
[intent.id]
72+
);
73+
74+
// Capture "since" from the DB clock so it falls between old and new signals
75+
const sinceRes = await testQuery('SELECT now()::text AS now');
76+
const since = sinceRes.rows[0].now;
77+
78+
await db.sendSignal({ type: 'info', from_user: 'alice', intent_id: intent.id as string, message: 'New signal' });
79+
80+
const recent = await db.getSignals({ since });
81+
expect(recent).toHaveLength(1);
82+
expect(recent[0].message).toBe('New signal');
83+
expect(recent[0].from_user).toBe('alice');
84+
});
85+
6486
it('respects limit parameter', async () => {
6587
const intent = await seedOpenIntent();
6688
for (let i = 0; i < 5; i++) {

0 commit comments

Comments
 (0)