test: verify request references on database failures
This commit is contained in:
@@ -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 () => {
|
||||
|
||||
Reference in New Issue
Block a user