@jamesaphoenix/tx-test-utils 0.4.3 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +154 -299
- package/dist/chaos/chaos-utilities.js +3 -4
- package/dist/chaos/chaos-utilities.js.map +1 -1
- package/dist/database/test-database.d.ts +7 -7
- package/dist/database/test-database.d.ts.map +1 -1
- package/dist/database/test-database.js +41 -115
- package/dist/database/test-database.js.map +1 -1
- package/dist/factories/factories.test.d.ts +8 -0
- package/dist/factories/factories.test.d.ts.map +1 -0
- package/dist/factories/factories.test.js +419 -0
- package/dist/factories/factories.test.js.map +1 -0
- package/dist/factories/index.d.ts +3 -0
- package/dist/factories/index.d.ts.map +1 -1
- package/dist/factories/index.js +6 -0
- package/dist/factories/index.js.map +1 -1
- package/dist/helpers/index.js +1 -1
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/shared-test-layer.d.ts +7 -12
- package/dist/helpers/shared-test-layer.d.ts.map +1 -1
- package/dist/helpers/shared-test-layer.js +14 -8
- package/dist/helpers/shared-test-layer.js.map +1 -1
- package/dist/helpers/sqlite-factory.d.ts +6 -31
- package/dist/helpers/sqlite-factory.d.ts.map +1 -1
- package/dist/helpers/sqlite-factory.js +9 -47
- package/dist/helpers/sqlite-factory.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/package.json +11 -2
- package/dist/adapters/better-sqlite3-adapter.d.ts +0 -36
- package/dist/adapters/better-sqlite3-adapter.d.ts.map +0 -1
- package/dist/adapters/better-sqlite3-adapter.js +0 -78
- package/dist/adapters/better-sqlite3-adapter.js.map +0 -1
|
@@ -6,16 +6,16 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module @tx/test-utils/database
|
|
8
8
|
*/
|
|
9
|
+
import { Database } from "bun:sqlite";
|
|
9
10
|
import { Context, Effect, Layer } from "effect";
|
|
10
11
|
import { type SqliteRunResult } from "@jamesaphoenix/tx-core";
|
|
11
|
-
type DatabaseInstance = unknown;
|
|
12
12
|
/**
|
|
13
13
|
* Interface for test database operations.
|
|
14
|
-
*
|
|
14
|
+
* Wraps bun:sqlite with convenience methods for testing.
|
|
15
15
|
*/
|
|
16
16
|
export interface TestDatabase {
|
|
17
|
-
/** The underlying
|
|
18
|
-
readonly db:
|
|
17
|
+
/** The underlying bun:sqlite Database instance */
|
|
18
|
+
readonly db: Database;
|
|
19
19
|
/** Close the database connection */
|
|
20
20
|
readonly close: () => Effect.Effect<void>;
|
|
21
21
|
/** Delete all data from tables (preserves schema and migrations table) */
|
|
@@ -99,12 +99,12 @@ export declare const TestDatabaseLive: Layer.Layer<TestDatabaseService, Error, n
|
|
|
99
99
|
*/
|
|
100
100
|
export declare const createTestDatabaseLayer: () => Layer.Layer<TestDatabaseService, Error>;
|
|
101
101
|
/**
|
|
102
|
-
* Wrap a raw
|
|
102
|
+
* Wrap a raw bun:sqlite Database as a TestDatabase interface.
|
|
103
103
|
*
|
|
104
104
|
* Use this to wrap the singleton test database from getSharedTestLayer()
|
|
105
105
|
* for use with factories that require a TestDatabase.
|
|
106
106
|
*
|
|
107
|
-
* @param db - The raw
|
|
107
|
+
* @param db - The raw bun:sqlite Database instance
|
|
108
108
|
* @returns A TestDatabase wrapper
|
|
109
109
|
*
|
|
110
110
|
* @example
|
|
@@ -116,6 +116,6 @@ export declare const createTestDatabaseLayer: () => Layer.Layer<TestDatabaseServ
|
|
|
116
116
|
* const factory = new CandidateFactory(testDb)
|
|
117
117
|
* ```
|
|
118
118
|
*/
|
|
119
|
-
export declare const wrapDbAsTestDatabase: (db:
|
|
119
|
+
export declare const wrapDbAsTestDatabase: (db: Database) => TestDatabase;
|
|
120
120
|
export {};
|
|
121
121
|
//# sourceMappingURL=test-database.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-database.d.ts","sourceRoot":"","sources":["../../src/database/test-database.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAmB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"test-database.d.ts","sourceRoot":"","sources":["../../src/database/test-database.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAE9E;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzC,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACzC,gDAAgD;IAChD,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,CAAA;IACrE,mCAAmC;IACnC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,yEAAyE;IACzE,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,eAAe,CAAA;IAClE,8CAA8C;IAC9C,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;CAC5C;;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAoB,SAAQ,wBAGtC;CAAG;AAEN;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAoEnE,CAAA;AAEJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,gBAAgB,gDAG5B,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,QAAO,KAAK,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAI9E,CAAA;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB,GAAI,IAAI,QAAQ,KAAG,YAgDlD,CAAA"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @module @tx/test-utils/database
|
|
8
8
|
*/
|
|
9
|
+
import { Database } from "bun:sqlite";
|
|
9
10
|
import { Context, Effect, Layer } from "effect";
|
|
10
11
|
import { applyMigrations } from "@jamesaphoenix/tx-core";
|
|
11
12
|
/**
|
|
@@ -36,37 +37,17 @@ export class TestDatabaseService extends Context.Tag("TestDatabaseService")() {
|
|
|
36
37
|
* await Effect.runPromise(testDb.close())
|
|
37
38
|
* ```
|
|
38
39
|
*/
|
|
39
|
-
export const createTestDatabase = () => Effect.
|
|
40
|
-
try:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
// Vitest: Use better-sqlite3 for proper parallelization
|
|
47
|
-
const { wrapBetterSqlite3 } = await import("../adapters/better-sqlite3-adapter.js");
|
|
48
|
-
const Database = (await import("better-sqlite3")).default;
|
|
49
|
-
const betterDb = new Database(":memory:");
|
|
50
|
-
betterDb.pragma("journal_mode = WAL");
|
|
51
|
-
betterDb.pragma("foreign_keys = ON");
|
|
52
|
-
betterDb.pragma("busy_timeout = " + (process.env.TX_DB_BUSY_TIMEOUT || "5000"));
|
|
53
|
-
db = wrapBetterSqlite3(betterDb);
|
|
54
|
-
rawDb = betterDb;
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
// Bun test: Use bun:sqlite
|
|
58
|
-
const { Database } = await import("bun:sqlite");
|
|
59
|
-
const bunDb = new Database(":memory:");
|
|
60
|
-
bunDb.run("PRAGMA journal_mode = WAL");
|
|
61
|
-
bunDb.run("PRAGMA foreign_keys = ON");
|
|
62
|
-
bunDb.run("PRAGMA busy_timeout = " + (process.env.TX_DB_BUSY_TIMEOUT || "5000"));
|
|
63
|
-
db = bunDb;
|
|
64
|
-
rawDb = bunDb;
|
|
65
|
-
}
|
|
40
|
+
export const createTestDatabase = () => Effect.try({
|
|
41
|
+
try: () => {
|
|
42
|
+
const db = new Database(":memory:");
|
|
43
|
+
// Enable WAL mode for better concurrent access (matches production settings)
|
|
44
|
+
db.run("PRAGMA journal_mode = WAL");
|
|
45
|
+
db.run("PRAGMA foreign_keys = ON");
|
|
46
|
+
db.run("PRAGMA busy_timeout = " + (process.env.TX_DB_BUSY_TIMEOUT || "5000"));
|
|
66
47
|
// Run all migrations
|
|
67
48
|
applyMigrations(db);
|
|
68
49
|
const testDb = {
|
|
69
|
-
db
|
|
50
|
+
db,
|
|
70
51
|
close: () => Effect.sync(() => {
|
|
71
52
|
db.close();
|
|
72
53
|
}),
|
|
@@ -101,23 +82,7 @@ export const createTestDatabase = () => Effect.tryPromise({
|
|
|
101
82
|
return db.prepare(sql).run(...params);
|
|
102
83
|
},
|
|
103
84
|
transaction: (fn) => {
|
|
104
|
-
|
|
105
|
-
if (useBetterSqlite3) {
|
|
106
|
-
db.exec("BEGIN");
|
|
107
|
-
try {
|
|
108
|
-
const result = fn();
|
|
109
|
-
db.exec("COMMIT");
|
|
110
|
-
return result;
|
|
111
|
-
}
|
|
112
|
-
catch (e) {
|
|
113
|
-
db.exec("ROLLBACK");
|
|
114
|
-
throw e;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
// bun:sqlite has transaction() method
|
|
119
|
-
return rawDb.transaction(fn)();
|
|
120
|
-
}
|
|
85
|
+
return db.transaction(fn)();
|
|
121
86
|
}
|
|
122
87
|
};
|
|
123
88
|
return testDb;
|
|
@@ -164,12 +129,12 @@ export const TestDatabaseLive = Layer.scoped(TestDatabaseService, Effect.acquire
|
|
|
164
129
|
*/
|
|
165
130
|
export const createTestDatabaseLayer = () => Layer.scoped(TestDatabaseService, Effect.acquireRelease(createTestDatabase(), (db) => db.close()));
|
|
166
131
|
/**
|
|
167
|
-
* Wrap a raw
|
|
132
|
+
* Wrap a raw bun:sqlite Database as a TestDatabase interface.
|
|
168
133
|
*
|
|
169
134
|
* Use this to wrap the singleton test database from getSharedTestLayer()
|
|
170
135
|
* for use with factories that require a TestDatabase.
|
|
171
136
|
*
|
|
172
|
-
* @param db - The raw
|
|
137
|
+
* @param db - The raw bun:sqlite Database instance
|
|
173
138
|
* @returns A TestDatabase wrapper
|
|
174
139
|
*
|
|
175
140
|
* @example
|
|
@@ -181,37 +146,15 @@ export const createTestDatabaseLayer = () => Layer.scoped(TestDatabaseService, E
|
|
|
181
146
|
* const factory = new CandidateFactory(testDb)
|
|
182
147
|
* ```
|
|
183
148
|
*/
|
|
184
|
-
export const wrapDbAsTestDatabase = (db) => {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
// Let's check if it has the SqliteDatabase interface methods
|
|
194
|
-
if (typeof db.prepare === "function") {
|
|
195
|
-
sqliteDb = db;
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
// Need to wrap it - but this requires async import
|
|
199
|
-
// For now, assume it's already wrapped or we'll handle it differently
|
|
200
|
-
sqliteDb = db;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
sqliteDb = db;
|
|
205
|
-
}
|
|
206
|
-
return {
|
|
207
|
-
db,
|
|
208
|
-
close: () => Effect.sync(() => {
|
|
209
|
-
sqliteDb.close();
|
|
210
|
-
}),
|
|
211
|
-
reset: () => Effect.sync(() => {
|
|
212
|
-
// Get all user tables (exclude sqlite internals, migrations tracking, and FTS tables)
|
|
213
|
-
const tables = sqliteDb
|
|
214
|
-
.prepare(`
|
|
149
|
+
export const wrapDbAsTestDatabase = (db) => ({
|
|
150
|
+
db,
|
|
151
|
+
close: () => Effect.sync(() => {
|
|
152
|
+
db.close();
|
|
153
|
+
}),
|
|
154
|
+
reset: () => Effect.sync(() => {
|
|
155
|
+
// Get all user tables (exclude sqlite internals, migrations tracking, and FTS tables)
|
|
156
|
+
const tables = db
|
|
157
|
+
.prepare(`
|
|
215
158
|
SELECT name FROM sqlite_master
|
|
216
159
|
WHERE type='table'
|
|
217
160
|
AND name NOT LIKE 'sqlite_%'
|
|
@@ -220,42 +163,25 @@ export const wrapDbAsTestDatabase = (db) => {
|
|
|
220
163
|
AND name NOT LIKE '%_fts_%'
|
|
221
164
|
AND name NOT LIKE '%_config'
|
|
222
165
|
`)
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}
|
|
229
|
-
sqliteDb.run("PRAGMA foreign_keys = ON");
|
|
230
|
-
}),
|
|
231
|
-
query: (sql, params = []) => {
|
|
232
|
-
return sqliteDb.prepare(sql).all(...params);
|
|
233
|
-
},
|
|
234
|
-
exec: (sql) => {
|
|
235
|
-
sqliteDb.exec(sql);
|
|
236
|
-
},
|
|
237
|
-
run: (sql, params = []) => {
|
|
238
|
-
return sqliteDb.prepare(sql).run(...params);
|
|
239
|
-
},
|
|
240
|
-
transaction: (fn) => {
|
|
241
|
-
// better-sqlite3 doesn't have transaction() method, use exec instead
|
|
242
|
-
if (isBetterSqlite3) {
|
|
243
|
-
sqliteDb.exec("BEGIN");
|
|
244
|
-
try {
|
|
245
|
-
const result = fn();
|
|
246
|
-
sqliteDb.exec("COMMIT");
|
|
247
|
-
return result;
|
|
248
|
-
}
|
|
249
|
-
catch (e) {
|
|
250
|
-
sqliteDb.exec("ROLLBACK");
|
|
251
|
-
throw e;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
else {
|
|
255
|
-
// bun:sqlite has transaction() method
|
|
256
|
-
return db.transaction(fn)();
|
|
257
|
-
}
|
|
166
|
+
.all();
|
|
167
|
+
// Disable foreign keys temporarily to allow deletion in any order
|
|
168
|
+
db.run("PRAGMA foreign_keys = OFF");
|
|
169
|
+
for (const { name } of tables) {
|
|
170
|
+
db.exec(`DELETE FROM "${name}"`);
|
|
258
171
|
}
|
|
259
|
-
|
|
260
|
-
}
|
|
172
|
+
db.run("PRAGMA foreign_keys = ON");
|
|
173
|
+
}),
|
|
174
|
+
query: (sql, params = []) => {
|
|
175
|
+
return db.prepare(sql).all(...params);
|
|
176
|
+
},
|
|
177
|
+
exec: (sql) => {
|
|
178
|
+
db.exec(sql);
|
|
179
|
+
},
|
|
180
|
+
run: (sql, params = []) => {
|
|
181
|
+
return db.prepare(sql).run(...params);
|
|
182
|
+
},
|
|
183
|
+
transaction: (fn) => {
|
|
184
|
+
return db.transaction(fn)();
|
|
185
|
+
}
|
|
186
|
+
});
|
|
261
187
|
//# sourceMappingURL=test-database.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-database.js","sourceRoot":"","sources":["../../src/database/test-database.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"test-database.js","sourceRoot":"","sources":["../../src/database/test-database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.test.d.ts","sourceRoot":"","sources":["../../src/factories/factories.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|