@jaypie/testkit 1.1.0 → 1.1.2

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/index.js ADDED
@@ -0,0 +1,468 @@
1
+ import { matchers as matchers$1 } from 'jest-json-schema';
2
+ import isEqual from 'lodash.isequal';
3
+ import { isJaypieError, BadGatewayError, BadRequestError, ConfigurationError, ForbiddenError, GatewayTimeoutError, InternalError, NotFoundError, UnauthorizedError, UnavailableError } from '@jaypie/core';
4
+ import { vi } from 'vitest';
5
+
6
+ const LOG = {
7
+ LEVEL: {
8
+ ALL: "all",
9
+ DEBUG: "debug",
10
+ ERROR: "error",
11
+ FATAL: "fatal",
12
+ INFO: "info",
13
+ SILENT: "silent",
14
+ TRACE: "trace",
15
+ WARN: "warn",
16
+ },
17
+ };
18
+ const RE_BASE64_PATTERN = /^[a-zA-Z0-9\\+\\/]+$/;
19
+ const RE_JWT_PATTERN = /^([^.]+)\.([^.]+)\.([^.]+)$/;
20
+ const RE_MONGO_ID_PATTERN = /^[a-f0-9]{24}$/i;
21
+ const RE_SIGNED_COOKIE_PATTERN = /^s:([^.]+)\.([^.]+)$/;
22
+ const RE_UUID_4_PATTERN = /^[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;
23
+ const RE_UUID_5_PATTERN = /^[a-f0-9]{8}-?[a-f0-9]{4}-?5[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;
24
+ const RE_UUID_PATTERN = /^[a-f0-9]{8}-?[a-f0-9]{4}-?[a-f0-9]{4}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;
25
+
26
+ const jsonApiErrorSchema = {
27
+ type: "object",
28
+ properties: {
29
+ errors: {
30
+ type: "array",
31
+ items: {
32
+ type: "object",
33
+ properties: {
34
+ status: { type: "number" },
35
+ title: { type: "string" },
36
+ detail: { type: "string" },
37
+ },
38
+ required: ["status", "title"],
39
+ },
40
+ minItems: 1,
41
+ },
42
+ },
43
+ required: ["errors"],
44
+ };
45
+ const jsonApiSchema = {
46
+ type: "object",
47
+ properties: {
48
+ data: {
49
+ type: "object",
50
+ properties: {
51
+ id: { type: "string" },
52
+ type: { type: "string" },
53
+ attributes: { type: "object" },
54
+ links: { type: "object" },
55
+ meta: { type: "object" },
56
+ relationships: { type: "object" },
57
+ },
58
+ required: ["id", "type"],
59
+ },
60
+ meta: { type: "object" },
61
+ },
62
+ required: ["data"],
63
+ };
64
+
65
+ //
66
+ //
67
+ // Main
68
+ //
69
+ const calledAboveTrace = (log) => {
70
+ try {
71
+ if (log.debug.mock.calls.length > 0 ||
72
+ log.info.mock.calls.length > 0 ||
73
+ log.warn.mock.calls.length > 0 ||
74
+ log.error.mock.calls.length > 0 ||
75
+ log.fatal.mock.calls.length > 0) {
76
+ return {
77
+ message: () => `expected log not to have been called above trace`,
78
+ pass: true,
79
+ };
80
+ }
81
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
82
+ }
83
+ catch (error) {
84
+ throw Error(`[calledAboveTrace] log is not a mock object`);
85
+ }
86
+ return {
87
+ message: () => `expected log not to have been called above trace`,
88
+ pass: false,
89
+ };
90
+ };
91
+
92
+ //
93
+ //
94
+ // Main
95
+ //
96
+ const toBeCalledWithInitialParams = (received, ...passed) => {
97
+ let pass;
98
+ if (!received || typeof received !== "function" || !received.mock) {
99
+ return {
100
+ message: () => `Expectation \`toBeCalledWithInitialParams\` expected a mock function`,
101
+ pass: false,
102
+ };
103
+ }
104
+ received.mock.calls.forEach((call) => {
105
+ if (call.length >= passed.length) {
106
+ let matching = true;
107
+ for (let i = 0; i < passed.length && matching; i += 1) {
108
+ if (!isEqual(passed[i], call[i]))
109
+ matching = false;
110
+ }
111
+ pass = pass || matching;
112
+ }
113
+ });
114
+ if (pass === undefined)
115
+ pass = false;
116
+ if (pass) {
117
+ return {
118
+ message: () => `Expectation \`toBeCalledWithInitialParams\` expected call beginning with [${passed},...]`,
119
+ pass: true,
120
+ };
121
+ }
122
+ else {
123
+ return {
124
+ message: () => `Expectation \`not.toBeCalledWithInitialParams\` did not expect call beginning with [${passed},...]`,
125
+ pass: false,
126
+ };
127
+ }
128
+ };
129
+
130
+ //
131
+ //
132
+ // Main
133
+ //
134
+ const toBeClass = (received) => {
135
+ let pass = false;
136
+ if (typeof received === "function") {
137
+ try {
138
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
139
+ new received();
140
+ pass = true;
141
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
142
+ }
143
+ catch (error) {
144
+ pass = false;
145
+ }
146
+ }
147
+ if (pass) {
148
+ return {
149
+ message: () => `expected ${received} not to be a class`,
150
+ pass: true,
151
+ };
152
+ }
153
+ return {
154
+ message: () => `expected ${received} to be a class`,
155
+ pass: false,
156
+ };
157
+ };
158
+
159
+ //
160
+ //
161
+ // Helper Functions
162
+ //
163
+ function isErrorObjectJaypieError(error) {
164
+ if ("isProjectError" in error) {
165
+ return {
166
+ message: () => `expected "${error}" not to be a Jaypie error`,
167
+ pass: true,
168
+ };
169
+ }
170
+ return {
171
+ message: () => `expected "${error}" to be a Jaypie error`,
172
+ pass: false,
173
+ };
174
+ }
175
+ //
176
+ //
177
+ // Main
178
+ //
179
+ const toBeJaypieError = (received) => {
180
+ // See if it is an instance of error:
181
+ if (received instanceof Error) {
182
+ return isErrorObjectJaypieError(received);
183
+ }
184
+ const result = matchers$1.toMatchSchema(received, jsonApiErrorSchema);
185
+ if (result.pass) {
186
+ return {
187
+ message: () => `expected ${received} not to be a Jaypie error`,
188
+ pass: true,
189
+ };
190
+ }
191
+ else {
192
+ return {
193
+ message: () => `expected ${received} to be a Jaypie error`,
194
+ pass: false,
195
+ };
196
+ }
197
+ };
198
+
199
+ function forSubjectToMatchPattern(subject, pattern, { patternName = "pattern" } = {}) {
200
+ if (pattern.test(subject)) {
201
+ return {
202
+ message: () => `expected "${subject}" not to match ${patternName}`,
203
+ pass: true,
204
+ };
205
+ }
206
+ return {
207
+ message: () => `expected "${subject}" to match ${patternName}`,
208
+ pass: false,
209
+ };
210
+ }
211
+ //
212
+ //
213
+ // Main
214
+ //
215
+ const toMatchBase64 = (subject) => forSubjectToMatchPattern(subject, RE_BASE64_PATTERN, {
216
+ patternName: "Base64",
217
+ });
218
+ const toMatchJwt = (subject) => forSubjectToMatchPattern(subject, RE_JWT_PATTERN, {
219
+ patternName: "JWT",
220
+ });
221
+ const toMatchMongoId = (subject) => forSubjectToMatchPattern(subject, RE_MONGO_ID_PATTERN, {
222
+ patternName: "MongoDbId",
223
+ });
224
+ const toMatchSignedCookie = (subject) => forSubjectToMatchPattern(subject, RE_SIGNED_COOKIE_PATTERN, {
225
+ patternName: "Signed-Cookie",
226
+ });
227
+ const toMatchUuid4 = (subject) => forSubjectToMatchPattern(subject, RE_UUID_4_PATTERN, {
228
+ patternName: "UUIDv4",
229
+ });
230
+ const toMatchUuid5 = (subject) => forSubjectToMatchPattern(subject, RE_UUID_5_PATTERN, {
231
+ patternName: "UUIDv5",
232
+ });
233
+ /**
234
+ * Determines if subject matches a UUID pattern.
235
+ * Does _NOT_ check if the UUID is valid.
236
+ */
237
+ const toMatchUuid = (subject) => forSubjectToMatchPattern(subject, RE_UUID_PATTERN, {
238
+ patternName: "UUID",
239
+ });
240
+
241
+ const toThrowError = async (received) => {
242
+ const isAsync = received.constructor.name === "AsyncFunction" ||
243
+ received.constructor.name === "Promise";
244
+ try {
245
+ const result = received();
246
+ if (isAsync) {
247
+ await result;
248
+ }
249
+ return {
250
+ pass: false,
251
+ message: () => "Expected function to throw an error, but it did not throw.",
252
+ };
253
+ }
254
+ catch (error) {
255
+ return {
256
+ pass: true,
257
+ message: () => `Expected function not to throw an error, but it threw ${error}`,
258
+ };
259
+ }
260
+ };
261
+
262
+ function isErrorConstructor(value) {
263
+ return typeof value === "function" && "prototype" in value;
264
+ }
265
+ const toThrowJaypieError = async (received, expected) => {
266
+ const isAsync = received.constructor.name === "AsyncFunction" ||
267
+ received.constructor.name === "Promise";
268
+ let expectedError = undefined;
269
+ // Handle constructor, function, or instance
270
+ if (typeof expected === "function") {
271
+ if (isErrorConstructor(expected)) {
272
+ // It's a constructor
273
+ expectedError = new expected();
274
+ }
275
+ else {
276
+ // It's a regular function
277
+ expectedError = expected();
278
+ }
279
+ }
280
+ else if (expected) {
281
+ // It's an instance
282
+ expectedError = expected;
283
+ }
284
+ try {
285
+ const result = received();
286
+ if (isAsync) {
287
+ await result;
288
+ }
289
+ // If no error is thrown, fail the test
290
+ return {
291
+ pass: false,
292
+ message: () => "Expected function to throw a JaypieError, but it did not throw.",
293
+ };
294
+ }
295
+ catch (error) {
296
+ if (isJaypieError(error)) {
297
+ // If expected is also a JaypieError, check if the error matches
298
+ if (expectedError && isJaypieError(expectedError)) {
299
+ // If the error does not match, fail the test
300
+ if (error._type !== expectedError._type) {
301
+ return {
302
+ pass: false,
303
+ message: () => `Expected function to throw "${expectedError._type}", but it threw "${error._type}"`,
304
+ };
305
+ }
306
+ }
307
+ return {
308
+ pass: true,
309
+ message: () => `Expected function not to throw a JaypieError, but it threw ${error}`,
310
+ };
311
+ }
312
+ return {
313
+ pass: false,
314
+ message: () => `Expected function to throw a JaypieError, but it threw ${error}`,
315
+ };
316
+ }
317
+ };
318
+ //
319
+ //
320
+ // Convenience Methods
321
+ //
322
+ const toThrowBadGatewayError = (received) => toThrowJaypieError(received, BadGatewayError);
323
+ const toThrowBadRequestError = (received) => toThrowJaypieError(received, BadRequestError);
324
+ const toThrowConfigurationError = (received) => toThrowJaypieError(received, ConfigurationError);
325
+ const toThrowForbiddenError = (received) => toThrowJaypieError(received, ForbiddenError);
326
+ const toThrowGatewayTimeoutError = (received) => toThrowJaypieError(received, GatewayTimeoutError);
327
+ const toThrowInternalError = (received) => toThrowJaypieError(received, InternalError);
328
+ const toThrowNotFoundError = (received) => toThrowJaypieError(received, NotFoundError);
329
+ const toThrowUnauthorizedError = (received) => toThrowJaypieError(received, UnauthorizedError);
330
+ const toThrowUnavailableError = (received) => toThrowJaypieError(received, UnavailableError);
331
+
332
+ const matchers = {
333
+ toBeCalledAboveTrace: calledAboveTrace,
334
+ toBeCalledWithInitialParams,
335
+ toBeClass,
336
+ toBeJaypieError,
337
+ toMatchBase64,
338
+ toMatchJwt,
339
+ toMatchMongoId,
340
+ toMatchSignedCookie,
341
+ toMatchSchema: matchers$1.toMatchSchema,
342
+ toMatchUuid,
343
+ toMatchUuid4,
344
+ toMatchUuid5,
345
+ toThrowBadGatewayError,
346
+ toThrowBadRequestError,
347
+ toThrowConfigurationError,
348
+ toThrowError,
349
+ toThrowForbiddenError,
350
+ toThrowGatewayTimeoutError,
351
+ toThrowInternalError,
352
+ toThrowJaypieError,
353
+ toThrowNotFoundError,
354
+ toThrowUnauthorizedError,
355
+ toThrowUnavailableError,
356
+ };
357
+
358
+ function mockLogFactory() {
359
+ // Create skeleton of mock objects
360
+ const mock = {
361
+ debug: vi.fn(),
362
+ error: vi.fn(),
363
+ fatal: vi.fn(),
364
+ info: vi.fn(),
365
+ init: vi.fn(),
366
+ lib: vi.fn(),
367
+ tag: vi.fn(),
368
+ trace: vi.fn(),
369
+ untag: vi.fn(),
370
+ var: vi.fn(),
371
+ warn: vi.fn(),
372
+ with: vi.fn(),
373
+ };
374
+ // Fill out nested mocks
375
+ mock.debug.var = mock.var;
376
+ mock.error.var = mock.var;
377
+ mock.fatal.var = mock.var;
378
+ mock.info.var = mock.var;
379
+ mock.trace.var = mock.var;
380
+ mock.warn.var = mock.var;
381
+ // Have modules return correct objects
382
+ mock.init.mockReturnValue(null);
383
+ mock.lib.mockReturnValue(mock);
384
+ mock.with.mockReturnValue(mock);
385
+ // Pin mocks to the module
386
+ mock.mock = {
387
+ debug: mock.debug,
388
+ error: mock.error,
389
+ fatal: mock.fatal,
390
+ info: mock.info,
391
+ init: mock.init,
392
+ lib: mock.lib,
393
+ tag: mock.tag,
394
+ trace: mock.trace,
395
+ untag: mock.untag,
396
+ var: mock.var,
397
+ warn: mock.warn,
398
+ with: mock.with,
399
+ };
400
+ return mock;
401
+ }
402
+ const LOG_METHOD_NAMES = [
403
+ "debug",
404
+ "error",
405
+ "fatal",
406
+ "info",
407
+ "init",
408
+ "lib",
409
+ "tag",
410
+ "trace",
411
+ "untag",
412
+ "var",
413
+ "warn",
414
+ "with",
415
+ ];
416
+ const originalLogMethods = new WeakMap();
417
+ function spyLog(log) {
418
+ if (!originalLogMethods.has(log)) {
419
+ const mockLog = mockLogFactory();
420
+ const originalMethods = {};
421
+ LOG_METHOD_NAMES.forEach((method) => {
422
+ originalMethods[method] = log[method];
423
+ log[method] = mockLog[method];
424
+ });
425
+ originalLogMethods.set(log, originalMethods);
426
+ }
427
+ }
428
+ function restoreLog(log) {
429
+ const originalMethods = originalLogMethods.get(log);
430
+ if (originalMethods) {
431
+ LOG_METHOD_NAMES.forEach((method) => {
432
+ if (originalMethods[method]) {
433
+ log[method] = originalMethods[method];
434
+ }
435
+ });
436
+ originalLogMethods.delete(log);
437
+ }
438
+ }
439
+
440
+ /**
441
+ * Creates a mock SQS event with the given records
442
+ * @param records - Array of records or individual records to include in the event
443
+ * @returns SQS event object with Records array
444
+ */
445
+ const sqsTestRecords = (...records) => {
446
+ // If first argument is an array, use that as records
447
+ const recordsArray = Array.isArray(records[0]) ? records[0] : records;
448
+ // Map records to SQS record format
449
+ const formattedRecords = recordsArray.map((record) => {
450
+ if (typeof record === "object" && record !== null) {
451
+ return {
452
+ ...record,
453
+ body: typeof record.body === "string"
454
+ ? record.body
455
+ : JSON.stringify(record.body ?? record),
456
+ };
457
+ }
458
+ return {
459
+ body: String(record),
460
+ };
461
+ });
462
+ return {
463
+ Records: formattedRecords,
464
+ };
465
+ };
466
+
467
+ export { LOG, jsonApiErrorSchema, jsonApiSchema, matchers, mockLogFactory, restoreLog, spyLog, sqsTestRecords };
468
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/constants.ts","../src/jsonApiSchema.module.ts","../src/matchers/toBeCalledAboveTrace.matcher.ts","../src/matchers/toBeCalledWithInitialParams.matcher.ts","../src/matchers/toBeClass.matcher.ts","../src/matchers/toBeJaypieError.matcher.ts","../src/matchers/toMatch.matcher.ts","../src/matchers/toThrowError.matcher.ts","../src/matchers/toThrowJaypieError.matcher.ts","../src/matchers.module.ts","../src/mockLog.module.ts","../src/sqsTestRecords.function.ts"],"sourcesContent":["export const LOG = {\n LEVEL: {\n ALL: \"all\",\n DEBUG: \"debug\",\n ERROR: \"error\",\n FATAL: \"fatal\",\n INFO: \"info\",\n SILENT: \"silent\",\n TRACE: \"trace\",\n WARN: \"warn\",\n },\n} as const;\n\nexport const RE_BASE64_PATTERN = /^[a-zA-Z0-9\\\\+\\\\/]+$/;\nexport const RE_JWT_PATTERN = /^([^.]+)\\.([^.]+)\\.([^.]+)$/;\nexport const RE_MONGO_ID_PATTERN = /^[a-f0-9]{24}$/i;\nexport const RE_SIGNED_COOKIE_PATTERN = /^s:([^.]+)\\.([^.]+)$/;\nexport const RE_UUID_4_PATTERN =\n /^[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;\nexport const RE_UUID_5_PATTERN =\n /^[a-f0-9]{8}-?[a-f0-9]{4}-?5[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;\nexport const RE_UUID_PATTERN =\n /^[a-f0-9]{8}-?[a-f0-9]{4}-?[a-f0-9]{4}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}$/i;\n","import { JsonApiData, JsonApiError } from \"./types/jaypie-testkit\";\n\nexport const jsonApiErrorSchema = {\n type: \"object\",\n properties: {\n errors: {\n type: \"array\",\n items: {\n type: \"object\",\n properties: {\n status: { type: \"number\" },\n title: { type: \"string\" },\n detail: { type: \"string\" },\n },\n required: [\"status\", \"title\"],\n },\n minItems: 1,\n },\n },\n required: [\"errors\"],\n} as const;\n\nexport const jsonApiSchema = {\n type: \"object\",\n properties: {\n data: {\n type: \"object\",\n properties: {\n id: { type: \"string\" },\n type: { type: \"string\" },\n attributes: { type: \"object\" },\n links: { type: \"object\" },\n meta: { type: \"object\" },\n relationships: { type: \"object\" },\n },\n required: [\"id\", \"type\"],\n },\n meta: { type: \"object\" },\n },\n required: [\"data\"],\n} as const;\n\n// Type guards\nexport const isJsonApiError = (obj: unknown): obj is JsonApiError => {\n if (!obj || typeof obj !== \"object\") return false;\n return \"errors\" in obj && Array.isArray((obj as JsonApiError).errors);\n};\n\nexport const isJsonApiData = (obj: unknown): obj is JsonApiData => {\n if (!obj || typeof obj !== \"object\") return false;\n return \"data\" in obj && typeof (obj as JsonApiData).data === \"object\";\n};\n","import { LogMock, MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\nconst calledAboveTrace = (log: LogMock): MatcherResult => {\n try {\n if (\n log.debug.mock.calls.length > 0 ||\n log.info.mock.calls.length > 0 ||\n log.warn.mock.calls.length > 0 ||\n log.error.mock.calls.length > 0 ||\n log.fatal.mock.calls.length > 0\n ) {\n return {\n message: () => `expected log not to have been called above trace`,\n pass: true,\n };\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n throw Error(`[calledAboveTrace] log is not a mock object`);\n }\n\n return {\n message: () => `expected log not to have been called above trace`,\n pass: false,\n };\n};\n\n//\n//\n// Export\n//\n\nexport default calledAboveTrace;\n","import isEqual from \"lodash.isequal\";\nimport { Mock } from \"vitest\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\nconst toBeCalledWithInitialParams = (\n received: Mock,\n ...passed: unknown[]\n): MatcherResult => {\n let pass: boolean | undefined;\n\n if (!received || typeof received !== \"function\" || !received.mock) {\n return {\n message: () =>\n `Expectation \\`toBeCalledWithInitialParams\\` expected a mock function`,\n pass: false,\n };\n }\n\n received.mock.calls.forEach((call: unknown[]) => {\n if (call.length >= passed.length) {\n let matching = true;\n for (let i = 0; i < passed.length && matching; i += 1) {\n if (!isEqual(passed[i], call[i])) matching = false;\n }\n pass = pass || matching;\n }\n });\n\n if (pass === undefined) pass = false;\n\n if (pass) {\n return {\n message: () =>\n `Expectation \\`toBeCalledWithInitialParams\\` expected call beginning with [${passed},...]`,\n pass: true,\n };\n } else {\n return {\n message: () =>\n `Expectation \\`not.toBeCalledWithInitialParams\\` did not expect call beginning with [${passed},...]`,\n pass: false,\n };\n }\n};\n\n//\n//\n// Export\n//\n\nexport default toBeCalledWithInitialParams;\n","import { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\nconst toBeClass = (received: unknown): MatcherResult => {\n let pass = false;\n if (typeof received === \"function\") {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (received as any)();\n pass = true;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n pass = false;\n }\n }\n if (pass) {\n return {\n message: () => `expected ${received} not to be a class`,\n pass: true,\n };\n }\n return {\n message: () => `expected ${received} to be a class`,\n pass: false,\n };\n};\n\n//\n//\n// Export\n//\n\nexport default toBeClass;\n","import { matchers as jsonSchemaMatchers } from \"jest-json-schema\";\nimport { jsonApiErrorSchema } from \"../jsonApiSchema.module\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Helper Functions\n//\n\nfunction isErrorObjectJaypieError(error: Error): MatcherResult {\n if (\"isProjectError\" in error) {\n return {\n message: () => `expected \"${error}\" not to be a Jaypie error`,\n pass: true,\n };\n }\n return {\n message: () => `expected \"${error}\" to be a Jaypie error`,\n pass: false,\n };\n}\n\n//\n//\n// Main\n//\n\nconst toBeJaypieError = (received: unknown): MatcherResult => {\n // See if it is an instance of error:\n if (received instanceof Error) {\n return isErrorObjectJaypieError(received);\n }\n\n const result = jsonSchemaMatchers.toMatchSchema(received, jsonApiErrorSchema);\n if (result.pass) {\n return {\n message: () => `expected ${received} not to be a Jaypie error`,\n pass: true,\n };\n } else {\n return {\n message: () => `expected ${received} to be a Jaypie error`,\n pass: false,\n };\n }\n};\n\n//\n//\n// Export\n//\n\nexport default toBeJaypieError;\n","import {\n RE_BASE64_PATTERN,\n RE_JWT_PATTERN,\n RE_MONGO_ID_PATTERN,\n RE_SIGNED_COOKIE_PATTERN,\n RE_UUID_4_PATTERN,\n RE_UUID_5_PATTERN,\n RE_UUID_PATTERN,\n} from \"../constants.js\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Helper\n//\n\ninterface ForSubjectToMatchPatternOptions {\n patternName?: string;\n}\n\nfunction forSubjectToMatchPattern(\n subject: string,\n pattern: RegExp,\n { patternName = \"pattern\" }: ForSubjectToMatchPatternOptions = {},\n): MatcherResult {\n if (pattern.test(subject)) {\n return {\n message: () => `expected \"${subject}\" not to match ${patternName}`,\n pass: true,\n };\n }\n return {\n message: () => `expected \"${subject}\" to match ${patternName}`,\n pass: false,\n };\n}\n\n//\n//\n// Main\n//\n\nexport const toMatchBase64 = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_BASE64_PATTERN, {\n patternName: \"Base64\",\n });\n\nexport const toMatchJwt = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_JWT_PATTERN, {\n patternName: \"JWT\",\n });\n\nexport const toMatchMongoId = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_MONGO_ID_PATTERN, {\n patternName: \"MongoDbId\",\n });\n\nexport const toMatchSignedCookie = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_SIGNED_COOKIE_PATTERN, {\n patternName: \"Signed-Cookie\",\n });\n\nexport const toMatchUuid4 = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_UUID_4_PATTERN, {\n patternName: \"UUIDv4\",\n });\n\nexport const toMatchUuid5 = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_UUID_5_PATTERN, {\n patternName: \"UUIDv5\",\n });\n\n/**\n * Determines if subject matches a UUID pattern.\n * Does _NOT_ check if the UUID is valid.\n */\nexport const toMatchUuid = (subject: string): MatcherResult =>\n forSubjectToMatchPattern(subject, RE_UUID_PATTERN, {\n patternName: \"UUID\",\n });\n","import { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\ntype ReceivedFunction = () => unknown | Promise<unknown>;\n\nconst toThrowError = async (\n received: ReceivedFunction,\n): Promise<MatcherResult> => {\n const isAsync =\n received.constructor.name === \"AsyncFunction\" ||\n received.constructor.name === \"Promise\";\n\n try {\n const result = received();\n\n if (isAsync) {\n await result;\n }\n\n return {\n pass: false,\n message: () =>\n \"Expected function to throw an error, but it did not throw.\",\n };\n } catch (error) {\n return {\n pass: true,\n message: () =>\n `Expected function not to throw an error, but it threw ${error}`,\n };\n }\n};\n\n//\n//\n// Export\n//\n\nexport default toThrowError;\n","import {\n BadGatewayError,\n BadRequestError,\n ConfigurationError,\n ForbiddenError,\n GatewayTimeoutError,\n InternalError,\n isJaypieError,\n NotFoundError,\n ProjectError,\n UnauthorizedError,\n UnavailableError,\n} from \"@jaypie/core\";\nimport { MatcherResult } from \"../types/jaypie-testkit\";\n\n//\n//\n// Main\n//\n\ntype ReceivedFunction = () => unknown | Promise<unknown>;\ntype ErrorConstructor = new () => ProjectError;\n\nfunction isErrorConstructor(value: unknown): value is ErrorConstructor {\n return typeof value === \"function\" && \"prototype\" in value;\n}\n\nconst toThrowJaypieError = async (\n received: ReceivedFunction,\n expected?: ProjectError | (() => ProjectError) | ErrorConstructor,\n): Promise<MatcherResult> => {\n const isAsync =\n received.constructor.name === \"AsyncFunction\" ||\n received.constructor.name === \"Promise\";\n\n let expectedError: ProjectError | undefined = undefined;\n\n // Handle constructor, function, or instance\n if (typeof expected === \"function\") {\n if (isErrorConstructor(expected)) {\n // It's a constructor\n expectedError = new expected();\n } else {\n // It's a regular function\n expectedError = expected();\n }\n } else if (expected) {\n // It's an instance\n expectedError = expected;\n }\n\n try {\n const result = received();\n\n if (isAsync) {\n await result;\n }\n\n // If no error is thrown, fail the test\n return {\n pass: false,\n message: () =>\n \"Expected function to throw a JaypieError, but it did not throw.\",\n };\n } catch (error) {\n if (isJaypieError(error)) {\n // If expected is also a JaypieError, check if the error matches\n if (expectedError && isJaypieError(expectedError)) {\n // If the error does not match, fail the test\n if (error._type !== expectedError._type) {\n return {\n pass: false,\n message: () =>\n `Expected function to throw \"${expectedError._type}\", but it threw \"${error._type}\"`,\n };\n }\n }\n return {\n pass: true,\n message: () =>\n `Expected function not to throw a JaypieError, but it threw ${error}`,\n };\n }\n\n return {\n pass: false,\n message: () =>\n `Expected function to throw a JaypieError, but it threw ${error}`,\n };\n }\n};\n\n//\n//\n// Convenience Methods\n//\n\nconst toThrowBadGatewayError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, BadGatewayError);\nconst toThrowBadRequestError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, BadRequestError);\nconst toThrowConfigurationError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, ConfigurationError);\nconst toThrowForbiddenError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, ForbiddenError);\nconst toThrowGatewayTimeoutError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, GatewayTimeoutError);\nconst toThrowInternalError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, InternalError);\nconst toThrowNotFoundError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, NotFoundError);\nconst toThrowUnauthorizedError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, UnauthorizedError);\nconst toThrowUnavailableError = (received: ReceivedFunction) =>\n toThrowJaypieError(received, UnavailableError);\n\n//\n//\n// Export\n//\n\nexport default toThrowJaypieError;\n\nexport {\n toThrowBadGatewayError,\n toThrowBadRequestError,\n toThrowConfigurationError,\n toThrowForbiddenError,\n toThrowGatewayTimeoutError,\n toThrowInternalError,\n toThrowNotFoundError,\n toThrowUnauthorizedError,\n toThrowUnavailableError,\n};\n","import { matchers as jestJsonSchemaMatchers } from \"jest-json-schema\";\nimport toBeCalledAboveTrace from \"./matchers/toBeCalledAboveTrace.matcher.js\";\nimport toBeCalledWithInitialParams from \"./matchers/toBeCalledWithInitialParams.matcher.js\";\nimport toBeClass from \"./matchers/toBeClass.matcher.js\";\nimport toBeJaypieError from \"./matchers/toBeJaypieError.matcher.js\";\nimport {\n toMatchBase64,\n toMatchJwt,\n toMatchMongoId,\n toMatchSignedCookie,\n toMatchUuid,\n toMatchUuid4,\n toMatchUuid5,\n} from \"./matchers/toMatch.matcher.js\";\nimport toThrowError from \"./matchers/toThrowError.matcher.js\";\nimport toThrowJaypieError, {\n toThrowBadGatewayError,\n toThrowBadRequestError,\n toThrowConfigurationError,\n toThrowForbiddenError,\n toThrowGatewayTimeoutError,\n toThrowInternalError,\n toThrowNotFoundError,\n toThrowUnauthorizedError,\n toThrowUnavailableError,\n} from \"./matchers/toThrowJaypieError.matcher.js\";\n\nconst matchers = {\n toBeCalledAboveTrace,\n toBeCalledWithInitialParams,\n toBeClass,\n toBeJaypieError,\n toMatchBase64,\n toMatchJwt,\n toMatchMongoId,\n toMatchSignedCookie,\n toMatchSchema: jestJsonSchemaMatchers.toMatchSchema,\n toMatchUuid,\n toMatchUuid4,\n toMatchUuid5,\n toThrowBadGatewayError,\n toThrowBadRequestError,\n toThrowConfigurationError,\n toThrowError,\n toThrowForbiddenError,\n toThrowGatewayTimeoutError,\n toThrowInternalError,\n toThrowJaypieError,\n toThrowNotFoundError,\n toThrowUnauthorizedError,\n toThrowUnavailableError,\n};\n\nexport default matchers;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Log } from \"@jaypie/core\";\nimport { vi } from \"vitest\";\nimport { LogMock } from \"./types/jaypie-testkit\";\n\nexport function mockLogFactory(): LogMock {\n // Create skeleton of mock objects\n const mock = {\n debug: vi.fn(),\n error: vi.fn(),\n fatal: vi.fn(),\n info: vi.fn(),\n init: vi.fn(),\n lib: vi.fn(),\n tag: vi.fn(),\n trace: vi.fn(),\n untag: vi.fn(),\n var: vi.fn(),\n warn: vi.fn(),\n with: vi.fn(),\n } as LogMock;\n\n // Fill out nested mocks\n mock.debug.var = mock.var;\n mock.error.var = mock.var;\n mock.fatal.var = mock.var;\n mock.info.var = mock.var;\n mock.trace.var = mock.var;\n mock.warn.var = mock.var;\n\n // Have modules return correct objects\n mock.init.mockReturnValue(null);\n mock.lib.mockReturnValue(mock);\n mock.with.mockReturnValue(mock);\n\n // Pin mocks to the module\n mock.mock = {\n debug: mock.debug,\n error: mock.error,\n fatal: mock.fatal,\n info: mock.info,\n init: mock.init,\n lib: mock.lib,\n tag: mock.tag,\n trace: mock.trace,\n untag: mock.untag,\n var: mock.var,\n warn: mock.warn,\n with: mock.with,\n };\n\n return mock;\n}\n\nconst LOG_METHOD_NAMES = [\n \"debug\",\n \"error\",\n \"fatal\",\n \"info\",\n \"init\",\n \"lib\",\n \"tag\",\n \"trace\",\n \"untag\",\n \"var\",\n \"warn\",\n \"with\",\n] as const;\n\nconst originalLogMethods = new WeakMap<Log, Partial<Log>>();\n\nexport function spyLog(log: Log): void {\n if (!originalLogMethods.has(log)) {\n const mockLog = mockLogFactory();\n const originalMethods: Partial<Log> = {};\n\n LOG_METHOD_NAMES.forEach((method) => {\n originalMethods[method] = log[method] as any;\n log[method] = mockLog[method] as any;\n });\n\n originalLogMethods.set(log, originalMethods);\n }\n}\n\nexport function restoreLog(log: Log): void {\n const originalMethods = originalLogMethods.get(log);\n if (originalMethods) {\n LOG_METHOD_NAMES.forEach((method) => {\n if (originalMethods[method]) {\n log[method] = originalMethods[method] as any;\n }\n });\n originalLogMethods.delete(log);\n }\n}\n","interface SQSEvent {\n Records: Array<{\n body: string;\n messageId?: string | number;\n [key: string]: unknown;\n }>;\n}\n\n/**\n * Creates a mock SQS event with the given records\n * @param records - Array of records or individual records to include in the event\n * @returns SQS event object with Records array\n */\nconst sqsTestRecords = (...records: Array<unknown>): SQSEvent => {\n // If first argument is an array, use that as records\n const recordsArray = Array.isArray(records[0]) ? records[0] : records;\n\n // Map records to SQS record format\n const formattedRecords = recordsArray.map((record) => {\n if (typeof record === \"object\" && record !== null) {\n return {\n ...record,\n body:\n typeof (record as { body?: unknown }).body === \"string\"\n ? (record as { body: string }).body\n : JSON.stringify((record as { body?: unknown }).body ?? record),\n };\n }\n return {\n body: String(record),\n };\n });\n\n return {\n Records: formattedRecords,\n };\n};\n\nexport default sqsTestRecords;\n"],"names":["jsonSchemaMatchers","toBeCalledAboveTrace","jestJsonSchemaMatchers"],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ import { uuid as originalUuid } from "@jaypie/core";
2
+ import { BadGatewayError as BadGatewayErrorOriginal, BadRequestError as BadRequestErrorOriginal, ConfigurationError as ConfigurationErrorOriginal, ForbiddenError as ForbiddenErrorOriginal, GatewayTimeoutError as GatewayTimeoutErrorOriginal, GoneError as GoneErrorOriginal, IllogicalError as IllogicalErrorOriginal, InternalError as InternalErrorOriginal, MethodNotAllowedError as MethodNotAllowedErrorOriginal, MultiError as MultiErrorOriginal, NotFoundError as NotFoundErrorOriginal, NotImplementedError as NotImplementedErrorOriginal, ProjectError as ProjectErrorOriginal, ProjectMultiError as ProjectMultiErrorOriginal, RejectedError as RejectedErrorOriginal, TeapotError as TeapotErrorOriginal, UnauthorizedError as UnauthorizedErrorOriginal, UnavailableError as UnavailableErrorOriginal, UnhandledError as UnhandledErrorOriginal, UnreachableCodeError as UnreachableCodeErrorOriginal } from "@jaypie/core";
3
+ import { ExpressHandlerParameter, GenericArgs, JaypieHandlerFunction, JaypieHandlerOptions, JaypieHandlerParameter } from "./types/jaypie-testkit";
4
+ import type { SQSMessageResponse } from "@jaypie/aws";
5
+ export * from "@jaypie/aws";
6
+ export * from "@jaypie/core";
7
+ export * from "@jaypie/express";
8
+ export * from "@jaypie/datadog";
9
+ export * from "@jaypie/lambda";
10
+ export * from "@jaypie/mongoose";
11
+ export declare const getMessages: import("vitest").Mock<(event?: {
12
+ Records?: Array<{
13
+ body: string;
14
+ }>;
15
+ } | {
16
+ body: string;
17
+ }[] | Record<string, unknown> | undefined) => (string | Record<string, unknown> | import("@jaypie/aws").SQSMessage)[]>;
18
+ export declare const getSecret: import("vitest").Mock<() => string>;
19
+ export declare const sendBatchMessages: import("vitest").Mock<() => SQSMessageResponse>;
20
+ export declare const sendMessage: import("vitest").Mock<() => SQSMessageResponse>;
21
+ export declare const BadGatewayError: import("vitest").Mock<(...params: ConstructorParameters<typeof BadGatewayErrorOriginal>) => InstanceType<typeof BadGatewayErrorOriginal>>;
22
+ export declare const BadRequestError: import("vitest").Mock<(...params: ConstructorParameters<typeof BadRequestErrorOriginal>) => InstanceType<typeof BadRequestErrorOriginal>>;
23
+ export declare const ConfigurationError: import("vitest").Mock<(...params: ConstructorParameters<typeof ConfigurationErrorOriginal>) => InstanceType<typeof ConfigurationErrorOriginal>>;
24
+ export declare const envBoolean: import("vitest").Mock<() => boolean>;
25
+ export declare const jaypieHandler: import("vitest").Mock<(handler: JaypieHandlerFunction, { setup, teardown, unavailable, validate, }?: JaypieHandlerOptions) => (...args: GenericArgs) => Promise<unknown>>;
26
+ export declare const sleep: import("vitest").Mock<() => boolean>;
27
+ export declare const uuid: import("vitest").Mock<typeof originalUuid>;
28
+ export declare const submitMetric: import("vitest").Mock<() => boolean>;
29
+ export declare const submitMetricSet: import("vitest").Mock<() => boolean>;
30
+ export declare const expressHandler: import("vitest").Mock<(handlerOrProps: ExpressHandlerParameter, propsOrHandler?: ExpressHandlerParameter) => (req?: {}, res?: {}, ...extra: unknown[]) => Promise<unknown>>;
31
+ export declare const connect: import("vitest").Mock<() => boolean>;
32
+ export declare const connectFromSecretEnv: import("vitest").Mock<() => boolean>;
33
+ export declare const disconnect: import("vitest").Mock<() => boolean>;
34
+ export declare const ForbiddenError: import("vitest").Mock<(...params: ConstructorParameters<typeof ForbiddenErrorOriginal>) => InstanceType<typeof ForbiddenErrorOriginal>>;
35
+ export declare const GatewayTimeoutError: import("vitest").Mock<(...params: ConstructorParameters<typeof GatewayTimeoutErrorOriginal>) => InstanceType<typeof GatewayTimeoutErrorOriginal>>;
36
+ export declare const GoneError: import("vitest").Mock<(...params: ConstructorParameters<typeof GoneErrorOriginal>) => InstanceType<typeof GoneErrorOriginal>>;
37
+ export declare const IllogicalError: import("vitest").Mock<(...params: ConstructorParameters<typeof IllogicalErrorOriginal>) => InstanceType<typeof IllogicalErrorOriginal>>;
38
+ export declare const InternalError: import("vitest").Mock<(...params: ConstructorParameters<typeof InternalErrorOriginal>) => InstanceType<typeof InternalErrorOriginal>>;
39
+ export declare const MethodNotAllowedError: import("vitest").Mock<(...params: ConstructorParameters<typeof MethodNotAllowedErrorOriginal>) => InstanceType<typeof MethodNotAllowedErrorOriginal>>;
40
+ export declare const MultiError: import("vitest").Mock<(...params: ConstructorParameters<typeof MultiErrorOriginal>) => InstanceType<typeof MultiErrorOriginal>>;
41
+ export declare const NotFoundError: import("vitest").Mock<(...params: ConstructorParameters<typeof NotFoundErrorOriginal>) => InstanceType<typeof NotFoundErrorOriginal>>;
42
+ export declare const NotImplementedError: import("vitest").Mock<(...params: ConstructorParameters<typeof NotImplementedErrorOriginal>) => InstanceType<typeof NotImplementedErrorOriginal>>;
43
+ export declare const ProjectError: import("vitest").Mock<(...params: ConstructorParameters<typeof ProjectErrorOriginal>) => InstanceType<typeof ProjectErrorOriginal>>;
44
+ export declare const ProjectMultiError: import("vitest").Mock<(...params: ConstructorParameters<typeof ProjectMultiErrorOriginal>) => InstanceType<typeof ProjectMultiErrorOriginal>>;
45
+ export declare const RejectedError: import("vitest").Mock<(...params: ConstructorParameters<typeof RejectedErrorOriginal>) => InstanceType<typeof RejectedErrorOriginal>>;
46
+ export declare const TeapotError: import("vitest").Mock<(...params: ConstructorParameters<typeof TeapotErrorOriginal>) => InstanceType<typeof TeapotErrorOriginal>>;
47
+ export declare const UnauthorizedError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnauthorizedErrorOriginal>) => InstanceType<typeof UnauthorizedErrorOriginal>>;
48
+ export declare const UnavailableError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnavailableErrorOriginal>) => InstanceType<typeof UnavailableErrorOriginal>>;
49
+ export declare const UnhandledError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnhandledErrorOriginal>) => InstanceType<typeof UnhandledErrorOriginal>>;
50
+ export declare const UnreachableCodeError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnreachableCodeErrorOriginal>) => InstanceType<typeof UnreachableCodeErrorOriginal>>;
51
+ export declare const lambdaHandler: import("vitest").Mock<(handler: JaypieHandlerParameter, props?: JaypieHandlerParameter) => (event: unknown, context: unknown, ...extra: unknown[]) => Promise<unknown>>;
52
+ declare const _default: {
53
+ getMessages: import("vitest").Mock<(event?: {
54
+ Records?: Array<{
55
+ body: string;
56
+ }>;
57
+ } | {
58
+ body: string;
59
+ }[] | Record<string, unknown> | undefined) => (string | Record<string, unknown> | import("@jaypie/aws").SQSMessage)[]>;
60
+ getSecret: import("vitest").Mock<() => string>;
61
+ sendBatchMessages: import("vitest").Mock<() => SQSMessageResponse>;
62
+ sendMessage: import("vitest").Mock<() => SQSMessageResponse>;
63
+ BadGatewayError: import("vitest").Mock<(...params: ConstructorParameters<typeof BadGatewayErrorOriginal>) => InstanceType<typeof BadGatewayErrorOriginal>>;
64
+ BadRequestError: import("vitest").Mock<(...params: ConstructorParameters<typeof BadRequestErrorOriginal>) => InstanceType<typeof BadRequestErrorOriginal>>;
65
+ ConfigurationError: import("vitest").Mock<(...params: ConstructorParameters<typeof ConfigurationErrorOriginal>) => InstanceType<typeof ConfigurationErrorOriginal>>;
66
+ envBoolean: import("vitest").Mock<() => boolean>;
67
+ ForbiddenError: import("vitest").Mock<(...params: ConstructorParameters<typeof ForbiddenErrorOriginal>) => InstanceType<typeof ForbiddenErrorOriginal>>;
68
+ GatewayTimeoutError: import("vitest").Mock<(...params: ConstructorParameters<typeof GatewayTimeoutErrorOriginal>) => InstanceType<typeof GatewayTimeoutErrorOriginal>>;
69
+ GoneError: import("vitest").Mock<(...params: ConstructorParameters<typeof GoneErrorOriginal>) => InstanceType<typeof GoneErrorOriginal>>;
70
+ HTTP: {
71
+ CODE: {
72
+ OK: number;
73
+ CREATED: number;
74
+ NO_CONTENT: number;
75
+ INTERNAL_SERVER_ERROR: number;
76
+ [key: string]: number;
77
+ };
78
+ };
79
+ IllogicalError: import("vitest").Mock<(...params: ConstructorParameters<typeof IllogicalErrorOriginal>) => InstanceType<typeof IllogicalErrorOriginal>>;
80
+ InternalError: import("vitest").Mock<(...params: ConstructorParameters<typeof InternalErrorOriginal>) => InstanceType<typeof InternalErrorOriginal>>;
81
+ jaypieHandler: import("vitest").Mock<(handler: JaypieHandlerFunction, { setup, teardown, unavailable, validate, }?: JaypieHandlerOptions) => (...args: GenericArgs) => Promise<unknown>>;
82
+ MethodNotAllowedError: import("vitest").Mock<(...params: ConstructorParameters<typeof MethodNotAllowedErrorOriginal>) => InstanceType<typeof MethodNotAllowedErrorOriginal>>;
83
+ MultiError: import("vitest").Mock<(...params: ConstructorParameters<typeof MultiErrorOriginal>) => InstanceType<typeof MultiErrorOriginal>>;
84
+ NotFoundError: import("vitest").Mock<(...params: ConstructorParameters<typeof NotFoundErrorOriginal>) => InstanceType<typeof NotFoundErrorOriginal>>;
85
+ NotImplementedError: import("vitest").Mock<(...params: ConstructorParameters<typeof NotImplementedErrorOriginal>) => InstanceType<typeof NotImplementedErrorOriginal>>;
86
+ ProjectError: import("vitest").Mock<(...params: ConstructorParameters<typeof ProjectErrorOriginal>) => InstanceType<typeof ProjectErrorOriginal>>;
87
+ ProjectMultiError: import("vitest").Mock<(...params: ConstructorParameters<typeof ProjectMultiErrorOriginal>) => InstanceType<typeof ProjectMultiErrorOriginal>>;
88
+ RejectedError: import("vitest").Mock<(...params: ConstructorParameters<typeof RejectedErrorOriginal>) => InstanceType<typeof RejectedErrorOriginal>>;
89
+ sleep: import("vitest").Mock<() => boolean>;
90
+ TeapotError: import("vitest").Mock<(...params: ConstructorParameters<typeof TeapotErrorOriginal>) => InstanceType<typeof TeapotErrorOriginal>>;
91
+ UnauthorizedError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnauthorizedErrorOriginal>) => InstanceType<typeof UnauthorizedErrorOriginal>>;
92
+ UnavailableError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnavailableErrorOriginal>) => InstanceType<typeof UnavailableErrorOriginal>>;
93
+ UnhandledError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnhandledErrorOriginal>) => InstanceType<typeof UnhandledErrorOriginal>>;
94
+ UnreachableCodeError: import("vitest").Mock<(...params: ConstructorParameters<typeof UnreachableCodeErrorOriginal>) => InstanceType<typeof UnreachableCodeErrorOriginal>>;
95
+ uuid: import("vitest").Mock<typeof originalUuid>;
96
+ submitMetric: import("vitest").Mock<() => boolean>;
97
+ submitMetricSet: import("vitest").Mock<() => boolean>;
98
+ expressHandler: import("vitest").Mock<(handlerOrProps: ExpressHandlerParameter, propsOrHandler?: ExpressHandlerParameter) => (req?: {}, res?: {}, ...extra: unknown[]) => Promise<unknown>>;
99
+ lambdaHandler: import("vitest").Mock<(handler: JaypieHandlerParameter, props?: JaypieHandlerParameter) => (event: unknown, context: unknown, ...extra: unknown[]) => Promise<unknown>>;
100
+ connect: import("vitest").Mock<() => boolean>;
101
+ connectFromSecretEnv: import("vitest").Mock<() => boolean>;
102
+ disconnect: import("vitest").Mock<() => boolean>;
103
+ };
104
+ export default _default;