@geekmidas/testkit 0.0.15 → 0.0.17
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/dist/{Factory-D7P3bKKb.d.mts → Factory-BZ8uMoXl.d.cts} +3 -2
- package/dist/{Factory-pNV7ZQ7-.d.cts → Factory-CRquB4vz.d.mts} +3 -2
- package/dist/Factory-WMhTNZ9S.cjs +2 -1
- package/dist/Factory-WMhTNZ9S.cjs.map +1 -0
- package/dist/Factory-z2m01hMj.mjs +2 -1
- package/dist/Factory-z2m01hMj.mjs.map +1 -0
- package/dist/Factory.d.cts +2 -2
- package/dist/Factory.d.mts +2 -2
- package/dist/{KyselyFactory-72P98y5I.d.mts → KyselyFactory-BDS_QqRT.d.mts} +4 -3
- package/dist/KyselyFactory-BcYkC0t2.mjs +2 -1
- package/dist/KyselyFactory-BcYkC0t2.mjs.map +1 -0
- package/dist/KyselyFactory-Cf0o2YxO.cjs +2 -1
- package/dist/KyselyFactory-Cf0o2YxO.cjs.map +1 -0
- package/dist/{KyselyFactory-DLBrYWxU.d.cts → KyselyFactory-DRQ83r0o.d.cts} +4 -3
- package/dist/KyselyFactory.d.cts +3 -3
- package/dist/KyselyFactory.d.mts +3 -3
- package/dist/ObjectionFactory-8hebmnai.mjs +2 -1
- package/dist/ObjectionFactory-8hebmnai.mjs.map +1 -0
- package/dist/{ObjectionFactory-B40NQWSe.d.mts → ObjectionFactory-C3tHvX1d.d.mts} +4 -3
- package/dist/{ObjectionFactory-D3l1VuyX.d.cts → ObjectionFactory-C4X78k0B.d.cts} +4 -3
- package/dist/ObjectionFactory-CDriunkS.cjs +2 -1
- package/dist/ObjectionFactory-CDriunkS.cjs.map +1 -0
- package/dist/ObjectionFactory.d.cts +3 -3
- package/dist/ObjectionFactory.d.mts +3 -3
- package/dist/{PostgresKyselyMigrator-_6yHZigp.d.mts → PostgresKyselyMigrator-CIx3AFSR.d.mts} +3 -2
- package/dist/PostgresKyselyMigrator-CQ3aUoy_.d.cts +2 -1
- package/dist/PostgresKyselyMigrator-CfytARcA.cjs +2 -1
- package/dist/PostgresKyselyMigrator-CfytARcA.cjs.map +1 -0
- package/dist/{PostgresKyselyMigrator-Bdhl251C.mjs → PostgresKyselyMigrator-upT-hmrz.mjs} +3 -2
- package/dist/PostgresKyselyMigrator-upT-hmrz.mjs.map +1 -0
- package/dist/PostgresKyselyMigrator.d.mts +2 -2
- package/dist/PostgresKyselyMigrator.mjs +2 -2
- package/dist/PostgresMigrator-D5UkK1_K.d.cts +2 -1
- package/dist/PostgresMigrator-DFcNdCvD.cjs +2 -1
- package/dist/PostgresMigrator-DFcNdCvD.cjs.map +1 -0
- package/dist/{PostgresMigrator-BlvuQl7d.d.mts → PostgresMigrator-DQaRxoaY.d.mts} +2 -1
- package/dist/{PostgresMigrator-DxPC_gGu.mjs → PostgresMigrator-DbuJGAVy.mjs} +4 -3
- package/dist/PostgresMigrator-DbuJGAVy.mjs.map +1 -0
- package/dist/PostgresMigrator.d.mts +1 -1
- package/dist/PostgresMigrator.mjs +1 -1
- package/dist/PostgresObjectionMigrator-BG6ymgnt.cjs +2 -1
- package/dist/PostgresObjectionMigrator-BG6ymgnt.cjs.map +1 -0
- package/dist/PostgresObjectionMigrator-CZHHcCOv.d.cts +2 -1
- package/dist/{PostgresObjectionMigrator-G4h5FLvU.mjs → PostgresObjectionMigrator-DPj2pOpX.mjs} +3 -2
- package/dist/PostgresObjectionMigrator-DPj2pOpX.mjs.map +1 -0
- package/dist/{PostgresObjectionMigrator-C69n7vzr.d.mts → PostgresObjectionMigrator-D_hCcrQu.d.mts} +3 -2
- package/dist/PostgresObjectionMigrator.d.mts +2 -2
- package/dist/PostgresObjectionMigrator.mjs +2 -2
- package/dist/VitestKyselyTransactionIsolator-BxjlD1YM.mjs +2 -1
- package/dist/VitestKyselyTransactionIsolator-BxjlD1YM.mjs.map +1 -0
- package/dist/{VitestKyselyTransactionIsolator-CnxpE9cH.d.mts → VitestKyselyTransactionIsolator-COCVfvfr.d.mts} +3 -2
- package/dist/VitestKyselyTransactionIsolator-Cst3vFjb.cjs +2 -1
- package/dist/VitestKyselyTransactionIsolator-Cst3vFjb.cjs.map +1 -0
- package/dist/VitestKyselyTransactionIsolator-DYUYVEh9.d.cts +2 -1
- package/dist/VitestKyselyTransactionIsolator.d.mts +2 -2
- package/dist/VitestObjectionTransactionIsolator-BU-jXEhz.mjs +2 -1
- package/dist/VitestObjectionTransactionIsolator-BU-jXEhz.mjs.map +1 -0
- package/dist/VitestObjectionTransactionIsolator-CJ4ds5Qv.d.cts +2 -1
- package/dist/VitestObjectionTransactionIsolator-DzeF4UAq.cjs +2 -1
- package/dist/VitestObjectionTransactionIsolator-DzeF4UAq.cjs.map +1 -0
- package/dist/{VitestObjectionTransactionIsolator-DIM79dCq.d.mts → VitestObjectionTransactionIsolator-b973r9O1.d.mts} +3 -2
- package/dist/VitestObjectionTransactionIsolator.d.mts +2 -2
- package/dist/VitestTransactionIsolator-BQ5FpLtC.cjs +2 -1
- package/dist/VitestTransactionIsolator-BQ5FpLtC.cjs.map +1 -0
- package/dist/{VitestTransactionIsolator-zdyiS_SY.d.mts → VitestTransactionIsolator-CsfJBxcb.d.mts} +2 -1
- package/dist/VitestTransactionIsolator-CskiiJbW.mjs +2 -1
- package/dist/VitestTransactionIsolator-CskiiJbW.mjs.map +1 -0
- package/dist/VitestTransactionIsolator-DdLNODZg.d.cts +2 -1
- package/dist/VitestTransactionIsolator.d.mts +1 -1
- package/dist/aws.cjs +126 -0
- package/dist/aws.cjs.map +1 -0
- package/dist/aws.d.cts +22 -0
- package/dist/aws.d.mts +22 -0
- package/dist/aws.mjs +123 -0
- package/dist/aws.mjs.map +1 -0
- package/dist/better-auth.cjs +245 -0
- package/dist/better-auth.cjs.map +1 -0
- package/dist/better-auth.d.cts +17 -0
- package/dist/better-auth.d.mts +17 -0
- package/dist/better-auth.mjs +244 -0
- package/dist/better-auth.mjs.map +1 -0
- package/dist/directory-B-Ozljzk.mjs +22 -0
- package/dist/directory-B-Ozljzk.mjs.map +1 -0
- package/dist/directory-B4oYx02C.d.mts +12 -0
- package/dist/directory-BUcnztHI.d.cts +12 -0
- package/dist/directory-BVC8g7cX.cjs +28 -0
- package/dist/directory-BVC8g7cX.cjs.map +1 -0
- package/dist/faker-B14IEMIN.cjs +2 -1
- package/dist/faker-B14IEMIN.cjs.map +1 -0
- package/dist/faker-BGKYFoCT.mjs +2 -1
- package/dist/faker-BGKYFoCT.mjs.map +1 -0
- package/dist/{faker-C-Iuk_R1.d.mts → faker-Br8MzXil.d.mts} +4 -3
- package/dist/{faker-BSH1EMtg.d.cts → faker-Cg76aFNO.d.cts} +4 -3
- package/dist/faker.d.cts +1 -1
- package/dist/faker.d.mts +1 -1
- package/dist/helpers.cjs +48 -2
- package/dist/helpers.cjs.map +1 -0
- package/dist/helpers.d.cts +2 -1
- package/dist/helpers.d.mts +2 -1
- package/dist/helpers.mjs +47 -2
- package/dist/helpers.mjs.map +1 -0
- package/dist/kysely.cjs +65 -2
- package/dist/kysely.cjs.map +1 -0
- package/dist/kysely.d.cts +5 -4
- package/dist/kysely.d.mts +9 -8
- package/dist/kysely.mjs +67 -4
- package/dist/kysely.mjs.map +1 -0
- package/dist/logger.cjs +23 -0
- package/dist/logger.cjs.map +1 -0
- package/dist/logger.d.cts +11 -0
- package/dist/logger.d.mts +11 -0
- package/dist/logger.mjs +22 -0
- package/dist/logger.mjs.map +1 -0
- package/dist/objection.cjs +80 -2
- package/dist/objection.cjs.map +1 -0
- package/dist/objection.d.cts +5 -4
- package/dist/objection.d.mts +9 -8
- package/dist/objection.mjs +82 -4
- package/dist/objection.mjs.map +1 -0
- package/dist/os/directory.cjs +3 -0
- package/dist/os/directory.d.cts +2 -0
- package/dist/os/directory.d.mts +2 -0
- package/dist/os/directory.mjs +3 -0
- package/dist/os/index.cjs +3 -0
- package/dist/os/index.d.cts +2 -0
- package/dist/os/index.d.mts +2 -0
- package/dist/os/index.mjs +3 -0
- package/dist/timer.cjs +9 -0
- package/dist/timer.cjs.map +1 -0
- package/dist/timer.d.cts +5 -0
- package/dist/timer.d.mts +5 -0
- package/dist/timer.mjs +8 -0
- package/dist/timer.mjs.map +1 -0
- package/package.json +30 -2
- package/src/__tests__/better-auth.spec.ts +21 -0
- package/src/aws.ts +131 -0
- package/src/better-auth.ts +327 -0
- package/src/logger.ts +18 -0
- package/src/os/directory.ts +21 -0
- package/src/os/index.ts +1 -0
- package/src/timer.ts +3 -0
- package/dist/__tests__/Factory.spec.cjs +0 -139
- package/dist/__tests__/Factory.spec.d.cts +0 -1
- package/dist/__tests__/Factory.spec.d.mts +0 -1
- package/dist/__tests__/Factory.spec.mjs +0 -138
- package/dist/__tests__/KyselyFactory.spec.cjs +0 -235
- package/dist/__tests__/KyselyFactory.spec.d.cts +0 -1
- package/dist/__tests__/KyselyFactory.spec.d.mts +0 -1
- package/dist/__tests__/KyselyFactory.spec.mjs +0 -234
- package/dist/__tests__/ObjectionFactory.spec.cjs +0 -340
- package/dist/__tests__/ObjectionFactory.spec.d.cts +0 -1
- package/dist/__tests__/ObjectionFactory.spec.d.mts +0 -1
- package/dist/__tests__/ObjectionFactory.spec.mjs +0 -339
- package/dist/__tests__/PostgresKyselyMigrator.spec.cjs +0 -397
- package/dist/__tests__/PostgresKyselyMigrator.spec.d.cts +0 -1
- package/dist/__tests__/PostgresKyselyMigrator.spec.d.mts +0 -1
- package/dist/__tests__/PostgresKyselyMigrator.spec.mjs +0 -396
- package/dist/__tests__/PostgresMigrator.spec.cjs +0 -256
- package/dist/__tests__/PostgresMigrator.spec.d.cts +0 -1
- package/dist/__tests__/PostgresMigrator.spec.d.mts +0 -1
- package/dist/__tests__/PostgresMigrator.spec.mjs +0 -255
- package/dist/__tests__/PostgresObjectionMigrator.spec.cjs +0 -432
- package/dist/__tests__/PostgresObjectionMigrator.spec.d.cts +0 -1
- package/dist/__tests__/PostgresObjectionMigrator.spec.d.mts +0 -1
- package/dist/__tests__/PostgresObjectionMigrator.spec.mjs +0 -431
- package/dist/__tests__/VitestObjectionTransactionIsolator.spec.cjs +0 -122
- package/dist/__tests__/VitestObjectionTransactionIsolator.spec.d.cts +0 -1
- package/dist/__tests__/VitestObjectionTransactionIsolator.spec.d.mts +0 -1
- package/dist/__tests__/VitestObjectionTransactionIsolator.spec.mjs +0 -121
- package/dist/__tests__/faker.spec.cjs +0 -115
- package/dist/__tests__/faker.spec.d.cts +0 -1
- package/dist/__tests__/faker.spec.d.mts +0 -1
- package/dist/__tests__/faker.spec.mjs +0 -114
- package/dist/__tests__/integration.spec.cjs +0 -282
- package/dist/__tests__/integration.spec.d.cts +0 -1
- package/dist/__tests__/integration.spec.d.mts +0 -1
- package/dist/__tests__/integration.spec.mjs +0 -281
- package/dist/helpers-B4TXg3Wp.mjs +0 -86
- package/dist/helpers-Bf0nXhbu.cjs +0 -116
- package/dist/helpers-BuPmgzyQ.mjs +0 -47
- package/dist/helpers-nEUtQ7eo.cjs +0 -53
- package/dist/kysely-C3h7kitU.mjs +0 -67
- package/dist/kysely-VU3MwvMD.cjs +0 -72
- package/dist/objection-BI7F86qf.mjs +0 -82
- package/dist/objection-BpLv_ZfC.cjs +0 -87
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
const require_chunk = require('../chunk-CUT6urMc.cjs');
|
|
2
|
-
const require_faker = require('../faker-B14IEMIN.cjs');
|
|
3
|
-
const vitest = require_chunk.__toESM(require("vitest"));
|
|
4
|
-
|
|
5
|
-
//#region src/__tests__/faker.spec.ts
|
|
6
|
-
(0, vitest.describe)("faker", () => {
|
|
7
|
-
(0, vitest.describe)("sequence", () => {
|
|
8
|
-
(0, vitest.beforeEach)(() => {
|
|
9
|
-
require_faker.faker.resetAllSequences();
|
|
10
|
-
});
|
|
11
|
-
(0, vitest.it)("should start from 1 for a new sequence", () => {
|
|
12
|
-
(0, vitest.expect)(require_faker.faker.sequence()).toBe(1);
|
|
13
|
-
(0, vitest.expect)(require_faker.faker.sequence("custom")).toBe(1);
|
|
14
|
-
});
|
|
15
|
-
(0, vitest.it)("should increment on each call", () => {
|
|
16
|
-
(0, vitest.expect)(require_faker.faker.sequence()).toBe(1);
|
|
17
|
-
(0, vitest.expect)(require_faker.faker.sequence()).toBe(2);
|
|
18
|
-
(0, vitest.expect)(require_faker.faker.sequence()).toBe(3);
|
|
19
|
-
});
|
|
20
|
-
(0, vitest.it)("should maintain separate counters for different names", () => {
|
|
21
|
-
(0, vitest.expect)(require_faker.faker.sequence("users")).toBe(1);
|
|
22
|
-
(0, vitest.expect)(require_faker.faker.sequence("posts")).toBe(1);
|
|
23
|
-
(0, vitest.expect)(require_faker.faker.sequence("users")).toBe(2);
|
|
24
|
-
(0, vitest.expect)(require_faker.faker.sequence("posts")).toBe(2);
|
|
25
|
-
(0, vitest.expect)(require_faker.faker.sequence("users")).toBe(3);
|
|
26
|
-
(0, vitest.expect)(require_faker.faker.sequence("posts")).toBe(3);
|
|
27
|
-
});
|
|
28
|
-
(0, vitest.it)("should handle concurrent-like sequential calls", () => {
|
|
29
|
-
const results = [];
|
|
30
|
-
for (let i = 0; i < 100; i++) results.push(require_faker.faker.sequence("concurrent"));
|
|
31
|
-
(0, vitest.expect)(results).toEqual(Array.from({ length: 100 }, (_, i) => i + 1));
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
(0, vitest.describe)("resetSequence", () => {
|
|
35
|
-
(0, vitest.beforeEach)(() => {
|
|
36
|
-
require_faker.faker.resetAllSequences();
|
|
37
|
-
});
|
|
38
|
-
(0, vitest.it)("should reset a specific sequence to 0", () => {
|
|
39
|
-
require_faker.faker.sequence("test");
|
|
40
|
-
require_faker.faker.sequence("test");
|
|
41
|
-
(0, vitest.expect)(require_faker.faker.sequence("test")).toBe(3);
|
|
42
|
-
require_faker.faker.resetSequence("test");
|
|
43
|
-
(0, vitest.expect)(require_faker.faker.sequence("test")).toBe(1);
|
|
44
|
-
});
|
|
45
|
-
(0, vitest.it)("should reset a specific sequence to a custom value", () => {
|
|
46
|
-
require_faker.faker.sequence("test");
|
|
47
|
-
require_faker.faker.resetSequence("test", 10);
|
|
48
|
-
(0, vitest.expect)(require_faker.faker.sequence("test")).toBe(11);
|
|
49
|
-
});
|
|
50
|
-
(0, vitest.it)("should create a new sequence if it does not exist", () => {
|
|
51
|
-
require_faker.faker.resetSequence("new", 5);
|
|
52
|
-
(0, vitest.expect)(require_faker.faker.sequence("new")).toBe(6);
|
|
53
|
-
});
|
|
54
|
-
(0, vitest.it)("should not affect other sequences", () => {
|
|
55
|
-
require_faker.faker.sequence("test1");
|
|
56
|
-
require_faker.faker.sequence("test1");
|
|
57
|
-
require_faker.faker.sequence("test2");
|
|
58
|
-
require_faker.faker.resetSequence("test1");
|
|
59
|
-
(0, vitest.expect)(require_faker.faker.sequence("test1")).toBe(1);
|
|
60
|
-
(0, vitest.expect)(require_faker.faker.sequence("test2")).toBe(2);
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
(0, vitest.describe)("resetAllSequences", () => {
|
|
64
|
-
(0, vitest.it)("should reset all sequences", () => {
|
|
65
|
-
require_faker.faker.sequence("test1");
|
|
66
|
-
require_faker.faker.sequence("test1");
|
|
67
|
-
require_faker.faker.sequence("test2");
|
|
68
|
-
require_faker.faker.sequence("test2");
|
|
69
|
-
require_faker.faker.sequence("test2");
|
|
70
|
-
require_faker.faker.resetAllSequences();
|
|
71
|
-
(0, vitest.expect)(require_faker.faker.sequence("test1")).toBe(1);
|
|
72
|
-
(0, vitest.expect)(require_faker.faker.sequence("test2")).toBe(1);
|
|
73
|
-
(0, vitest.expect)(require_faker.faker.sequence()).toBe(1);
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
(0, vitest.describe)("identifier", () => {
|
|
77
|
-
(0, vitest.beforeEach)(() => {
|
|
78
|
-
require_faker.faker.resetAllSequences();
|
|
79
|
-
});
|
|
80
|
-
(0, vitest.it)("should include sequence number in identifier", () => {
|
|
81
|
-
const id1 = require_faker.faker.identifier();
|
|
82
|
-
const id2 = require_faker.faker.identifier();
|
|
83
|
-
(0, vitest.expect)(id1).not.toBe(id2);
|
|
84
|
-
(0, vitest.expect)(id1).toMatch(/1$/);
|
|
85
|
-
(0, vitest.expect)(id2).toMatch(/2$/);
|
|
86
|
-
});
|
|
87
|
-
(0, vitest.it)("should use custom suffix when provided", () => {
|
|
88
|
-
const id = require_faker.faker.identifier("customSuffix");
|
|
89
|
-
(0, vitest.expect)(id).toMatch(/\.customSuffix$/);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
(0, vitest.describe)("timestamps", () => {
|
|
93
|
-
(0, vitest.it)("should return createdAt and updatedAt dates", () => {
|
|
94
|
-
const { createdAt, updatedAt } = require_faker.faker.timestamps();
|
|
95
|
-
(0, vitest.expect)(createdAt).toBeInstanceOf(Date);
|
|
96
|
-
(0, vitest.expect)(updatedAt).toBeInstanceOf(Date);
|
|
97
|
-
(0, vitest.expect)(createdAt.getTime()).toBeLessThanOrEqual(updatedAt.getTime());
|
|
98
|
-
(0, vitest.expect)(updatedAt.getTime()).toBeLessThanOrEqual((/* @__PURE__ */ new Date()).getTime());
|
|
99
|
-
});
|
|
100
|
-
(0, vitest.it)("should have milliseconds set to 0", () => {
|
|
101
|
-
const { createdAt, updatedAt } = require_faker.faker.timestamps();
|
|
102
|
-
(0, vitest.expect)(createdAt.getMilliseconds()).toBe(0);
|
|
103
|
-
(0, vitest.expect)(updatedAt.getMilliseconds()).toBe(0);
|
|
104
|
-
});
|
|
105
|
-
});
|
|
106
|
-
(0, vitest.describe)("price", () => {
|
|
107
|
-
(0, vitest.it)("should return a number", () => {
|
|
108
|
-
const result = require_faker.faker.price();
|
|
109
|
-
(0, vitest.expect)(typeof result).toBe("number");
|
|
110
|
-
(0, vitest.expect)(result).toBeGreaterThan(0);
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
|
|
115
|
-
//#endregion
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { faker } from "../faker-BGKYFoCT.mjs";
|
|
2
|
-
import { beforeEach, describe, expect, it } from "vitest";
|
|
3
|
-
|
|
4
|
-
//#region src/__tests__/faker.spec.ts
|
|
5
|
-
describe("faker", () => {
|
|
6
|
-
describe("sequence", () => {
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
faker.resetAllSequences();
|
|
9
|
-
});
|
|
10
|
-
it("should start from 1 for a new sequence", () => {
|
|
11
|
-
expect(faker.sequence()).toBe(1);
|
|
12
|
-
expect(faker.sequence("custom")).toBe(1);
|
|
13
|
-
});
|
|
14
|
-
it("should increment on each call", () => {
|
|
15
|
-
expect(faker.sequence()).toBe(1);
|
|
16
|
-
expect(faker.sequence()).toBe(2);
|
|
17
|
-
expect(faker.sequence()).toBe(3);
|
|
18
|
-
});
|
|
19
|
-
it("should maintain separate counters for different names", () => {
|
|
20
|
-
expect(faker.sequence("users")).toBe(1);
|
|
21
|
-
expect(faker.sequence("posts")).toBe(1);
|
|
22
|
-
expect(faker.sequence("users")).toBe(2);
|
|
23
|
-
expect(faker.sequence("posts")).toBe(2);
|
|
24
|
-
expect(faker.sequence("users")).toBe(3);
|
|
25
|
-
expect(faker.sequence("posts")).toBe(3);
|
|
26
|
-
});
|
|
27
|
-
it("should handle concurrent-like sequential calls", () => {
|
|
28
|
-
const results = [];
|
|
29
|
-
for (let i = 0; i < 100; i++) results.push(faker.sequence("concurrent"));
|
|
30
|
-
expect(results).toEqual(Array.from({ length: 100 }, (_, i) => i + 1));
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
describe("resetSequence", () => {
|
|
34
|
-
beforeEach(() => {
|
|
35
|
-
faker.resetAllSequences();
|
|
36
|
-
});
|
|
37
|
-
it("should reset a specific sequence to 0", () => {
|
|
38
|
-
faker.sequence("test");
|
|
39
|
-
faker.sequence("test");
|
|
40
|
-
expect(faker.sequence("test")).toBe(3);
|
|
41
|
-
faker.resetSequence("test");
|
|
42
|
-
expect(faker.sequence("test")).toBe(1);
|
|
43
|
-
});
|
|
44
|
-
it("should reset a specific sequence to a custom value", () => {
|
|
45
|
-
faker.sequence("test");
|
|
46
|
-
faker.resetSequence("test", 10);
|
|
47
|
-
expect(faker.sequence("test")).toBe(11);
|
|
48
|
-
});
|
|
49
|
-
it("should create a new sequence if it does not exist", () => {
|
|
50
|
-
faker.resetSequence("new", 5);
|
|
51
|
-
expect(faker.sequence("new")).toBe(6);
|
|
52
|
-
});
|
|
53
|
-
it("should not affect other sequences", () => {
|
|
54
|
-
faker.sequence("test1");
|
|
55
|
-
faker.sequence("test1");
|
|
56
|
-
faker.sequence("test2");
|
|
57
|
-
faker.resetSequence("test1");
|
|
58
|
-
expect(faker.sequence("test1")).toBe(1);
|
|
59
|
-
expect(faker.sequence("test2")).toBe(2);
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
describe("resetAllSequences", () => {
|
|
63
|
-
it("should reset all sequences", () => {
|
|
64
|
-
faker.sequence("test1");
|
|
65
|
-
faker.sequence("test1");
|
|
66
|
-
faker.sequence("test2");
|
|
67
|
-
faker.sequence("test2");
|
|
68
|
-
faker.sequence("test2");
|
|
69
|
-
faker.resetAllSequences();
|
|
70
|
-
expect(faker.sequence("test1")).toBe(1);
|
|
71
|
-
expect(faker.sequence("test2")).toBe(1);
|
|
72
|
-
expect(faker.sequence()).toBe(1);
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
describe("identifier", () => {
|
|
76
|
-
beforeEach(() => {
|
|
77
|
-
faker.resetAllSequences();
|
|
78
|
-
});
|
|
79
|
-
it("should include sequence number in identifier", () => {
|
|
80
|
-
const id1 = faker.identifier();
|
|
81
|
-
const id2 = faker.identifier();
|
|
82
|
-
expect(id1).not.toBe(id2);
|
|
83
|
-
expect(id1).toMatch(/1$/);
|
|
84
|
-
expect(id2).toMatch(/2$/);
|
|
85
|
-
});
|
|
86
|
-
it("should use custom suffix when provided", () => {
|
|
87
|
-
const id = faker.identifier("customSuffix");
|
|
88
|
-
expect(id).toMatch(/\.customSuffix$/);
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
describe("timestamps", () => {
|
|
92
|
-
it("should return createdAt and updatedAt dates", () => {
|
|
93
|
-
const { createdAt, updatedAt } = faker.timestamps();
|
|
94
|
-
expect(createdAt).toBeInstanceOf(Date);
|
|
95
|
-
expect(updatedAt).toBeInstanceOf(Date);
|
|
96
|
-
expect(createdAt.getTime()).toBeLessThanOrEqual(updatedAt.getTime());
|
|
97
|
-
expect(updatedAt.getTime()).toBeLessThanOrEqual((/* @__PURE__ */ new Date()).getTime());
|
|
98
|
-
});
|
|
99
|
-
it("should have milliseconds set to 0", () => {
|
|
100
|
-
const { createdAt, updatedAt } = faker.timestamps();
|
|
101
|
-
expect(createdAt.getMilliseconds()).toBe(0);
|
|
102
|
-
expect(updatedAt.getMilliseconds()).toBe(0);
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
describe("price", () => {
|
|
106
|
-
it("should return a number", () => {
|
|
107
|
-
const result = faker.price();
|
|
108
|
-
expect(typeof result).toBe("number");
|
|
109
|
-
expect(result).toBeGreaterThan(0);
|
|
110
|
-
});
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
//#endregion
|
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
const require_chunk = require('../chunk-CUT6urMc.cjs');
|
|
2
|
-
require('../Factory-WMhTNZ9S.cjs');
|
|
3
|
-
require('../faker-B14IEMIN.cjs');
|
|
4
|
-
const require_KyselyFactory = require('../KyselyFactory-Cf0o2YxO.cjs');
|
|
5
|
-
require('../PostgresMigrator-DFcNdCvD.cjs');
|
|
6
|
-
require('../PostgresKyselyMigrator-CfytARcA.cjs');
|
|
7
|
-
require('../VitestTransactionIsolator-BQ5FpLtC.cjs');
|
|
8
|
-
require('../VitestKyselyTransactionIsolator-Cst3vFjb.cjs');
|
|
9
|
-
const require_helpers = require('../helpers-nEUtQ7eo.cjs');
|
|
10
|
-
const require_kysely = require('../kysely-VU3MwvMD.cjs');
|
|
11
|
-
const require_helpers$1 = require('../helpers-Bf0nXhbu.cjs');
|
|
12
|
-
const vitest = require_chunk.__toESM(require("vitest"));
|
|
13
|
-
|
|
14
|
-
//#region src/__tests__/integration.spec.ts
|
|
15
|
-
const db = () => require_helpers.createKyselyDb(require_helpers$1.TEST_DATABASE_CONFIG);
|
|
16
|
-
const it = require_kysely.wrapVitestKyselyTransaction(vitest.it, db, require_helpers$1.createTestTables);
|
|
17
|
-
(0, vitest.describe)("Testkit Integration Tests", () => {
|
|
18
|
-
(0, vitest.beforeAll)(async () => {});
|
|
19
|
-
(0, vitest.describe)("Complex Factory Scenarios", () => {
|
|
20
|
-
it("should handle complex multi-table data creation", async ({ trx }) => {
|
|
21
|
-
const userBuilder = require_KyselyFactory.KyselyFactory.createBuilder("users", async (attrs) => ({
|
|
22
|
-
name: "John Doe",
|
|
23
|
-
email: `user${Date.now()}-${Math.random()}@example.com`,
|
|
24
|
-
role: "user",
|
|
25
|
-
createdAt: /* @__PURE__ */ new Date(),
|
|
26
|
-
updatedAt: /* @__PURE__ */ new Date()
|
|
27
|
-
}));
|
|
28
|
-
const postBuilder = require_KyselyFactory.KyselyFactory.createBuilder("posts", async (attrs, factory$1) => {
|
|
29
|
-
if (!attrs.userId) {
|
|
30
|
-
const user = await factory$1.insert("user");
|
|
31
|
-
return {
|
|
32
|
-
title: "Default Post Title",
|
|
33
|
-
content: "Default post content...",
|
|
34
|
-
userId: user.id,
|
|
35
|
-
published: false,
|
|
36
|
-
createdAt: /* @__PURE__ */ new Date(),
|
|
37
|
-
updatedAt: /* @__PURE__ */ new Date()
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
return {
|
|
41
|
-
title: "Default Post Title",
|
|
42
|
-
content: "Default post content...",
|
|
43
|
-
published: false,
|
|
44
|
-
createdAt: /* @__PURE__ */ new Date(),
|
|
45
|
-
updatedAt: /* @__PURE__ */ new Date()
|
|
46
|
-
};
|
|
47
|
-
});
|
|
48
|
-
const commentBuilder = require_KyselyFactory.KyselyFactory.createBuilder("comments", async (attrs, factory$1) => {
|
|
49
|
-
let postId = attrs.postId;
|
|
50
|
-
let userId = attrs.userId;
|
|
51
|
-
if (!postId) {
|
|
52
|
-
const post = await factory$1.insert("post");
|
|
53
|
-
postId = post.id;
|
|
54
|
-
}
|
|
55
|
-
if (!userId) {
|
|
56
|
-
const user = await factory$1.insert("user");
|
|
57
|
-
userId = user.id;
|
|
58
|
-
}
|
|
59
|
-
return {
|
|
60
|
-
content: "Default comment content",
|
|
61
|
-
postId,
|
|
62
|
-
userId,
|
|
63
|
-
createdAt: /* @__PURE__ */ new Date()
|
|
64
|
-
};
|
|
65
|
-
});
|
|
66
|
-
const builders = {
|
|
67
|
-
user: userBuilder,
|
|
68
|
-
post: postBuilder,
|
|
69
|
-
comment: commentBuilder
|
|
70
|
-
};
|
|
71
|
-
const factory = new require_KyselyFactory.KyselyFactory(builders, {}, trx);
|
|
72
|
-
const author = await factory.insert("user", {
|
|
73
|
-
name: "Jane Author",
|
|
74
|
-
email: "jane@author.com",
|
|
75
|
-
role: "admin"
|
|
76
|
-
});
|
|
77
|
-
const posts = await factory.insertMany(3, "post", (idx) => ({
|
|
78
|
-
title: `Post ${idx + 1}`,
|
|
79
|
-
content: `Content for post ${idx + 1}`,
|
|
80
|
-
userId: author.id,
|
|
81
|
-
published: idx < 2
|
|
82
|
-
}));
|
|
83
|
-
const comments = await factory.insertMany(5, "comment", (idx) => ({
|
|
84
|
-
content: `Comment ${idx + 1} on first post`,
|
|
85
|
-
postId: posts[0].id
|
|
86
|
-
}));
|
|
87
|
-
(0, vitest.expect)(author.name).toBe("Jane Author");
|
|
88
|
-
(0, vitest.expect)(author.role).toBe("admin");
|
|
89
|
-
(0, vitest.expect)(posts).toHaveLength(3);
|
|
90
|
-
(0, vitest.expect)(posts[0].title).toBe("Post 1");
|
|
91
|
-
(0, vitest.expect)(posts[0].published).toBe(true);
|
|
92
|
-
(0, vitest.expect)(posts[2].published).toBe(false);
|
|
93
|
-
(0, vitest.expect)(comments).toHaveLength(5);
|
|
94
|
-
comments.forEach((comment, idx) => {
|
|
95
|
-
(0, vitest.expect)(comment.content).toBe(`Comment ${idx + 1} on first post`);
|
|
96
|
-
(0, vitest.expect)(comment.postId).toBe(posts[0].id);
|
|
97
|
-
});
|
|
98
|
-
const authorPosts = await trx.selectFrom("posts").selectAll().where("userId", "=", author.id).execute();
|
|
99
|
-
(0, vitest.expect)(authorPosts).toHaveLength(3);
|
|
100
|
-
const firstPostComments = await trx.selectFrom("comments").selectAll().where("postId", "=", posts[0].id).execute();
|
|
101
|
-
(0, vitest.expect)(firstPostComments).toHaveLength(5);
|
|
102
|
-
});
|
|
103
|
-
it("should handle seeds for complex scenarios", async ({ trx }) => {
|
|
104
|
-
const c = await trx.selectFrom("users").select(trx.fn.count("id").as("count")).executeTakeFirst();
|
|
105
|
-
const userBuilder = require_KyselyFactory.KyselyFactory.createBuilder("users", async (attrs) => ({
|
|
106
|
-
name: "Default User",
|
|
107
|
-
email: `user${Date.now()}-${Math.random()}@example.com`,
|
|
108
|
-
role: "user",
|
|
109
|
-
createdAt: /* @__PURE__ */ new Date(),
|
|
110
|
-
updatedAt: /* @__PURE__ */ new Date()
|
|
111
|
-
}));
|
|
112
|
-
const postBuilder = require_KyselyFactory.KyselyFactory.createBuilder("posts", async (attrs, factory$1) => {
|
|
113
|
-
if (!attrs.userId) {
|
|
114
|
-
const user = await factory$1.insert("user");
|
|
115
|
-
return {
|
|
116
|
-
title: "Default Post",
|
|
117
|
-
content: "Default content",
|
|
118
|
-
userId: user.id,
|
|
119
|
-
published: false,
|
|
120
|
-
createdAt: /* @__PURE__ */ new Date(),
|
|
121
|
-
updatedAt: /* @__PURE__ */ new Date()
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
return {
|
|
125
|
-
title: "Default Post",
|
|
126
|
-
content: "Default content",
|
|
127
|
-
published: false,
|
|
128
|
-
createdAt: /* @__PURE__ */ new Date(),
|
|
129
|
-
updatedAt: /* @__PURE__ */ new Date()
|
|
130
|
-
};
|
|
131
|
-
});
|
|
132
|
-
const builders = {
|
|
133
|
-
user: userBuilder,
|
|
134
|
-
post: postBuilder
|
|
135
|
-
};
|
|
136
|
-
const seeds = {
|
|
137
|
-
blogWithAdminAndPosts: require_KyselyFactory.KyselyFactory.createSeed(async (attrs, factory$1, db$1) => {
|
|
138
|
-
const admin = await factory$1.insert("user", {
|
|
139
|
-
name: "Blog Admin",
|
|
140
|
-
email: "admin@blog.com",
|
|
141
|
-
role: "admin"
|
|
142
|
-
});
|
|
143
|
-
const postCount = attrs.postCount || 3;
|
|
144
|
-
const posts = await factory$1.insertMany(postCount, "post", (idx) => ({
|
|
145
|
-
title: `Admin Post ${idx + 1}`,
|
|
146
|
-
content: `Content for admin post ${idx + 1}`,
|
|
147
|
-
userId: admin.id,
|
|
148
|
-
published: true
|
|
149
|
-
}));
|
|
150
|
-
return {
|
|
151
|
-
admin,
|
|
152
|
-
posts,
|
|
153
|
-
summary: {
|
|
154
|
-
adminId: admin.id,
|
|
155
|
-
postIds: posts.map((p) => p.id),
|
|
156
|
-
totalPosts: posts.length
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
}),
|
|
160
|
-
usersWithPosts: require_KyselyFactory.KyselyFactory.createSeed(async (attrs, factory$1, db$1) => {
|
|
161
|
-
const userCount = attrs.userCount || 2;
|
|
162
|
-
const postsPerUser = attrs.postsPerUser || 2;
|
|
163
|
-
const results = [];
|
|
164
|
-
for (let i = 0; i < userCount; i++) {
|
|
165
|
-
const user = await factory$1.insert("user", {
|
|
166
|
-
name: `User ${i + 1}`,
|
|
167
|
-
email: `user${i + 1}@example.com`
|
|
168
|
-
});
|
|
169
|
-
const posts = await factory$1.insertMany(postsPerUser, "post", (postIdx) => ({
|
|
170
|
-
title: `User ${i + 1} Post ${postIdx + 1}`,
|
|
171
|
-
content: `Content from user ${i + 1}, post ${postIdx + 1}`,
|
|
172
|
-
userId: user.id,
|
|
173
|
-
published: postIdx === 0
|
|
174
|
-
}));
|
|
175
|
-
results.push({
|
|
176
|
-
user,
|
|
177
|
-
posts
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
return results;
|
|
181
|
-
})
|
|
182
|
-
};
|
|
183
|
-
const factory = new require_KyselyFactory.KyselyFactory(builders, seeds, trx);
|
|
184
|
-
const blogData = await factory.seed("blogWithAdminAndPosts", { postCount: 5 });
|
|
185
|
-
(0, vitest.expect)(blogData.admin.name).toBe("Blog Admin");
|
|
186
|
-
(0, vitest.expect)(blogData.admin.role).toBe("admin");
|
|
187
|
-
(0, vitest.expect)(blogData.posts).toHaveLength(5);
|
|
188
|
-
(0, vitest.expect)(blogData.summary.totalPosts).toBe(5);
|
|
189
|
-
const userData = await factory.seed("usersWithPosts", {
|
|
190
|
-
userCount: 3,
|
|
191
|
-
postsPerUser: 4
|
|
192
|
-
});
|
|
193
|
-
(0, vitest.expect)(userData).toHaveLength(3);
|
|
194
|
-
const totalUsers = await trx.selectFrom("users").select(trx.fn.count("id").as("count")).executeTakeFirst();
|
|
195
|
-
const totalPosts = await trx.selectFrom("posts").select(trx.fn.count("id").as("count")).executeTakeFirst();
|
|
196
|
-
(0, vitest.expect)(Number(totalUsers?.count)).toBe(4);
|
|
197
|
-
(0, vitest.expect)(Number(totalPosts?.count)).toBe(17);
|
|
198
|
-
});
|
|
199
|
-
it("should handle transaction isolation properly", async ({ trx }) => {
|
|
200
|
-
const userBuilder = require_KyselyFactory.KyselyFactory.createBuilder("users", async (attrs, factory, db$1, faker) => ({
|
|
201
|
-
name: "Test User",
|
|
202
|
-
email: faker.internet.email(),
|
|
203
|
-
role: "user",
|
|
204
|
-
createdAt: /* @__PURE__ */ new Date(),
|
|
205
|
-
updatedAt: /* @__PURE__ */ new Date()
|
|
206
|
-
}));
|
|
207
|
-
const builders = { user: userBuilder };
|
|
208
|
-
const factory1 = new require_KyselyFactory.KyselyFactory(builders, {}, trx);
|
|
209
|
-
const user = await factory1.insert("user", {
|
|
210
|
-
name: "Transaction User",
|
|
211
|
-
email: "transaction@test.com"
|
|
212
|
-
});
|
|
213
|
-
const userInTrx = await trx.selectFrom("users").selectAll().where("id", "=", user.id).executeTakeFirst();
|
|
214
|
-
(0, vitest.expect)(userInTrx).toBeDefined();
|
|
215
|
-
(0, vitest.expect)(userInTrx?.name).toBe("Transaction User");
|
|
216
|
-
});
|
|
217
|
-
});
|
|
218
|
-
(0, vitest.describe)("Performance and Edge Cases", () => {
|
|
219
|
-
it("should handle creating many records efficiently", async ({ trx }) => {
|
|
220
|
-
const userBuilder = require_KyselyFactory.KyselyFactory.createBuilder("users", async (attrs, factory$1, db$1, faker) => ({
|
|
221
|
-
name: `User ${Math.random()}`,
|
|
222
|
-
email: faker.internet.email().toLowerCase(),
|
|
223
|
-
role: "user",
|
|
224
|
-
createdAt: /* @__PURE__ */ new Date(),
|
|
225
|
-
updatedAt: /* @__PURE__ */ new Date()
|
|
226
|
-
}));
|
|
227
|
-
const builders = { user: userBuilder };
|
|
228
|
-
const factory = new require_KyselyFactory.KyselyFactory(builders, {}, trx);
|
|
229
|
-
const startTime = Date.now();
|
|
230
|
-
const users = await factory.insertMany(100, "user");
|
|
231
|
-
const endTime = Date.now();
|
|
232
|
-
const duration = endTime - startTime;
|
|
233
|
-
(0, vitest.expect)(users).toHaveLength(100);
|
|
234
|
-
(0, vitest.expect)(duration).toBeLessThan(5e3);
|
|
235
|
-
const emails = users.map((u) => u.email);
|
|
236
|
-
const uniqueEmails = new Set(emails);
|
|
237
|
-
(0, vitest.expect)(uniqueEmails.size).toBe(100);
|
|
238
|
-
});
|
|
239
|
-
it("should handle complex attribute generation", async ({ trx }) => {
|
|
240
|
-
const userBuilder = require_KyselyFactory.KyselyFactory.createBuilder("users", async (attrs, factory$1, db$1, faker) => {
|
|
241
|
-
return {
|
|
242
|
-
name: `Generated User ${attrs.id}`,
|
|
243
|
-
email: faker.internet.email().toLowerCase(),
|
|
244
|
-
role: "user"
|
|
245
|
-
};
|
|
246
|
-
});
|
|
247
|
-
const postBuilder = require_KyselyFactory.KyselyFactory.createBuilder("posts", async (attrs, factory$1) => {
|
|
248
|
-
let userId = attrs.userId;
|
|
249
|
-
if (!userId) {
|
|
250
|
-
const user = await factory$1.insert("user");
|
|
251
|
-
userId = user.id;
|
|
252
|
-
}
|
|
253
|
-
return {
|
|
254
|
-
title: `Auto-generated Post`,
|
|
255
|
-
content: `This is auto-generated content for post. Lorem ipsum dolor sit amet.`,
|
|
256
|
-
published: true,
|
|
257
|
-
userId,
|
|
258
|
-
createdAt: /* @__PURE__ */ new Date(),
|
|
259
|
-
updatedAt: /* @__PURE__ */ new Date()
|
|
260
|
-
};
|
|
261
|
-
});
|
|
262
|
-
const builders = {
|
|
263
|
-
user: userBuilder,
|
|
264
|
-
post: postBuilder
|
|
265
|
-
};
|
|
266
|
-
const factory = new require_KyselyFactory.KyselyFactory(builders, {}, trx);
|
|
267
|
-
const posts = await factory.insertMany(10, "post", (i) => ({ published: i % 2 === 0 }));
|
|
268
|
-
(0, vitest.expect)(posts).toHaveLength(10);
|
|
269
|
-
const users = await trx.selectFrom("users").selectAll().execute();
|
|
270
|
-
users.forEach((user) => {
|
|
271
|
-
(0, vitest.expect)(user.email).toBe(user.email.toLowerCase());
|
|
272
|
-
(0, vitest.expect)(user.name).not.toMatch(/^\s|\s$/);
|
|
273
|
-
});
|
|
274
|
-
const publishedPosts = posts.filter((p) => p.published);
|
|
275
|
-
const unpublishedPosts = posts.filter((p) => !p.published);
|
|
276
|
-
(0, vitest.expect)(publishedPosts).toHaveLength(5);
|
|
277
|
-
(0, vitest.expect)(unpublishedPosts).toHaveLength(5);
|
|
278
|
-
});
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
|
|
282
|
-
//#endregion
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|