@teamkeel/testing-runtime 0.237.0 → 0.238.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamkeel/testing-runtime",
3
- "version": "0.237.0",
3
+ "version": "0.238.0",
4
4
  "description": "Internal package used by the generated @teamkeel/testing package",
5
5
  "exports": "./src/index.mjs",
6
6
  "typings": "src/index.d.ts",
@@ -14,11 +14,13 @@
14
14
  "access": "public"
15
15
  },
16
16
  "devDependencies": {
17
+ "@types/lodash.ismatch": "^4.4.7",
17
18
  "prettier": "2.7.1"
18
19
  },
19
20
  "dependencies": {
20
21
  "jsonwebtoken": "^9.0.0",
21
- "vitest": "^0.27.2",
22
- "kysely": "^0.23.4"
22
+ "kysely": "^0.23.4",
23
+ "lodash.ismatch": "^4.4.0",
24
+ "vitest": "^0.27.2"
23
25
  }
24
26
  }
package/pnpm-lock.yaml CHANGED
@@ -1,17 +1,21 @@
1
1
  lockfileVersion: 5.4
2
2
 
3
3
  specifiers:
4
+ '@types/lodash.ismatch': ^4.4.7
4
5
  jsonwebtoken: ^9.0.0
5
6
  kysely: ^0.23.4
7
+ lodash.ismatch: ^4.4.0
6
8
  prettier: 2.7.1
7
9
  vitest: ^0.27.2
8
10
 
9
11
  dependencies:
10
12
  jsonwebtoken: 9.0.0
11
13
  kysely: 0.23.4
14
+ lodash.ismatch: 4.4.0
12
15
  vitest: 0.27.2
13
16
 
14
17
  devDependencies:
18
+ '@types/lodash.ismatch': 4.4.7
15
19
  prettier: 2.7.1
16
20
 
17
21
  packages:
@@ -49,6 +53,7 @@ packages:
49
53
  cpu: [arm64]
50
54
  os: [darwin]
51
55
  requiresBuild: true
56
+ dev: false
52
57
  optional: true
53
58
 
54
59
  /@esbuild/darwin-x64/0.16.17:
@@ -223,6 +228,16 @@ packages:
223
228
  resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==}
224
229
  dev: false
225
230
 
231
+ /@types/lodash.ismatch/4.4.7:
232
+ resolution: {integrity: sha512-ybydj07Fw8332Q4+LQSiSkxQCPkAZTt6YQHXyAISfa/HfFq8yWhhDF8lVr8s09eyG6W++iPRCkXgT5tXMA3e9g==}
233
+ dependencies:
234
+ '@types/lodash': 4.14.191
235
+ dev: true
236
+
237
+ /@types/lodash/4.14.191:
238
+ resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==}
239
+ dev: true
240
+
226
241
  /@types/node/18.11.18:
227
242
  resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==}
228
243
  dev: false
@@ -240,6 +255,7 @@ packages:
240
255
 
241
256
  /assertion-error/1.1.0:
242
257
  resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
258
+ dev: false
243
259
 
244
260
  /buffer-equal-constant-time/1.0.1:
245
261
  resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
@@ -247,6 +263,7 @@ packages:
247
263
 
248
264
  /buffer-from/1.1.2:
249
265
  resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
266
+ dev: false
250
267
 
251
268
  /cac/6.7.14:
252
269
  resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
@@ -268,6 +285,7 @@ packages:
268
285
 
269
286
  /check-error/1.0.2:
270
287
  resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==}
288
+ dev: false
271
289
 
272
290
  /debug/4.3.4:
273
291
  resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
@@ -286,6 +304,7 @@ packages:
286
304
  engines: {node: '>=6'}
287
305
  dependencies:
288
306
  type-detect: 4.0.8
307
+ dev: false
289
308
 
290
309
  /ecdsa-sig-formatter/1.0.11:
291
310
  resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
@@ -333,23 +352,28 @@ packages:
333
352
 
334
353
  /function-bind/1.1.1:
335
354
  resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
355
+ dev: false
336
356
 
337
357
  /get-func-name/2.0.0:
338
358
  resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==}
359
+ dev: false
339
360
 
340
361
  /has/1.0.3:
341
362
  resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
342
363
  engines: {node: '>= 0.4.0'}
343
364
  dependencies:
344
365
  function-bind: 1.1.1
366
+ dev: false
345
367
 
346
368
  /is-core-module/2.11.0:
347
369
  resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
348
370
  dependencies:
349
371
  has: 1.0.3
372
+ dev: false
350
373
 
351
374
  /jsonc-parser/3.2.0:
352
375
  resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
376
+ dev: false
353
377
 
354
378
  /jsonwebtoken/9.0.0:
355
379
  resolution: {integrity: sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==}
@@ -386,6 +410,10 @@ packages:
386
410
  engines: {node: '>=14'}
387
411
  dev: false
388
412
 
413
+ /lodash.ismatch/4.4.0:
414
+ resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==}
415
+ dev: false
416
+
389
417
  /lodash/4.17.21:
390
418
  resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
391
419
  dev: false
@@ -394,6 +422,7 @@ packages:
394
422
  resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
395
423
  dependencies:
396
424
  get-func-name: 2.0.0
425
+ dev: false
397
426
 
398
427
  /lru-cache/6.0.0:
399
428
  resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
@@ -423,9 +452,11 @@ packages:
423
452
  resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
424
453
  engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
425
454
  hasBin: true
455
+ dev: false
426
456
 
427
457
  /path-parse/1.0.7:
428
458
  resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
459
+ dev: false
429
460
 
430
461
  /pathe/0.2.0:
431
462
  resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==}
@@ -433,9 +464,11 @@ packages:
433
464
 
434
465
  /pathe/1.1.0:
435
466
  resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==}
467
+ dev: false
436
468
 
437
469
  /pathval/1.1.1:
438
470
  resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
471
+ dev: false
439
472
 
440
473
  /picocolors/1.0.0:
441
474
  resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
@@ -447,6 +480,7 @@ packages:
447
480
  jsonc-parser: 3.2.0
448
481
  mlly: 1.1.0
449
482
  pathe: 1.1.0
483
+ dev: false
450
484
 
451
485
  /postcss/8.4.21:
452
486
  resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
@@ -494,10 +528,12 @@ packages:
494
528
 
495
529
  /siginfo/2.0.0:
496
530
  resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
531
+ dev: false
497
532
 
498
533
  /source-map-js/1.0.2:
499
534
  resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
500
535
  engines: {node: '>=0.10.0'}
536
+ dev: false
501
537
 
502
538
  /source-map-support/0.5.21:
503
539
  resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
@@ -513,6 +549,7 @@ packages:
513
549
 
514
550
  /stackback/0.0.2:
515
551
  resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
552
+ dev: false
516
553
 
517
554
  /strip-literal/1.0.0:
518
555
  resolution: {integrity: sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==}
@@ -523,6 +560,7 @@ packages:
523
560
  /supports-preserve-symlinks-flag/1.0.0:
524
561
  resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
525
562
  engines: {node: '>= 0.4'}
563
+ dev: false
526
564
 
527
565
  /tinybench/2.3.1:
528
566
  resolution: {integrity: sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==}
@@ -541,9 +579,11 @@ packages:
541
579
  /type-detect/4.0.8:
542
580
  resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
543
581
  engines: {node: '>=4'}
582
+ dev: false
544
583
 
545
584
  /ufo/1.0.1:
546
585
  resolution: {integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==}
586
+ dev: false
547
587
 
548
588
  /vite-node/0.27.2_@types+node@18.11.18:
549
589
  resolution: {integrity: sha512-IDwuVhslF10qCnWOGJui7/2KksAOBHi+UbVo6Pqt4f5lgn+kS2sVvYDsETRG5PSuslisGB5CFGvb9I6FQgymBQ==}
package/src/index.d.ts CHANGED
@@ -1,8 +1,13 @@
1
1
  // See https://vitest.dev/guide/extending-matchers.html for docs
2
2
  // on typing custom matchers
3
3
 
4
+ interface ActionError {
5
+ code: string;
6
+ }
7
+
4
8
  interface CustomMatchers<R = unknown> {
5
- toHaveAuthorizationError(): R;
9
+ toHaveAuthorizationError(): void;
10
+ toHaveError(err: ActionError): void;
6
11
  }
7
12
 
8
13
  declare global {
package/src/index.test.ts CHANGED
@@ -14,3 +14,24 @@ test("not.toHaveAuthorizationError", async () => {
14
14
  });
15
15
  await expect(p).not.toHaveAuthorizationError();
16
16
  });
17
+
18
+ test("toHaveError", async () => {
19
+ const p = Promise.reject({
20
+ code: "ERR_INVALID_INPUT",
21
+ message: "Invalid input",
22
+ });
23
+
24
+ await expect(p).toHaveError({
25
+ code: "ERR_INVALID_INPUT",
26
+ });
27
+ });
28
+
29
+ test("not.toHaveError", async () => {
30
+ const p = Promise.resolve({
31
+ id: "foo",
32
+ });
33
+
34
+ await expect(p).not.toHaveError({
35
+ code: "ERR_INVALID_INPUT",
36
+ });
37
+ });
@@ -0,0 +1,23 @@
1
+ import isMatch from 'lodash.ismatch'
2
+
3
+ export async function toHaveError(received, expected) {
4
+ const { isNot } = this;
5
+ try {
6
+ const v = await received;
7
+
8
+ return {
9
+ pass: false,
10
+ message: () => 'expected value to reject',
11
+ actual: v,
12
+ expected
13
+ };
14
+ } catch (err) {
15
+ return {
16
+ pass: isMatch(err, expected),
17
+ message: () =>
18
+ `expected ${isNot ? "no " : ""} ${JSON.stringify(err)} error`,
19
+ actual: err,
20
+ expected
21
+ };
22
+ }
23
+ }
@@ -3,8 +3,10 @@
3
3
  // we tell Vitest to load that config file.
4
4
 
5
5
  import { expect } from "vitest";
6
+ import { toHaveError } from "./toHaveError";
6
7
  import { toHaveAuthorizationError } from "./toHaveAuthorizationError";
7
8
 
8
9
  expect.extend({
10
+ toHaveError,
9
11
  toHaveAuthorizationError,
10
12
  });