@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.
Files changed (99) hide show
  1. package/README.md +1 -1
  2. package/dist/{Factory-Bm44VKa-.d.cts → Factory-D7P3bKKb.d.mts} +2 -2
  3. package/dist/{Factory-tjCDNgUK.d.mts → Factory-pNV7ZQ7-.d.cts} +2 -2
  4. package/dist/Factory.d.cts +2 -2
  5. package/dist/Factory.d.mts +2 -2
  6. package/dist/{KyselyFactory-BoPDDitt.d.cts → KyselyFactory-72P98y5I.d.mts} +3 -3
  7. package/dist/{KyselyFactory-C3Bc3p4L.mjs → KyselyFactory-BcYkC0t2.mjs} +1 -1
  8. package/dist/{KyselyFactory-CXtfmMfK.cjs → KyselyFactory-Cf0o2YxO.cjs} +1 -1
  9. package/dist/{KyselyFactory-D82j74t9.d.mts → KyselyFactory-DLBrYWxU.d.cts} +3 -3
  10. package/dist/KyselyFactory.cjs +1 -1
  11. package/dist/KyselyFactory.d.cts +3 -3
  12. package/dist/KyselyFactory.d.mts +3 -3
  13. package/dist/KyselyFactory.mjs +1 -1
  14. package/dist/{ObjectionFactory-qIICOph3.mjs → ObjectionFactory-8hebmnai.mjs} +20 -4
  15. package/dist/{ObjectionFactory-BWMTXsxH.d.cts → ObjectionFactory-B40NQWSe.d.mts} +2 -2
  16. package/dist/{ObjectionFactory-DxIxJagq.cjs → ObjectionFactory-CDriunkS.cjs} +20 -4
  17. package/dist/{ObjectionFactory-CEG5qUrm.d.mts → ObjectionFactory-D3l1VuyX.d.cts} +2 -2
  18. package/dist/ObjectionFactory.cjs +1 -1
  19. package/dist/ObjectionFactory.d.cts +3 -3
  20. package/dist/ObjectionFactory.d.mts +3 -3
  21. package/dist/ObjectionFactory.mjs +1 -1
  22. package/dist/{VitestKyselyTransactionIsolator-ClCazkBO.d.mts → VitestKyselyTransactionIsolator-CnxpE9cH.d.mts} +2 -1
  23. package/dist/{VitestKyselyTransactionIsolator-UE1J-UoP.d.cts → VitestKyselyTransactionIsolator-DYUYVEh9.d.cts} +2 -1
  24. package/dist/{VitestKyselyTransactionIsolator-BKGT9nEG.mjs → VitestKyselyTransactionIsolator-Dq4Oeh-Y.mjs} +4 -1
  25. package/dist/{VitestKyselyTransactionIsolator-CIlpIO78.cjs → VitestKyselyTransactionIsolator-Dqy3qNoJ.cjs} +4 -1
  26. package/dist/VitestKyselyTransactionIsolator.cjs +2 -2
  27. package/dist/VitestKyselyTransactionIsolator.d.cts +2 -2
  28. package/dist/VitestKyselyTransactionIsolator.d.mts +2 -2
  29. package/dist/VitestKyselyTransactionIsolator.mjs +2 -2
  30. package/dist/{VitestObjectionTransactionIsolator-CO2nTi9r.d.cts → VitestObjectionTransactionIsolator-CJ4ds5Qv.d.cts} +3 -2
  31. package/dist/{VitestObjectionTransactionIsolator-D264iuPy.d.mts → VitestObjectionTransactionIsolator-DIM79dCq.d.mts} +3 -2
  32. package/dist/{VitestObjectionTransactionIsolator-BPoLUFop.mjs → VitestObjectionTransactionIsolator-DVtJG2F3.mjs} +6 -3
  33. package/dist/{VitestObjectionTransactionIsolator-DyqLp_in.cjs → VitestObjectionTransactionIsolator-LP4B0cqW.cjs} +6 -3
  34. package/dist/VitestObjectionTransactionIsolator.cjs +2 -2
  35. package/dist/VitestObjectionTransactionIsolator.d.cts +2 -2
  36. package/dist/VitestObjectionTransactionIsolator.d.mts +2 -2
  37. package/dist/VitestObjectionTransactionIsolator.mjs +2 -2
  38. package/dist/{VitestTransactionIsolator-CruLTRRi.cjs → VitestTransactionIsolator-BQ5FpLtC.cjs} +5 -2
  39. package/dist/{VitestTransactionIsolator-BWwK-ca6.mjs → VitestTransactionIsolator-CskiiJbW.mjs} +5 -2
  40. package/dist/{VitestTransactionIsolator-DHf2MxmC.d.cts → VitestTransactionIsolator-DdLNODZg.d.cts} +8 -5
  41. package/dist/{VitestTransactionIsolator-Xqyjlmw6.d.mts → VitestTransactionIsolator-zdyiS_SY.d.mts} +8 -5
  42. package/dist/VitestTransactionIsolator.cjs +1 -1
  43. package/dist/VitestTransactionIsolator.d.cts +2 -2
  44. package/dist/VitestTransactionIsolator.d.mts +2 -2
  45. package/dist/VitestTransactionIsolator.mjs +1 -1
  46. package/dist/__tests__/KyselyFactory.spec.cjs +6 -6
  47. package/dist/__tests__/KyselyFactory.spec.mjs +6 -6
  48. package/dist/__tests__/ObjectionFactory.spec.cjs +288 -450
  49. package/dist/__tests__/ObjectionFactory.spec.mjs +289 -451
  50. package/dist/__tests__/PostgresKyselyMigrator.spec.cjs +397 -0
  51. package/dist/__tests__/PostgresKyselyMigrator.spec.d.cts +1 -0
  52. package/dist/__tests__/PostgresKyselyMigrator.spec.d.mts +1 -0
  53. package/dist/__tests__/PostgresKyselyMigrator.spec.mjs +396 -0
  54. package/dist/__tests__/PostgresMigrator.spec.cjs +1 -1
  55. package/dist/__tests__/PostgresMigrator.spec.mjs +1 -1
  56. package/dist/__tests__/PostgresObjectionMigrator.spec.cjs +1 -1
  57. package/dist/__tests__/PostgresObjectionMigrator.spec.mjs +1 -1
  58. package/dist/__tests__/VitestObjectionTransactionIsolator.spec.cjs +7 -16
  59. package/dist/__tests__/VitestObjectionTransactionIsolator.spec.mjs +7 -16
  60. package/dist/__tests__/integration.spec.cjs +6 -6
  61. package/dist/__tests__/integration.spec.mjs +6 -6
  62. package/dist/{faker-km9UhOS6.d.cts → faker-BSH1EMtg.d.cts} +2 -2
  63. package/dist/{faker-ChuHaYMR.d.mts → faker-C-Iuk_R1.d.mts} +2 -2
  64. package/dist/faker.d.cts +1 -1
  65. package/dist/faker.d.mts +1 -1
  66. package/dist/{helpers-BEmjyUVE.mjs → helpers-B4TXg3Wp.mjs} +11 -36
  67. package/dist/{helpers-CNMBePuj.cjs → helpers-Bf0nXhbu.cjs} +10 -41
  68. package/dist/{kysely-Cx_1pZYc.mjs → kysely-BsDbvw3r.mjs} +4 -4
  69. package/dist/{kysely-CBfCXxUn.cjs → kysely-CP1iJMvq.cjs} +4 -4
  70. package/dist/kysely.cjs +4 -4
  71. package/dist/kysely.d.cts +6 -6
  72. package/dist/kysely.d.mts +6 -6
  73. package/dist/kysely.mjs +4 -4
  74. package/dist/{objection-lsMgM5gP.mjs → objection-BEPk9h-g.mjs} +5 -5
  75. package/dist/{objection-CCD8fMLj.cjs → objection-Di7JSist.cjs} +5 -5
  76. package/dist/objection.cjs +4 -4
  77. package/dist/objection.d.cts +7 -7
  78. package/dist/objection.d.mts +7 -7
  79. package/dist/objection.mjs +4 -4
  80. package/package.json +3 -3
  81. package/src/Factory.ts +4 -1
  82. package/src/KyselyFactory.ts +6 -2
  83. package/src/ObjectionFactory.ts +34 -4
  84. package/src/VitestKyselyTransactionIsolator.ts +3 -0
  85. package/src/VitestObjectionTransactionIsolator.ts +5 -2
  86. package/src/VitestTransactionIsolator.ts +11 -8
  87. package/src/__tests__/KyselyFactory.spec.ts +1 -1
  88. package/src/__tests__/ObjectionFactory.spec.ts +423 -542
  89. package/src/__tests__/PostgresKyselyMigrator.spec.ts +690 -0
  90. package/src/__tests__/VitestObjectionTransactionIsolator.spec.ts +1 -10
  91. package/src/__tests__/integration.spec.ts +1 -1
  92. package/src/kysely.ts +6 -3
  93. package/src/objection.ts +7 -4
  94. package/test/helpers.ts +13 -21
  95. package/dist/example.cjs +0 -22
  96. package/dist/example.d.cts +0 -26
  97. package/dist/example.d.mts +0 -26
  98. package/dist/example.mjs +0 -22
  99. 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 Connection - The database connection type
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: Connection,
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
- conn: Connection,
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,