fix(tests): chat thread-settings test is idempotent
The row the test writes survives the backup/restore cycle (plugin tables aren't in the export), so on the second run the GET returned 1 and the "starts at 0" assertion blew up. Explicitly reset the flag at the start, then flip, then reset again — each run lands the DB in the same state it started. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
0022f64c50
commit
64be9257f2
1 file changed
+9
-5
@@ -120,18 +120,22 @@ describe('Chat: API', () => {
|
|||||||
|
|
||||||
it('/api/chat/thread-settings round-trips disposable flag', async () => {
|
it('/api/chat/thread-settings round-trips disposable flag', async () => {
|
||||||
const peer = '__test_disposable_flip__';
|
const peer = '__test_disposable_flip__';
|
||||||
const initial = await fetch('api/chat/thread-settings?peer=' + encodeURIComponent(peer))
|
const setFlag = (v) => fetch('api/chat/thread-settings', {
|
||||||
.then(r => r.json());
|
|
||||||
expect(initial.disposable).toBe(0);
|
|
||||||
const set = await fetch('api/chat/thread-settings', {
|
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json', 'X-CSRF-Token': csrf() },
|
headers: { 'Content-Type': 'application/json', 'X-CSRF-Token': csrf() },
|
||||||
body: JSON.stringify({ peer, disposable: true }),
|
body: JSON.stringify({ peer, disposable: v }),
|
||||||
}).then(r => r.json());
|
}).then(r => r.json());
|
||||||
|
// Reset from any leftover state (previous runs leave the row
|
||||||
|
// behind — restore only rolls cards/buckets, not plugin tables).
|
||||||
|
const reset = await setFlag(false);
|
||||||
|
expect(reset.disposable).toBe(0);
|
||||||
|
const set = await setFlag(true);
|
||||||
expect(set.disposable).toBe(1);
|
expect(set.disposable).toBe(1);
|
||||||
const after = await fetch('api/chat/thread-settings?peer=' + encodeURIComponent(peer))
|
const after = await fetch('api/chat/thread-settings?peer=' + encodeURIComponent(peer))
|
||||||
.then(r => r.json());
|
.then(r => r.json());
|
||||||
expect(after.disposable).toBe(1);
|
expect(after.disposable).toBe(1);
|
||||||
|
// Leave a clean slate for the next run.
|
||||||
|
await setFlag(false);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user