Skip to content

Commit 2ce65a3

Browse files
committed
Fix events table key scoping by environment
1 parent cf89051 commit 2ce65a3

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/lib/events-store.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,16 @@ describe('events-store (sqlite)', () => {
7474
expect(events).toHaveLength(1);
7575
});
7676

77+
test('appendEvent allows same event ID in different environments', () => {
78+
appendEvent(makeEvent('evt_shared', 'video.asset.ready', 'env-aaa'));
79+
appendEvent(makeEvent('evt_shared', 'video.asset.ready', 'env-bbb'));
80+
81+
expect(getEventById('evt_shared', 'env-aaa')).toBeDefined();
82+
expect(getEventById('evt_shared', 'env-bbb')).toBeDefined();
83+
expect(listEvents('env-aaa')).toHaveLength(1);
84+
expect(listEvents('env-bbb')).toHaveLength(1);
85+
});
86+
7787
test('appendEvent does not cap at 100 events', () => {
7888
for (let i = 0; i < 150; i++) {
7989
appendEvent(makeEvent(`evt_${i}`));

src/lib/events-store.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,12 @@ function getDb(): Database {
2323
db.run('PRAGMA journal_mode = WAL');
2424
db.run(`
2525
CREATE TABLE IF NOT EXISTS events (
26-
id TEXT PRIMARY KEY,
26+
id TEXT NOT NULL,
2727
type TEXT NOT NULL,
2828
timestamp TEXT NOT NULL,
2929
environment_id TEXT NOT NULL,
30-
payload TEXT NOT NULL
30+
payload TEXT NOT NULL,
31+
PRIMARY KEY (id, environment_id)
3132
)
3233
`);
3334
db.run(

0 commit comments

Comments
 (0)