Skip to content

Commit 919c11d

Browse files
committed
Clean up excessive ai comments
1 parent d65d44e commit 919c11d

File tree

3 files changed

+61
-72
lines changed

3 files changed

+61
-72
lines changed

drift/lib/native.dart

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -356,10 +356,12 @@ class _NativeDelegate extends Sqlite3Delegate<Database> {
356356
}
357357

358358
db = sqlite3.open(file.path);
359-
try {
360-
tracker.markOpened(file.path, db);
361-
} on SqliteException {
362-
// ignore
359+
if (!tracker.isDisposed) {
360+
try {
361+
tracker.markOpened(file.path, db);
362+
} on SqliteException {
363+
// ignore
364+
}
363365
}
364366
} else {
365367
db = sqlite3.openInMemory();
@@ -399,10 +401,12 @@ class _NativeDelegate extends Sqlite3Delegate<Database> {
399401
await super.close();
400402

401403
if (closeUnderlyingWhenClosed) {
402-
try {
403-
tracker.markClosed(database);
404-
} on SqliteException {
405-
// ignore
404+
if (!tracker.isDisposed) {
405+
try {
406+
tracker.markClosed(database);
407+
} on SqliteException {
408+
// ignore
409+
}
406410
}
407411

408412
database.dispose();

drift/lib/src/sqlite3/database_tracker.dart

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,9 @@ final DatabaseTracker tracker = DatabaseTracker();
2323
/// this is necessary.
2424
class DatabaseTracker {
2525
final Database _db;
26-
27-
/// Whether this [DatabaseTracker] has been disposed.
2826
bool _isDisposed = false;
2927

30-
/// Public getter to check if this tracker has been disposed.
28+
/// Whether this [DatabaseTracker] has been disposed.
3129
bool get isDisposed => _isDisposed;
3230

3331
/// Creates a new tracker with necessary tables.
@@ -68,7 +66,6 @@ CREATE TABLE IF NOT EXISTS open_connections(
6866

6967
/// Closes all tracked database connections that are still open.
7068
///
71-
/// This operation is wrapped in a transaction (`BEGIN` ... `COMMIT`).
7269
/// Throws a [StateError] if this tracker has already been disposed.
7370
void closeExisting() {
7471
_checkIfDisposed();
@@ -102,10 +99,7 @@ CREATE TABLE IF NOT EXISTS open_connections(
10299
// Safely close any tracked connections
103100
closeExisting();
104101

105-
// Dispose of the in-memory tracker database
106102
_db.dispose();
107-
108-
// Mark this tracker as disposed
109103
_isDisposed = true;
110104
}
111105

drift/test/database/database_tracker_test.dart

Lines changed: 48 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -3,70 +3,61 @@ import 'package:sqlite3/sqlite3.dart';
33
import 'package:drift/src/sqlite3/database_tracker.dart';
44

55
void main() {
6-
group('DatabaseTracker', () {
7-
late DatabaseTracker tracker;
6+
late DatabaseTracker tracker;
87

9-
setUp(() {
10-
// Create a fresh DatabaseTracker instance before each test.
11-
tracker = DatabaseTracker();
12-
});
13-
14-
tearDown(() {
15-
// Clean up resources by disposing of the tracker.
16-
// Multiple dispose calls should be safe.
17-
tracker.dispose();
18-
});
19-
20-
test('tracks and closes existing database connections', () {
21-
// Open two in-memory SQLite databases.
22-
final db1 = sqlite3.openInMemory();
23-
final db2 = sqlite3.openInMemory();
24-
25-
// Register each database with the tracker.
26-
tracker.markOpened('db1_path', db1);
27-
tracker.markOpened('db2_path', db2);
28-
29-
// Optionally perform some queries to confirm the databases are working.
30-
db1.execute('CREATE TABLE test1 (id INTEGER NOT NULL PRIMARY KEY)');
31-
db2.execute('CREATE TABLE test2 (id INTEGER NOT NULL PRIMARY KEY)');
8+
setUp(() {
9+
tracker = DatabaseTracker();
10+
});
3211

33-
// Use the tracker to close all tracked connections.
34-
tracker.closeExisting();
12+
tearDown(() {
13+
tracker.dispose();
14+
});
3515

36-
// After closing, further queries should throw an error.
37-
expect(
38-
() => db1.execute('INSERT INTO test1 (id) VALUES (1)'),
39-
throwsA(anything),
40-
);
41-
expect(
42-
() => db2.execute('INSERT INTO test2 (id) VALUES (2)'),
43-
throwsA(anything),
44-
);
45-
});
16+
test('tracks and closes existing database connections', () {
17+
// Open two in-memory SQLite databases.
18+
final db1 = sqlite3.openInMemory();
19+
final db2 = sqlite3.openInMemory();
20+
21+
// Register each database with the tracker.
22+
tracker.markOpened('db1_path', db1);
23+
tracker.markOpened('db2_path', db2);
24+
25+
// Use the tracker to close all tracked connections.
26+
tracker.closeExisting();
27+
28+
// After closing, further queries should throw an error.
29+
expect(
30+
() => db1.execute('INSERT INTO test1 (id) VALUES (1)'),
31+
throwsA(anything),
32+
);
33+
expect(
34+
() => db2.execute('INSERT INTO test2 (id) VALUES (2)'),
35+
throwsA(anything),
36+
);
37+
});
4638

47-
test('throws StateError after disposal', () {
48-
// Dispose immediately
49-
tracker.dispose();
39+
test('throws StateError after disposal', () {
40+
// Dispose immediately
41+
tracker.dispose();
5042

51-
// Any usage of the tracker after dispose should throw a StateError.
52-
expect(
53-
() => tracker.markOpened('test', sqlite3.openInMemory()),
54-
throwsStateError,
55-
);
56-
expect(() => tracker.closeExisting(), throwsStateError);
57-
});
43+
// Any usage of the tracker after dispose should throw a StateError.
44+
expect(
45+
() => tracker.markOpened('test', sqlite3.openInMemory()),
46+
throwsStateError,
47+
);
48+
expect(() => tracker.closeExisting(), throwsStateError);
49+
});
5850

59-
test('multiple calls to dispose are safe', () {
60-
// Dispose can be called multiple times without throwing errors.
61-
expect(() => tracker.dispose(), returnsNormally);
62-
expect(() => tracker.dispose(), returnsNormally);
63-
});
51+
test('multiple calls to dispose are safe', () {
52+
// Dispose can be called multiple times without throwing errors.
53+
expect(() => tracker.dispose(), returnsNormally);
54+
expect(() => tracker.dispose(), returnsNormally);
55+
});
6456

65-
test('isDisposed reflects tracker state', () {
66-
expect(tracker.isDisposed, isFalse);
57+
test('isDisposed reflects tracker state', () {
58+
expect(tracker.isDisposed, isFalse);
6759

68-
tracker.dispose();
69-
expect(tracker.isDisposed, isTrue);
70-
});
60+
tracker.dispose();
61+
expect(tracker.isDisposed, isTrue);
7162
});
7263
}

0 commit comments

Comments
 (0)