exisjs 0.1.3 → 0.1.5

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 (104) hide show
  1. package/README.md +5 -2
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +1 -0
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/dev.d.ts.map +1 -1
  6. package/dist/cli/commands/dev.js +11 -15
  7. package/dist/cli/commands/dev.js.map +1 -1
  8. package/dist/cli/commands/generate.d.ts +3 -1
  9. package/dist/cli/commands/generate.d.ts.map +1 -1
  10. package/dist/cli/commands/generate.js +39 -44
  11. package/dist/cli/commands/generate.js.map +1 -1
  12. package/dist/cli/commands/start.d.ts.map +1 -1
  13. package/dist/cli/commands/start.js +1 -6
  14. package/dist/cli/commands/start.js.map +1 -1
  15. package/dist/cli/commands/test.d.ts +1 -0
  16. package/dist/cli/commands/test.d.ts.map +1 -1
  17. package/dist/cli/commands/test.js +8 -13
  18. package/dist/cli/commands/test.js.map +1 -1
  19. package/dist/cli/index.js +7 -5
  20. package/dist/cli/index.js.map +1 -1
  21. package/dist/decorators/index.d.ts +101 -0
  22. package/dist/decorators/index.d.ts.map +1 -1
  23. package/dist/decorators/index.js +153 -21
  24. package/dist/decorators/index.js.map +1 -1
  25. package/dist/di/inject.d.ts +17 -0
  26. package/dist/di/inject.d.ts.map +1 -1
  27. package/dist/di/inject.js +17 -0
  28. package/dist/di/inject.js.map +1 -1
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/integrations/mongoose.d.ts.map +1 -1
  33. package/dist/integrations/mongoose.js +3 -2
  34. package/dist/integrations/mongoose.js.map +1 -1
  35. package/dist/lib/start-server.js +30 -2
  36. package/dist/lib/start-server.js.map +1 -1
  37. package/dist/middleware/middleware.d.ts +1 -1
  38. package/dist/middleware/middleware.d.ts.map +1 -1
  39. package/dist/middleware/middleware.js +4 -0
  40. package/dist/middleware/middleware.js.map +1 -1
  41. package/dist/module/module.d.ts +16 -0
  42. package/dist/module/module.d.ts.map +1 -1
  43. package/dist/module/module.js +16 -0
  44. package/dist/module/module.js.map +1 -1
  45. package/dist/router/router.d.ts.map +1 -1
  46. package/dist/router/router.js +44 -22
  47. package/dist/router/router.js.map +1 -1
  48. package/dist/server/app.d.ts.map +1 -1
  49. package/dist/server/app.js +217 -100
  50. package/dist/server/app.js.map +1 -1
  51. package/dist/server/cluster.d.ts.map +1 -1
  52. package/dist/server/cluster.js +4 -9
  53. package/dist/server/cluster.js.map +1 -1
  54. package/dist/server/define.d.ts +14 -0
  55. package/dist/server/define.d.ts.map +1 -1
  56. package/dist/server/define.js +14 -0
  57. package/dist/server/define.js.map +1 -1
  58. package/dist/server/dep-graph.d.ts.map +1 -1
  59. package/dist/server/dep-graph.js +13 -11
  60. package/dist/server/dep-graph.js.map +1 -1
  61. package/dist/server/request.d.ts +137 -1
  62. package/dist/server/request.d.ts.map +1 -1
  63. package/dist/server/request.js +136 -0
  64. package/dist/server/request.js.map +1 -1
  65. package/dist/server/response.d.ts +186 -0
  66. package/dist/server/response.d.ts.map +1 -1
  67. package/dist/server/response.js +188 -1
  68. package/dist/server/response.js.map +1 -1
  69. package/dist/server/route.d.ts +28 -2
  70. package/dist/server/route.d.ts.map +1 -1
  71. package/dist/server/route.js +28 -2
  72. package/dist/server/route.js.map +1 -1
  73. package/dist/server/uws-adapter.d.ts +4 -1
  74. package/dist/server/uws-adapter.d.ts.map +1 -1
  75. package/dist/server/uws-adapter.js +55 -6
  76. package/dist/server/uws-adapter.js.map +1 -1
  77. package/dist/swagger/index.d.ts.map +1 -1
  78. package/dist/swagger/index.js +2 -1
  79. package/dist/swagger/index.js.map +1 -1
  80. package/dist/testing/expect.d.ts +54 -0
  81. package/dist/testing/expect.d.ts.map +1 -0
  82. package/dist/testing/expect.js +419 -0
  83. package/dist/testing/expect.js.map +1 -0
  84. package/dist/testing/index.d.ts +55 -4
  85. package/dist/testing/index.d.ts.map +1 -1
  86. package/dist/testing/index.js +175 -22
  87. package/dist/testing/index.js.map +1 -1
  88. package/dist/testing/reporter.d.mts +38 -0
  89. package/dist/testing/reporter.d.mts.map +1 -0
  90. package/dist/testing/reporter.mjs +225 -0
  91. package/dist/testing/reporter.mjs.map +1 -0
  92. package/dist/types.d.ts +3 -1
  93. package/dist/types.d.ts.map +1 -1
  94. package/dist/websocket/server.d.ts.map +1 -1
  95. package/dist/websocket/server.js +5 -3
  96. package/dist/websocket/server.js.map +1 -1
  97. package/dist/websocket/socket.d.ts.map +1 -1
  98. package/dist/websocket/socket.js +8 -6
  99. package/dist/websocket/socket.js.map +1 -1
  100. package/package.json +2 -3
  101. package/dist/testing/reporter.d.ts +0 -13
  102. package/dist/testing/reporter.d.ts.map +0 -1
  103. package/dist/testing/reporter.js +0 -101
  104. package/dist/testing/reporter.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swagger/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/swagger/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ export declare class Expectation {
2
+ private readonly actual;
3
+ private readonly isNot;
4
+ constructor(actual: any, isNot?: boolean);
5
+ get not(): Expectation;
6
+ toBe(expected: any): void;
7
+ toEqual(expected: any): void;
8
+ toStrictEqual(expected: any): void;
9
+ toMatchObject(expected: any): void;
10
+ toBeTruthy(): void;
11
+ toBeFalsy(): void;
12
+ toBeNull(): void;
13
+ toBeUndefined(): void;
14
+ toBeDefined(): void;
15
+ toBeGreaterThan(expected: number): void;
16
+ toBeGreaterThanOrEqual(expected: number): void;
17
+ toBeLessThan(expected: number): void;
18
+ toBeCloseTo(expected: number, precision?: number): void;
19
+ toBeLessThanOrEqual(expected: number): void;
20
+ toBeInstanceOf(constructor: any): void;
21
+ toContain(item: any): void;
22
+ toHaveLength(length: number): void;
23
+ toHaveProperty(key: string | string[], value?: any): void;
24
+ toThrow(expected?: any): void;
25
+ toMatch(expected: RegExp | string): void;
26
+ toHaveBeenCalled(): void;
27
+ toHaveBeenCalledTimes(expected: number): void;
28
+ toHaveBeenCalledWith(...expectedArgs: any[]): void;
29
+ get resolves(): {
30
+ toBe: (expected: any) => Promise<void>;
31
+ toEqual: (expected: any) => Promise<void>;
32
+ toStrictEqual: (expected: any) => Promise<void>;
33
+ toBeUndefined: () => Promise<void>;
34
+ readonly not: /*elided*/ any;
35
+ };
36
+ get rejects(): {
37
+ toThrow: (expected?: any) => Promise<void>;
38
+ readonly not: /*elided*/ any;
39
+ };
40
+ }
41
+ export declare function expect(actual: any): Expectation;
42
+ export declare namespace expect {
43
+ var stringContaining: (expected: string) => {
44
+ __isStringContaining: boolean;
45
+ expected: string;
46
+ };
47
+ var any: (constructor: any) => {
48
+ __isAny: boolean;
49
+ constructor: any;
50
+ };
51
+ var objectContaining: (expected: any) => any;
52
+ var fail: (message?: string) => never;
53
+ }
54
+ //# sourceMappingURL=expect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../src/testing/expect.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBADL,MAAM,EAAE,GAAG,EACX,KAAK,UAAQ;IAGhC,IAAI,GAAG,IAAI,WAAW,CAErB;IAID,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAQzB,OAAO,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAQ5B,aAAa,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAQlC,aAAa,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAqClC,UAAU,IAAI,IAAI;IAQlB,SAAS,IAAI,IAAI;IAQjB,QAAQ,IAAI,IAAI;IAIhB,aAAa,IAAI,IAAI;IAIrB,WAAW,IAAI,IAAI;IAUnB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcvC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAc9C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcpC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,IAAI;IASlD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgB3C,cAAc,CAAC,WAAW,EAAE,GAAG,GAAG,IAAI;IAmBtC,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAqB1B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUlC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI;IA2CzD,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,GAAG,IAAI;IAuD7B,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IA8BxC,gBAAgB,IAAI,IAAI;IASxB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAiB7C,oBAAoB,CAAC,GAAG,YAAY,EAAE,GAAG,EAAE,GAAG,IAAI;IA8ClD,IAAI,QAAQ;yBAKe,GAAG;4BAIA,GAAG;kCAIG,GAAG;;;MAatC;IAED,IAAI,OAAO;6BAKoB,GAAG;;MAuDjC;CACF;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,WAAW,CAE/C;yBAFe,MAAM;qCAKe,MAAM;;;;2BAMhB,GAAG;;;;qCAMO,GAAG;yBAMf,MAAM"}
@@ -0,0 +1,419 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Expectation = void 0;
7
+ exports.expect = expect;
8
+ const node_assert_1 = __importDefault(require("node:assert"));
9
+ class Expectation {
10
+ constructor(actual, isNot = false) {
11
+ this.actual = actual;
12
+ this.isNot = isNot;
13
+ }
14
+ get not() {
15
+ return new Expectation(this.actual, !this.isNot);
16
+ }
17
+ // --- Equality ---
18
+ toBe(expected) {
19
+ if (this.isNot) {
20
+ node_assert_1.default.notStrictEqual(this.actual, expected);
21
+ }
22
+ else {
23
+ node_assert_1.default.strictEqual(this.actual, expected);
24
+ }
25
+ }
26
+ toEqual(expected) {
27
+ if (this.isNot) {
28
+ node_assert_1.default.notDeepEqual(this.actual, expected);
29
+ }
30
+ else {
31
+ node_assert_1.default.deepEqual(this.actual, expected);
32
+ }
33
+ }
34
+ toStrictEqual(expected) {
35
+ if (this.isNot) {
36
+ node_assert_1.default.notDeepStrictEqual(this.actual, expected);
37
+ }
38
+ else {
39
+ node_assert_1.default.deepStrictEqual(this.actual, expected);
40
+ }
41
+ }
42
+ toMatchObject(expected) {
43
+ const isObject = (o) => o != null && typeof o === 'object';
44
+ const contains = (actual, expected) => {
45
+ if (!isObject(actual) || !isObject(expected)) {
46
+ if (expected && expected.__isAny) {
47
+ return (Object(actual) instanceof expected.constructor ||
48
+ typeof actual === typeof expected.constructor());
49
+ }
50
+ if (expected && expected.__isStringContaining) {
51
+ return (typeof actual === 'string' && actual.includes(expected.expected));
52
+ }
53
+ return actual === expected;
54
+ }
55
+ return Object.keys(expected).every((k) => contains(actual[k], expected[k]));
56
+ };
57
+ if (this.isNot) {
58
+ node_assert_1.default.ok(!contains(this.actual, expected), `Expected ${this.actual} not to match object ${expected}`);
59
+ }
60
+ else {
61
+ node_assert_1.default.ok(contains(this.actual, expected), `Expected ${this.actual} to match object ${expected}`);
62
+ }
63
+ }
64
+ // --- Truthiness ---
65
+ toBeTruthy() {
66
+ if (this.isNot) {
67
+ node_assert_1.default.ok(!this.actual);
68
+ }
69
+ else {
70
+ node_assert_1.default.ok(this.actual);
71
+ }
72
+ }
73
+ toBeFalsy() {
74
+ if (this.isNot) {
75
+ node_assert_1.default.ok(this.actual);
76
+ }
77
+ else {
78
+ node_assert_1.default.ok(!this.actual);
79
+ }
80
+ }
81
+ toBeNull() {
82
+ this.toBe(null);
83
+ }
84
+ toBeUndefined() {
85
+ this.toBe(undefined);
86
+ }
87
+ toBeDefined() {
88
+ if (this.isNot) {
89
+ node_assert_1.default.strictEqual(this.actual, undefined);
90
+ }
91
+ else {
92
+ node_assert_1.default.notStrictEqual(this.actual, undefined);
93
+ }
94
+ }
95
+ // --- Numbers ---
96
+ toBeGreaterThan(expected) {
97
+ if (this.isNot) {
98
+ node_assert_1.default.ok(this.actual <= expected, `Expected ${this.actual} not to be greater than ${expected}`);
99
+ }
100
+ else {
101
+ node_assert_1.default.ok(this.actual > expected, `Expected ${this.actual} to be greater than ${expected}`);
102
+ }
103
+ }
104
+ toBeGreaterThanOrEqual(expected) {
105
+ if (this.isNot) {
106
+ node_assert_1.default.ok(this.actual < expected, `Expected ${this.actual} not to be greater than or equal to ${expected}`);
107
+ }
108
+ else {
109
+ node_assert_1.default.ok(this.actual >= expected, `Expected ${this.actual} to be greater than or equal to ${expected}`);
110
+ }
111
+ }
112
+ toBeLessThan(expected) {
113
+ if (this.isNot) {
114
+ node_assert_1.default.ok(this.actual >= expected, `Expected ${this.actual} not to be less than ${expected}`);
115
+ }
116
+ else {
117
+ node_assert_1.default.ok(this.actual < expected, `Expected ${this.actual} to be less than ${expected}`);
118
+ }
119
+ }
120
+ toBeCloseTo(expected, precision = 2) {
121
+ const pass = Math.abs(expected - this.actual) < Math.pow(10, -precision) / 2;
122
+ if (this.isNot) {
123
+ node_assert_1.default.ok(!pass, `Expected ${this.actual} not to be close to ${expected}`);
124
+ }
125
+ else {
126
+ node_assert_1.default.ok(pass, `Expected ${this.actual} to be close to ${expected}`);
127
+ }
128
+ }
129
+ toBeLessThanOrEqual(expected) {
130
+ if (this.isNot) {
131
+ node_assert_1.default.ok(this.actual > expected, `Expected ${this.actual} not to be less than or equal to ${expected}`);
132
+ }
133
+ else {
134
+ node_assert_1.default.ok(this.actual <= expected, `Expected ${this.actual} to be less than or equal to ${expected}`);
135
+ }
136
+ }
137
+ // --- Types & Instances ---
138
+ toBeInstanceOf(constructor) {
139
+ const isInstance = this.actual instanceof constructor;
140
+ if (this.isNot) {
141
+ node_assert_1.default.strictEqual(isInstance, false, `Expected value not to be instance of ${constructor.name}`);
142
+ }
143
+ else {
144
+ node_assert_1.default.strictEqual(isInstance, true, `Expected value to be instance of ${constructor.name}`);
145
+ }
146
+ }
147
+ // --- Arrays / Strings ---
148
+ toContain(item) {
149
+ const contains = Array.isArray(this.actual) || typeof this.actual === 'string'
150
+ ? this.actual.includes(item)
151
+ : false;
152
+ if (this.isNot) {
153
+ node_assert_1.default.strictEqual(contains, false, `Expected ${this.actual} not to contain ${item}`);
154
+ }
155
+ else {
156
+ node_assert_1.default.strictEqual(contains, true, `Expected ${this.actual} to contain ${item}`);
157
+ }
158
+ }
159
+ toHaveLength(length) {
160
+ if (this.isNot) {
161
+ node_assert_1.default.notStrictEqual(this.actual?.length, length);
162
+ }
163
+ else {
164
+ node_assert_1.default.strictEqual(this.actual?.length, length);
165
+ }
166
+ }
167
+ // --- Objects ---
168
+ toHaveProperty(key, value) {
169
+ const keys = Array.isArray(key) ? key : key.split('.');
170
+ let current = this.actual;
171
+ let hasProp = true;
172
+ for (const k of keys) {
173
+ if (current === undefined || current === null || !(k in current)) {
174
+ hasProp = false;
175
+ break;
176
+ }
177
+ current = current[k];
178
+ }
179
+ if (this.isNot) {
180
+ if (value !== undefined) {
181
+ if (hasProp) {
182
+ try {
183
+ node_assert_1.default.notDeepStrictEqual(current, value);
184
+ }
185
+ catch {
186
+ node_assert_1.default.fail(`Expected property ${key} not to equal ${value}`);
187
+ }
188
+ }
189
+ }
190
+ else {
191
+ node_assert_1.default.strictEqual(hasProp, false, `Expected object not to have property ${key}`);
192
+ }
193
+ }
194
+ else {
195
+ node_assert_1.default.strictEqual(hasProp, true, `Expected object to have property ${key}`);
196
+ if (value !== undefined) {
197
+ node_assert_1.default.deepStrictEqual(current, value);
198
+ }
199
+ }
200
+ }
201
+ // --- Functions ---
202
+ toThrow(expected) {
203
+ if (typeof this.actual !== 'function') {
204
+ node_assert_1.default.fail('Expected value must be a function to use toThrow');
205
+ }
206
+ let threw = false;
207
+ let error;
208
+ try {
209
+ this.actual();
210
+ }
211
+ catch (e) {
212
+ threw = true;
213
+ error = e;
214
+ }
215
+ if (this.isNot) {
216
+ if (threw) {
217
+ if (expected) {
218
+ if (error instanceof Error &&
219
+ (error.message.includes(expected) ||
220
+ (expected instanceof RegExp && expected.test(error.message)))) {
221
+ node_assert_1.default.fail(`Expected function not to throw error matching ${expected}`);
222
+ }
223
+ }
224
+ else {
225
+ node_assert_1.default.fail(`Expected function not to throw, but it threw: ${error}`);
226
+ }
227
+ }
228
+ }
229
+ else {
230
+ if (!threw) {
231
+ node_assert_1.default.fail('Expected function to throw');
232
+ }
233
+ if (expected) {
234
+ if (typeof expected === 'string') {
235
+ node_assert_1.default.ok(error?.message?.includes(expected), `Expected error message to include ${expected}`);
236
+ }
237
+ else if (expected instanceof RegExp) {
238
+ node_assert_1.default.ok(expected.test(error?.message), `Expected error message to match ${expected}`);
239
+ }
240
+ else if (typeof expected === 'function') {
241
+ node_assert_1.default.ok(error instanceof expected, `Expected error to be instance of ${expected.name}`);
242
+ }
243
+ }
244
+ }
245
+ }
246
+ toMatch(expected) {
247
+ if (this.isNot) {
248
+ if (expected instanceof RegExp) {
249
+ node_assert_1.default.ok(!expected.test(this.actual), `Expected ${this.actual} not to match ${expected}`);
250
+ }
251
+ else {
252
+ node_assert_1.default.ok(!String(this.actual).match(expected), `Expected ${this.actual} not to match ${expected}`);
253
+ }
254
+ }
255
+ else {
256
+ if (expected instanceof RegExp) {
257
+ node_assert_1.default.ok(expected.test(this.actual), `Expected ${this.actual} to match ${expected}`);
258
+ }
259
+ else {
260
+ node_assert_1.default.ok(String(this.actual).match(expected), `Expected ${this.actual} to match ${expected}`);
261
+ }
262
+ }
263
+ }
264
+ // --- Mocks ---
265
+ toHaveBeenCalled() {
266
+ const callCount = this.actual.mock?.callCount() || 0;
267
+ if (this.isNot) {
268
+ node_assert_1.default.strictEqual(callCount, 0, `Expected mock not to have been called`);
269
+ }
270
+ else {
271
+ node_assert_1.default.ok(callCount > 0, `Expected mock to have been called`);
272
+ }
273
+ }
274
+ toHaveBeenCalledTimes(expected) {
275
+ const callCount = this.actual.mock?.callCount() || 0;
276
+ if (this.isNot) {
277
+ node_assert_1.default.notStrictEqual(callCount, expected, `Expected mock not to have been called ${expected} times`);
278
+ }
279
+ else {
280
+ node_assert_1.default.strictEqual(callCount, expected, `Expected mock to have been called ${expected} times`);
281
+ }
282
+ }
283
+ toHaveBeenCalledWith(...expectedArgs) {
284
+ const calls = this.actual.mock?.calls || [];
285
+ const isObject = (o) => o != null && typeof o === 'object';
286
+ const contains = (actual, expected) => {
287
+ if (!isObject(actual) || !isObject(expected)) {
288
+ if (expected && expected.__isAny) {
289
+ return (Object(actual) instanceof expected.constructor ||
290
+ typeof actual === typeof expected.constructor());
291
+ }
292
+ if (expected && expected.__isStringContaining) {
293
+ return (typeof actual === 'string' && actual.includes(expected.expected));
294
+ }
295
+ return actual === expected;
296
+ }
297
+ return Object.keys(expected).every((k) => contains(actual[k], expected[k]));
298
+ };
299
+ const hasCall = calls.some((call) => {
300
+ const actualArgs = call.arguments;
301
+ if (actualArgs.length !== expectedArgs.length)
302
+ return false;
303
+ return expectedArgs.every((expectedArg, i) => contains(actualArgs[i], expectedArg));
304
+ });
305
+ if (this.isNot) {
306
+ node_assert_1.default.ok(!hasCall, `Expected mock not to have been called with ${JSON.stringify(expectedArgs)}`);
307
+ }
308
+ else {
309
+ node_assert_1.default.ok(hasCall, `Expected mock to have been called with ${JSON.stringify(expectedArgs)}`);
310
+ }
311
+ }
312
+ // --- Promises ---
313
+ get resolves() {
314
+ if (!(this.actual instanceof Promise)) {
315
+ node_assert_1.default.fail('resolves must be used with a Promise');
316
+ }
317
+ const createResolves = (isNot) => ({
318
+ toBe: async (expected) => {
319
+ const val = await this.actual;
320
+ new Expectation(val, isNot).toBe(expected);
321
+ },
322
+ toEqual: async (expected) => {
323
+ const val = await this.actual;
324
+ new Expectation(val, isNot).toEqual(expected);
325
+ },
326
+ toStrictEqual: async (expected) => {
327
+ const val = await this.actual;
328
+ new Expectation(val, isNot).toStrictEqual(expected);
329
+ },
330
+ toBeUndefined: async () => {
331
+ const val = await this.actual;
332
+ new Expectation(val, isNot).toBeUndefined();
333
+ },
334
+ get not() {
335
+ return createResolves(!isNot);
336
+ },
337
+ });
338
+ return createResolves(this.isNot);
339
+ }
340
+ get rejects() {
341
+ if (!(this.actual instanceof Promise)) {
342
+ node_assert_1.default.fail('rejects must be used with a Promise');
343
+ }
344
+ const createRejects = (isNot) => ({
345
+ toThrow: async (expected) => {
346
+ let threw = false;
347
+ let error;
348
+ try {
349
+ await this.actual;
350
+ }
351
+ catch (e) {
352
+ threw = true;
353
+ error = e;
354
+ }
355
+ if (isNot) {
356
+ if (threw) {
357
+ if (expected) {
358
+ if (error instanceof Error &&
359
+ (error.message.includes(expected) ||
360
+ (expected instanceof RegExp && expected.test(error.message)))) {
361
+ node_assert_1.default.fail(`Expected promise not to throw error matching ${expected}`);
362
+ }
363
+ }
364
+ else {
365
+ node_assert_1.default.fail('Expected promise not to throw');
366
+ }
367
+ }
368
+ }
369
+ else {
370
+ if (!threw) {
371
+ node_assert_1.default.fail('Expected promise to throw');
372
+ }
373
+ if (expected) {
374
+ if (typeof expected === 'string') {
375
+ node_assert_1.default.ok(error?.message?.includes(expected), `Expected error message to include ${expected}`);
376
+ }
377
+ else if (expected instanceof RegExp) {
378
+ node_assert_1.default.ok(expected.test(error?.message), `Expected error message to match ${expected}`);
379
+ }
380
+ else if (typeof expected === 'function') {
381
+ node_assert_1.default.ok(error instanceof expected, `Expected error to be instance of ${expected.name}`);
382
+ }
383
+ }
384
+ }
385
+ },
386
+ get not() {
387
+ return createRejects(!isNot);
388
+ },
389
+ });
390
+ return createRejects(this.isNot);
391
+ }
392
+ }
393
+ exports.Expectation = Expectation;
394
+ function expect(actual) {
395
+ return new Expectation(actual);
396
+ }
397
+ // Attach matchers
398
+ expect.stringContaining = (expected) => {
399
+ return {
400
+ __isStringContaining: true,
401
+ expected,
402
+ };
403
+ };
404
+ expect.any = (constructor) => {
405
+ return {
406
+ __isAny: true,
407
+ constructor,
408
+ };
409
+ };
410
+ expect.objectContaining = (expected) => {
411
+ return {
412
+ ...expected,
413
+ __isObjectContaining: true,
414
+ };
415
+ };
416
+ expect.fail = (message) => {
417
+ node_assert_1.default.fail(message);
418
+ };
419
+ //# sourceMappingURL=expect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/testing/expect.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,58 @@
1
1
  export * from './mocks';
2
- export * from './client';
2
+ export type { TestResponse, TestApp } from './client';
3
+ export { TestRequest } from './client';
4
+ import * as _nodeTest from 'node:test';
3
5
  import { TestApp } from './client';
4
- export { test, describe, it, before, after, beforeEach, afterEach, mock, } from 'node:test';
5
- export { default as assert } from 'node:assert';
6
- export declare function createTestContext(app: any): TestApp;
6
+ export interface TestOptions {
7
+ only?: boolean;
8
+ skip?: boolean | string;
9
+ todo?: boolean | string;
10
+ concurrency?: number | boolean;
11
+ timeout?: number;
12
+ }
13
+ export interface TestContext {
14
+ name: string;
15
+ skip(message?: string): void;
16
+ todo(message?: string): void;
17
+ test(name: string, fn?: TestFunction): void;
18
+ test(name: string, options: TestOptions, fn?: TestFunction): void;
19
+ }
20
+ export type TestFunction = (t: TestContext) => void | Promise<void>;
21
+ export type HookFunction = () => void | Promise<void>;
22
+ export interface TestApi {
23
+ (name: string, fn?: TestFunction): void;
24
+ (name: string, options: TestOptions, fn?: TestFunction): void;
25
+ only(name: string, fn?: TestFunction): void;
26
+ only(name: string, options: TestOptions, fn?: TestFunction): void;
27
+ skip(name: string, fn?: TestFunction): void;
28
+ skip(name: string, options: TestOptions, fn?: TestFunction): void;
29
+ todo(name: string, fn?: TestFunction): void;
30
+ todo(name: string, options: TestOptions, fn?: TestFunction): void;
31
+ each<T = any>(cases: T[]): (name: string, fn: (...args: any[]) => void | Promise<void>) => void;
32
+ }
33
+ export type HookApi = (fn: HookFunction) => void;
34
+ export declare const test: TestApi;
35
+ export declare const describe: TestApi;
36
+ export declare const it: TestApi;
37
+ export declare const before: HookApi;
38
+ export declare const beforeAll: HookApi;
39
+ export declare const after: HookApi;
40
+ export declare const afterAll: HookApi;
41
+ export declare const beforeEach: HookApi;
42
+ export declare const afterEach: HookApi;
43
+ export declare const mock: _nodeTest.MockTracker;
44
+ export declare const ex: {
45
+ fn: (impl?: any) => any;
46
+ spyOn: (obj: any, methodName: string) => any;
47
+ timers: _nodeTest.MockTimers;
48
+ mock: (specifier: string, factory?: () => any) => void;
49
+ setSystemTime: (time: number | Date) => void;
50
+ advanceTimersByTime: (ms: number) => void;
51
+ useFakeTimers: () => void;
52
+ useRealTimers: () => void;
53
+ clearAllMocks: () => void;
54
+ };
55
+ export declare const assert: typeof _nodeTest.assert;
56
+ export { expect } from './expect';
57
+ export declare function createTestContext(appInput: any): TestApp;
7
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AAGxB,OAAO,EAAiB,OAAO,EAAE,MAAM,UAAU,CAAA;AAGjD,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,EAAE,EACF,MAAM,EACN,KAAK,EACL,UAAU,EACV,SAAS,EACT,IAAI,GACL,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAE/C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CA6FnD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,KAAK,SAAS,MAAM,WAAW,CAAA;AAGtC,OAAO,EAAiB,OAAO,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;CAClE;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AACnE,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAErD,MAAM,WAAW,OAAO;IACtB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACvC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7D,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACjE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACjE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IAC3C,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;IACjE,IAAI,CAAC,CAAC,GAAG,GAAG,EACV,KAAK,EAAE,CAAC,EAAE,GACT,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;CACxE;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,EAAE,EAAE,YAAY,KAAK,IAAI,CAAA;AAiBhD,eAAO,MAAM,IAAI,SAA4B,CAAA;AAC7C,eAAO,MAAM,QAAQ,SAAgC,CAAA;AACrD,eAAO,MAAM,EAAE,SAA0B,CAAA;AACzC,eAAO,MAAM,MAAM,EAAkC,OAAO,CAAA;AAC5D,eAAO,MAAM,SAAS,EAAkC,OAAO,CAAA;AAC/D,eAAO,MAAM,KAAK,EAAiC,OAAO,CAAA;AAC1D,eAAO,MAAM,QAAQ,EAAiC,OAAO,CAAA;AAC7D,eAAO,MAAM,UAAU,EAAsC,OAAO,CAAA;AACpE,eAAO,MAAM,SAAS,EAAqC,OAAO,CAAA;AAClE,eAAO,MAAM,IAAI,uBAAiB,CAAA;AA2BlC,eAAO,MAAM,EAAE;gBACD,GAAG;iBACF,GAAG,cAAc,MAAM;;sBAGlB,MAAM,YAAY,MAAM,GAAG;0BAgBvB,MAAM,GAAG,IAAI;8BAUT,MAAM;;;;CAuBjC,CAAA;AACD,eAAO,MAAM,MAAM,yBAA8B,CAAA;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAIjC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAqIxD"}