diff --git a/src/habits/resilience.test.ts b/src/habits/resilience.test.ts index ba25ec2..6b85bcc 100644 --- a/src/habits/resilience.test.ts +++ b/src/habits/resilience.test.ts @@ -5,7 +5,7 @@ beforeEach(() => { f = fixture(); }); afterEach(() => f.close()); test('failed revision writes roll back the habit atomically and do not expose database errors', async () => { f.sqlite.exec("CREATE TRIGGER reject_revision BEFORE INSERT ON habit_revisions BEGIN SELECT RAISE(ABORT, 'private database detail'); END"); const response = await f.request('/habits', 'POST', { name: 'Rollback', method: 'manual' }); - expect(response.status).toBe(500); expect(await response.json()).toEqual({ error: 'Internal server error' }); + expect(response.status).toBe(500); expect(await response.json()).toEqual({ error: 'Internal server error', requestId: response.headers.get('x-request-id') }); expect((await f.json('/habits')).habits).toHaveLength(0); }); @@ -20,7 +20,7 @@ test('creation saves color atomically and never puts presentation into requireme f.sqlite.exec("CREATE TRIGGER reject_color BEFORE INSERT ON habit_calendar_settings BEGIN SELECT RAISE(ABORT, 'private color detail'); END"); const response = await f.request('/habits', 'POST', { name: 'Rollback color', method: 'manual', color: '#426582' }); expect(response.status).toBe(500); - expect(await response.json()).toEqual({ error: 'Internal server error' }); + expect(await response.json()).toEqual({ error: 'Internal server error', requestId: response.headers.get('x-request-id') }); expect((await f.json('/habits')).habits).toHaveLength(3); }); test('edits save color with requirements atomically, preserving history and other settings', async () => {