@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.
Files changed (34) hide show
  1. package/README.md +154 -299
  2. package/dist/chaos/chaos-utilities.js +3 -4
  3. package/dist/chaos/chaos-utilities.js.map +1 -1
  4. package/dist/database/test-database.d.ts +7 -7
  5. package/dist/database/test-database.d.ts.map +1 -1
  6. package/dist/database/test-database.js +41 -115
  7. package/dist/database/test-database.js.map +1 -1
  8. package/dist/factories/factories.test.d.ts +8 -0
  9. package/dist/factories/factories.test.d.ts.map +1 -0
  10. package/dist/factories/factories.test.js +419 -0
  11. package/dist/factories/factories.test.js.map +1 -0
  12. package/dist/factories/index.d.ts +3 -0
  13. package/dist/factories/index.d.ts.map +1 -1
  14. package/dist/factories/index.js +6 -0
  15. package/dist/factories/index.js.map +1 -1
  16. package/dist/helpers/index.js +1 -1
  17. package/dist/helpers/index.js.map +1 -1
  18. package/dist/helpers/shared-test-layer.d.ts +7 -12
  19. package/dist/helpers/shared-test-layer.d.ts.map +1 -1
  20. package/dist/helpers/shared-test-layer.js +14 -8
  21. package/dist/helpers/shared-test-layer.js.map +1 -1
  22. package/dist/helpers/sqlite-factory.d.ts +6 -31
  23. package/dist/helpers/sqlite-factory.d.ts.map +1 -1
  24. package/dist/helpers/sqlite-factory.js +9 -47
  25. package/dist/helpers/sqlite-factory.js.map +1 -1
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +8 -2
  29. package/dist/index.js.map +1 -1
  30. package/package.json +11 -2
  31. package/dist/adapters/better-sqlite3-adapter.d.ts +0 -36
  32. package/dist/adapters/better-sqlite3-adapter.d.ts.map +0 -1
  33. package/dist/adapters/better-sqlite3-adapter.js +0 -78
  34. 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
- * Works with both bun:sqlite (Bun test) and better-sqlite3 (Vitest).
14
+ * Wraps bun:sqlite with convenience methods for testing.
15
15
  */
16
16
  export interface TestDatabase {
17
- /** The underlying database instance (bun:sqlite Database or better-sqlite3 Database) */
18
- readonly db: DatabaseInstance;
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 database instance (bun:sqlite or better-sqlite3) as a TestDatabase interface.
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 database instance (bun:sqlite Database or better-sqlite3 Database)
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: DatabaseInstance) => TestDatabase;
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,EAAuB,MAAM,wBAAwB,CAAA;AAGnG,KAAK,gBAAgB,GAAG,OAAO,CAAA;AAE/B;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,EAAE,EAAE,gBAAgB,CAAA;IAC7B,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,CAsGnE,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,gBAAgB,KAAG,YAqF3D,CAAA"}
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.tryPromise({
40
- try: async () => {
41
- // Detect test runner: Vitest uses process.env.VITEST, Bun test uses Bun
42
- const useBetterSqlite3 = typeof process !== "undefined" && process.env.VITEST === "true";
43
- let db;
44
- let rawDb;
45
- if (useBetterSqlite3) {
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: rawDb,
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
- // better-sqlite3 doesn't have transaction() method, use exec instead
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 database instance (bun:sqlite or better-sqlite3) as a TestDatabase interface.
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 database instance (bun:sqlite Database or better-sqlite3 Database)
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
- // Determine if it's bun:sqlite or better-sqlite3 by checking for .run() vs .pragma()
186
- // better-sqlite3 has .pragma() method, bun:sqlite uses .run() for PRAGMA
187
- const isBetterSqlite3 = typeof db.pragma === "function";
188
- // Get SqliteDatabase interface - wrap better-sqlite3 if needed
189
- let sqliteDb;
190
- if (isBetterSqlite3) {
191
- // For better-sqlite3, we need to wrap it (but this is sync, so we can't await)
192
- // Actually, if it's already wrapped from getSharedTestLayer, it should already be SqliteDatabase
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
- .all();
224
- // Disable foreign keys temporarily to allow deletion in any order
225
- sqliteDb.run("PRAGMA foreign_keys = OFF");
226
- for (const { name } of tables) {
227
- sqliteDb.exec(`DELETE FROM "${name}"`);
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":"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"}
1
+ {"version":3,"file":"test-database.js","sourceRoot":"","sources":["../../src/database/test-database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Tests for entity factories.
3
+ *
4
+ * Verifies that all factories correctly create test data with
5
+ * proper defaults and customizable options.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=factories.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories.test.d.ts","sourceRoot":"","sources":["../../src/factories/factories.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}