@geekmidas/testkit 0.0.12 → 0.0.14
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 +1 -1
- package/dist/{Factory-Bm44VKa-.d.cts → Factory-D7P3bKKb.d.mts} +2 -2
- package/dist/{Factory-tjCDNgUK.d.mts → Factory-pNV7ZQ7-.d.cts} +2 -2
- package/dist/Factory.d.cts +2 -2
- package/dist/Factory.d.mts +2 -2
- package/dist/{KyselyFactory-BoPDDitt.d.cts → KyselyFactory-72P98y5I.d.mts} +3 -3
- package/dist/{KyselyFactory-C3Bc3p4L.mjs → KyselyFactory-BcYkC0t2.mjs} +1 -1
- package/dist/{KyselyFactory-CXtfmMfK.cjs → KyselyFactory-Cf0o2YxO.cjs} +1 -1
- package/dist/{KyselyFactory-D82j74t9.d.mts → KyselyFactory-DLBrYWxU.d.cts} +3 -3
- package/dist/KyselyFactory.cjs +1 -1
- package/dist/KyselyFactory.d.cts +3 -3
- package/dist/KyselyFactory.d.mts +3 -3
- package/dist/KyselyFactory.mjs +1 -1
- package/dist/{ObjectionFactory-qIICOph3.mjs → ObjectionFactory-8hebmnai.mjs} +20 -4
- package/dist/{ObjectionFactory-BWMTXsxH.d.cts → ObjectionFactory-B40NQWSe.d.mts} +2 -2
- package/dist/{ObjectionFactory-DxIxJagq.cjs → ObjectionFactory-CDriunkS.cjs} +20 -4
- package/dist/{ObjectionFactory-CEG5qUrm.d.mts → ObjectionFactory-D3l1VuyX.d.cts} +2 -2
- package/dist/ObjectionFactory.cjs +1 -1
- package/dist/ObjectionFactory.d.cts +3 -3
- package/dist/ObjectionFactory.d.mts +3 -3
- package/dist/ObjectionFactory.mjs +1 -1
- package/dist/{VitestKyselyTransactionIsolator-ClCazkBO.d.mts → VitestKyselyTransactionIsolator-CnxpE9cH.d.mts} +2 -1
- package/dist/{VitestKyselyTransactionIsolator-UE1J-UoP.d.cts → VitestKyselyTransactionIsolator-DYUYVEh9.d.cts} +2 -1
- package/dist/{VitestKyselyTransactionIsolator-BKGT9nEG.mjs → VitestKyselyTransactionIsolator-Dq4Oeh-Y.mjs} +4 -1
- package/dist/{VitestKyselyTransactionIsolator-CIlpIO78.cjs → VitestKyselyTransactionIsolator-Dqy3qNoJ.cjs} +4 -1
- package/dist/VitestKyselyTransactionIsolator.cjs +2 -2
- package/dist/VitestKyselyTransactionIsolator.d.cts +2 -2
- package/dist/VitestKyselyTransactionIsolator.d.mts +2 -2
- package/dist/VitestKyselyTransactionIsolator.mjs +2 -2
- package/dist/{VitestObjectionTransactionIsolator-CO2nTi9r.d.cts → VitestObjectionTransactionIsolator-CJ4ds5Qv.d.cts} +3 -2
- package/dist/{VitestObjectionTransactionIsolator-D264iuPy.d.mts → VitestObjectionTransactionIsolator-DIM79dCq.d.mts} +3 -2
- package/dist/{VitestObjectionTransactionIsolator-BPoLUFop.mjs → VitestObjectionTransactionIsolator-DVtJG2F3.mjs} +6 -3
- package/dist/{VitestObjectionTransactionIsolator-DyqLp_in.cjs → VitestObjectionTransactionIsolator-LP4B0cqW.cjs} +6 -3
- package/dist/VitestObjectionTransactionIsolator.cjs +2 -2
- package/dist/VitestObjectionTransactionIsolator.d.cts +2 -2
- package/dist/VitestObjectionTransactionIsolator.d.mts +2 -2
- package/dist/VitestObjectionTransactionIsolator.mjs +2 -2
- package/dist/{VitestTransactionIsolator-CruLTRRi.cjs → VitestTransactionIsolator-BQ5FpLtC.cjs} +5 -2
- package/dist/{VitestTransactionIsolator-BWwK-ca6.mjs → VitestTransactionIsolator-CskiiJbW.mjs} +5 -2
- package/dist/{VitestTransactionIsolator-DHf2MxmC.d.cts → VitestTransactionIsolator-DdLNODZg.d.cts} +8 -5
- package/dist/{VitestTransactionIsolator-Xqyjlmw6.d.mts → VitestTransactionIsolator-zdyiS_SY.d.mts} +8 -5
- package/dist/VitestTransactionIsolator.cjs +1 -1
- package/dist/VitestTransactionIsolator.d.cts +2 -2
- package/dist/VitestTransactionIsolator.d.mts +2 -2
- package/dist/VitestTransactionIsolator.mjs +1 -1
- package/dist/__tests__/KyselyFactory.spec.cjs +6 -6
- package/dist/__tests__/KyselyFactory.spec.mjs +6 -6
- package/dist/__tests__/ObjectionFactory.spec.cjs +288 -450
- package/dist/__tests__/ObjectionFactory.spec.mjs +289 -451
- package/dist/__tests__/PostgresKyselyMigrator.spec.cjs +397 -0
- package/dist/__tests__/PostgresKyselyMigrator.spec.d.cts +1 -0
- package/dist/__tests__/PostgresKyselyMigrator.spec.d.mts +1 -0
- package/dist/__tests__/PostgresKyselyMigrator.spec.mjs +396 -0
- package/dist/__tests__/PostgresMigrator.spec.cjs +1 -1
- package/dist/__tests__/PostgresMigrator.spec.mjs +1 -1
- package/dist/__tests__/PostgresObjectionMigrator.spec.cjs +1 -1
- package/dist/__tests__/PostgresObjectionMigrator.spec.mjs +1 -1
- package/dist/__tests__/VitestObjectionTransactionIsolator.spec.cjs +7 -16
- package/dist/__tests__/VitestObjectionTransactionIsolator.spec.mjs +7 -16
- package/dist/__tests__/integration.spec.cjs +6 -6
- package/dist/__tests__/integration.spec.mjs +6 -6
- package/dist/{faker-km9UhOS6.d.cts → faker-BSH1EMtg.d.cts} +2 -2
- package/dist/{faker-ChuHaYMR.d.mts → faker-C-Iuk_R1.d.mts} +2 -2
- package/dist/faker.d.cts +1 -1
- package/dist/faker.d.mts +1 -1
- package/dist/{helpers-BEmjyUVE.mjs → helpers-B4TXg3Wp.mjs} +11 -36
- package/dist/{helpers-CNMBePuj.cjs → helpers-Bf0nXhbu.cjs} +10 -41
- package/dist/{kysely-Cx_1pZYc.mjs → kysely-BsDbvw3r.mjs} +4 -4
- package/dist/{kysely-CBfCXxUn.cjs → kysely-CP1iJMvq.cjs} +4 -4
- package/dist/kysely.cjs +4 -4
- package/dist/kysely.d.cts +6 -6
- package/dist/kysely.d.mts +6 -6
- package/dist/kysely.mjs +4 -4
- package/dist/{objection-lsMgM5gP.mjs → objection-BEPk9h-g.mjs} +5 -5
- package/dist/{objection-CCD8fMLj.cjs → objection-Di7JSist.cjs} +5 -5
- package/dist/objection.cjs +4 -4
- package/dist/objection.d.cts +7 -7
- package/dist/objection.d.mts +7 -7
- package/dist/objection.mjs +4 -4
- package/package.json +3 -3
- package/src/Factory.ts +4 -1
- package/src/KyselyFactory.ts +6 -2
- package/src/ObjectionFactory.ts +34 -4
- package/src/VitestKyselyTransactionIsolator.ts +3 -0
- package/src/VitestObjectionTransactionIsolator.ts +5 -2
- package/src/VitestTransactionIsolator.ts +11 -8
- package/src/__tests__/KyselyFactory.spec.ts +1 -1
- package/src/__tests__/ObjectionFactory.spec.ts +423 -542
- package/src/__tests__/PostgresKyselyMigrator.spec.ts +690 -0
- package/src/__tests__/VitestObjectionTransactionIsolator.spec.ts +1 -10
- package/src/__tests__/integration.spec.ts +1 -1
- package/src/kysely.ts +6 -3
- package/src/objection.ts +7 -4
- package/test/helpers.ts +13 -21
- package/dist/example.cjs +0 -22
- package/dist/example.d.cts +0 -26
- package/dist/example.d.mts +0 -26
- package/dist/example.mjs +0 -22
- package/src/example.ts +0 -45
|
@@ -48,7 +48,7 @@ export enum IsolationLevel {
|
|
|
48
48
|
* Provides automatic transaction rollback after each test to maintain test isolation.
|
|
49
49
|
* Subclasses must implement the transact() method for their specific database driver.
|
|
50
50
|
*
|
|
51
|
-
* @template
|
|
51
|
+
* @template TConn - The database connection type
|
|
52
52
|
* @template Transaction - The transaction type
|
|
53
53
|
*
|
|
54
54
|
* @example
|
|
@@ -70,10 +70,7 @@ export enum IsolationLevel {
|
|
|
70
70
|
* });
|
|
71
71
|
* ```
|
|
72
72
|
*/
|
|
73
|
-
export abstract class VitestPostgresTransactionIsolator<
|
|
74
|
-
Connection,
|
|
75
|
-
Transaction,
|
|
76
|
-
> {
|
|
73
|
+
export abstract class VitestPostgresTransactionIsolator<TConn, Transaction> {
|
|
77
74
|
/**
|
|
78
75
|
* Abstract method to create a transaction with the specified isolation level.
|
|
79
76
|
* Must be implemented by subclasses for specific database drivers.
|
|
@@ -84,11 +81,12 @@ export abstract class VitestPostgresTransactionIsolator<
|
|
|
84
81
|
* @returns Promise that resolves when the transaction completes
|
|
85
82
|
*/
|
|
86
83
|
abstract transact(
|
|
87
|
-
conn:
|
|
84
|
+
conn: TConn,
|
|
88
85
|
isolationLevel: IsolationLevel,
|
|
89
86
|
fn: (trx: Transaction) => Promise<void>,
|
|
90
87
|
): Promise<void>;
|
|
91
88
|
|
|
89
|
+
abstract destroy(conn: TConn): Promise<void>;
|
|
92
90
|
/**
|
|
93
91
|
* Creates a new VitestPostgresTransactionIsolator instance.
|
|
94
92
|
*
|
|
@@ -119,7 +117,7 @@ export abstract class VitestPostgresTransactionIsolator<
|
|
|
119
117
|
* ```
|
|
120
118
|
*/
|
|
121
119
|
wrapVitestWithTransaction(
|
|
122
|
-
|
|
120
|
+
createConnection: DatabaseConnection<TConn>,
|
|
123
121
|
setup?: (trx: Transaction) => Promise<void>,
|
|
124
122
|
level: IsolationLevel = IsolationLevel.REPEATABLE_READ,
|
|
125
123
|
) {
|
|
@@ -135,7 +133,7 @@ export abstract class VitestPostgresTransactionIsolator<
|
|
|
135
133
|
}
|
|
136
134
|
|
|
137
135
|
let testError: Error | undefined;
|
|
138
|
-
|
|
136
|
+
const conn = await createConnection();
|
|
139
137
|
try {
|
|
140
138
|
await this.transact(conn, level, async (transaction) => {
|
|
141
139
|
try {
|
|
@@ -160,8 +158,13 @@ export abstract class VitestPostgresTransactionIsolator<
|
|
|
160
158
|
if (testError) {
|
|
161
159
|
throw testError;
|
|
162
160
|
}
|
|
161
|
+
} finally {
|
|
162
|
+
await this.destroy(conn);
|
|
163
163
|
}
|
|
164
164
|
},
|
|
165
165
|
});
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
|
+
|
|
169
|
+
export type DatabaseConnectionFn<Conn> = () => Conn | Promise<Conn>;
|
|
170
|
+
export type DatabaseConnection<Conn> = DatabaseConnectionFn<Conn>;
|
|
@@ -6,7 +6,7 @@ import { KyselyFactory } from '../KyselyFactory';
|
|
|
6
6
|
import { createKyselyDb } from '../helpers';
|
|
7
7
|
import { wrapVitestKyselyTransaction } from '../kysely';
|
|
8
8
|
|
|
9
|
-
const db = createKyselyDb<TestDatabase>(TEST_DATABASE_CONFIG);
|
|
9
|
+
const db = () => createKyselyDb<TestDatabase>(TEST_DATABASE_CONFIG);
|
|
10
10
|
const itWithTransaction = wrapVitestKyselyTransaction<TestDatabase>(
|
|
11
11
|
it,
|
|
12
12
|
db,
|