This commit is contained in:
Connor Peet
2026-03-27 09:26:30 -07:00
parent 133627a223
commit cdd9c01e97
3 changed files with 18 additions and 6 deletions

View File

@@ -115,6 +115,7 @@ suite('SessionDataService — openDatabase ref-counting', () => {
await ref.object.createTurn('turn-1');
const edits = await ref.object.getFileEdits([]);
assert.deepStrictEqual(edits, []);
await ref.object.close();
});
test('multiple references share the same database', async () => {
@@ -126,6 +127,7 @@ suite('SessionDataService — openDatabase ref-counting', () => {
ref1.dispose();
ref2.dispose();
await ref1.object.close();
});
test('database remains usable until last reference is disposed', async () => {
@@ -139,6 +141,8 @@ suite('SessionDataService — openDatabase ref-counting', () => {
await ref2.object.createTurn('turn-1');
ref2.dispose();
await ref1.object.close();
});
test('new reference after all disposed gets a fresh database', async () => {
@@ -152,5 +156,7 @@ suite('SessionDataService — openDatabase ref-counting', () => {
// New reference — may or may not be the same object, but must be functional
await ref2.object.createTurn('turn-1');
assert.notStrictEqual(ref2.object, db1);
await ref2.object.close();
});
});

View File

@@ -371,18 +371,18 @@ suite('SessionDatabase', () => {
test('methods throw after dispose', async () => {
db = await SessionDatabase.open(dbPath());
db.dispose();
db.close();
await assert.rejects(
() => db.createTurn('turn-1'),
() => db!.createTurn('turn-1'),
/disposed/,
);
});
test('double dispose is safe', async () => {
db = await SessionDatabase.open(dbPath());
db.dispose();
db.dispose(); // should not throw
await db.close();
await db.close(); // should not throw
});
});
@@ -417,8 +417,8 @@ suite('SessionDatabase', () => {
test('dispose during open rejects subsequent calls', async () => {
db = new SessionDatabase(dbPath());
db.dispose();
await assert.rejects(() => db.createTurn('turn-1'), /disposed/);
await db.close();
await assert.rejects(() => db!.createTurn('turn-1'), /disposed/);
});
});
});