@event-driven-io/emmett 0.12.0 → 0.13.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/dist/{chunk-TGIGJCOU.js → chunk-2XFHDDFU.js} +2 -2
- package/dist/{chunk-GWMVSXLN.mjs → chunk-4WCXAVTA.mjs} +2 -2
- package/dist/{chunk-GNTBBARO.mjs → chunk-JBAGEOUC.mjs} +3 -3
- package/dist/chunk-JBAGEOUC.mjs.map +1 -0
- package/dist/{chunk-HXDPPPUA.js → chunk-OFBLNL5K.js} +3 -3
- package/dist/{chunk-HXDPPPUA.js.map → chunk-OFBLNL5K.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/testing/assertions.d.mts +1 -1
- package/dist/testing/assertions.d.ts +1 -1
- package/dist/testing/assertions.js +1 -1
- package/dist/testing/assertions.mjs +1 -1
- package/dist/testing/deciderSpecification.js +1 -1
- package/dist/testing/deciderSpecification.mjs +1 -1
- package/dist/testing/features.js +1 -1
- package/dist/testing/features.mjs +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/testing/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-GNTBBARO.mjs.map +0 -1
- /package/dist/{chunk-TGIGJCOU.js.map → chunk-2XFHDDFU.js.map} +0 -0
- /package/dist/{chunk-GWMVSXLN.mjs.map → chunk-4WCXAVTA.mjs.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkOFBLNL5Kjs = require('./chunk-OFBLNL5K.js');var _chunkE7KI3V22js = require('./chunk-E7KI3V22.js');var y={for:o=>n=>({when:c=>{let a=()=>{let r=(Array.isArray(n)?n:[n]).reduce(o.evolve,o.initialState());return o.decide(c,r)};return{then:e=>{let r=a(),d=Array.isArray(r)?r:[r],h=Array.isArray(e)?e:[e];_chunkOFBLNL5Kjs.f.call(void 0, d,h)},thenThrows:(...e)=>{try{throw a(),new (0, _chunkOFBLNL5Kjs.a)("Handler did not fail as expected")}catch(r){if(r instanceof _chunkOFBLNL5Kjs.a)throw r;if(e.length===0)return;if(!_chunkE7KI3V22js.j.call(void 0, e[0])){_chunkOFBLNL5Kjs.j.call(void 0, e[0](r),`Error didn't match the error condition: ${_optionalChain([r, 'optionalAccess', _ => _.toString, 'call', _2 => _2()])}`);return}_chunkOFBLNL5Kjs.j.call(void 0, r instanceof e[0],`Caught error is not an instance of the expected type: ${_optionalChain([r, 'optionalAccess', _3 => _3.toString, 'call', _4 => _4()])}`),e[1]&&_chunkOFBLNL5Kjs.j.call(void 0, e[1](r),`Error didn't match the error condition: ${_optionalChain([r, 'optionalAccess', _5 => _5.toString, 'call', _6 => _6()])}`)}}}}})};exports.a = y;
|
|
2
|
+
//# sourceMappingURL=chunk-2XFHDDFU.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as i,f as E,j as t}from"./chunk-
|
|
2
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
import{a as i,f as E,j as t}from"./chunk-JBAGEOUC.mjs";import{j as s}from"./chunk-KLLSLLHN.mjs";var y={for:o=>n=>({when:c=>{let a=()=>{let r=(Array.isArray(n)?n:[n]).reduce(o.evolve,o.initialState());return o.decide(c,r)};return{then:e=>{let r=a(),d=Array.isArray(r)?r:[r],h=Array.isArray(e)?e:[e];E(d,h)},thenThrows:(...e)=>{try{throw a(),new i("Handler did not fail as expected")}catch(r){if(r instanceof i)throw r;if(e.length===0)return;if(!s(e[0])){t(e[0](r),`Error didn't match the error condition: ${r?.toString()}`);return}t(r instanceof e[0],`Caught error is not an instance of the expected type: ${r?.toString()}`),e[1]&&t(e[1](r),`Error didn't match the error condition: ${r?.toString()}`)}}}}})};export{y as a};
|
|
2
|
+
//# sourceMappingURL=chunk-4WCXAVTA.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as r}from"./chunk-B7NWWHCY.mjs";import{b as c}from"./chunk-S33YM44M.mjs";var l=class extends Error{constructor(e){super(e)}},g=(n,e)=>{let t=n,o=e;return u(t),u(o),Object.keys(o).every(a=>typeof o[a]=="object"?g(t[a],o[a]):o[a]===t[a])},p=n=>{throw new l(n??"That should not ever happened, right?")},
|
|
1
|
+
import{a as r}from"./chunk-B7NWWHCY.mjs";import{b as c}from"./chunk-S33YM44M.mjs";var l=class extends Error{constructor(e){super(e)}},g=(n,e)=>{let t=n,o=e;return u(t),u(o),Object.keys(o).every(a=>typeof o[a]=="object"?g(t[a],o[a]):o[a]===t[a])},p=n=>{throw new l(n??"That should not ever happened, right?")},f=async(n,e)=>{try{throw await n(),new l("Function didn't throw expected error")}catch(t){let o=t;return e&&s(e(o)),o}},w=(n,e)=>{try{throw n(),new l("Function didn't throw expected error")}catch(t){let o=t;return e&&s(e(o)),o}},k=(n,e,t)=>{if(!g(n,e))throw new l(t??`subObj:
|
|
2
2
|
${c.stringify(e)}
|
|
3
3
|
is not subset of
|
|
4
4
|
${c.stringify(n)}`)},x=(n,e,t)=>{if(!r(n,e))throw new l(t??`subObj:
|
|
@@ -6,5 +6,5 @@ ${c.stringify(e)}
|
|
|
6
6
|
is equals to
|
|
7
7
|
${c.stringify(n)}`)},E=n=>({isEqualTo:e=>s(r(n,e))});function m(n,e){if(n)throw new l(e??"Condition is false")}function s(n,e){if(!n)throw new l(e??"Condition is false")}function u(n,e){if(!n)throw new l(e??"Condition is not truthy")}function i(n,e,t){if(n!==e)throw new l(t??`Objects are not equal:
|
|
8
8
|
Expected: ${c.stringify(n)}
|
|
9
|
-
Actual:${c.stringify(e)}`)}function h(n,e,t){if(n===e)throw new l(t??`Objects are equal: ${c.stringify(n)}`)}function b(n){h(n,null),u(n)}function y(n){i(n,null)}var O=n=>e=>r(e,n),v=n=>e=>n(e);function M(n){return{calledTimes:e=>{i(n.mock?.calls?.length,e)},notCalled:()=>{i(n?.mock?.calls?.length,0)},called:()=>{s(n.mock?.calls.length!==void 0&&n.mock.calls.length>0)},calledWith:(...e)=>{s(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>r(t.arguments,e)))},calledOnceWith:(...e)=>{s(n.mock?.calls.length!==void 0&&n.mock.calls.length===1&&n.mock.calls.some(t=>r(t.arguments,e)))},calledWithArgumentMatching:(...e)=>{s(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1),s(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>t.arguments&&t.arguments.length>=e.length&&e.every((o,a)=>o(t.arguments[a]))))},notCalledWithArgumentMatching:(...e)=>{m(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls[0].arguments&&n.mock.calls[0].arguments.length>=e.length&&e.every((t,o)=>t(n.mock.calls[0].arguments[o])))}}}var A=n=>({isEmpty:()=>i(n.length,0),hasSize:e=>i(n.length,e),containsElements:(...e)=>{s(e.every(t=>e.some(o=>r(t,o))))},containsExactlyInAnyOrder:(...e)=>{i(n.length,e.length),s(n.every(t=>e.some(o=>r(t,o))))},containsExactlyInAnyOrderElementsOf:e=>{i(n.length,e.length),s(n.every(t=>e.some(o=>r(t,o))))},containsExactlyElementsOf:e=>{i(n.length,e.length);for(let t=0;t<n.length;t++)s(r(n[t],e[t]))},containsExactly:e=>{i(n.length,1),s(r(n[0],e))},contains:e=>{s(n.some(t=>r(t,e)))},containsOnlyOnceElementsOf:e=>{s(e.map(t=>n.filter(o=>r(o,t)).length).filter(t=>t===1).length===e.length)},containsAnyOf:(...e)=>{s(n.some(t=>e.some(o=>r(t,o))))},allMatch:e=>{s(n.every(e))},anyMatches:e=>{s(n.some(e))},allMatchAsync:async e=>{for(let t of n)s(await e(t))}});export{l as a,g as b,p as c,
|
|
10
|
-
//# sourceMappingURL=chunk-
|
|
9
|
+
Actual:${c.stringify(e)}`)}function h(n,e,t){if(n===e)throw new l(t??`Objects are equal: ${c.stringify(n)}`)}function b(n){h(n,null),u(n)}function y(n){i(n,null)}var O=n=>e=>r(e,n),v=n=>e=>n(e);function M(n){return{calledTimes:e=>{i(n.mock?.calls?.length,e)},notCalled:()=>{i(n?.mock?.calls?.length,0)},called:()=>{s(n.mock?.calls.length!==void 0&&n.mock.calls.length>0)},calledWith:(...e)=>{s(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>r(t.arguments,e)))},calledOnceWith:(...e)=>{s(n.mock?.calls.length!==void 0&&n.mock.calls.length===1&&n.mock.calls.some(t=>r(t.arguments,e)))},calledWithArgumentMatching:(...e)=>{s(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1),s(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>t.arguments&&t.arguments.length>=e.length&&e.every((o,a)=>o(t.arguments[a]))))},notCalledWithArgumentMatching:(...e)=>{m(n.mock?.calls.length!==void 0&&n.mock.calls.length>=1&&n.mock.calls[0].arguments&&n.mock.calls[0].arguments.length>=e.length&&e.every((t,o)=>t(n.mock.calls[0].arguments[o])))}}}var A=n=>({isEmpty:()=>i(n.length,0),hasSize:e=>i(n.length,e),containsElements:(...e)=>{s(e.every(t=>e.some(o=>r(t,o))))},containsExactlyInAnyOrder:(...e)=>{i(n.length,e.length),s(n.every(t=>e.some(o=>r(t,o))))},containsExactlyInAnyOrderElementsOf:e=>{i(n.length,e.length),s(n.every(t=>e.some(o=>r(t,o))))},containsExactlyElementsOf:e=>{i(n.length,e.length);for(let t=0;t<n.length;t++)s(r(n[t],e[t]))},containsExactly:e=>{i(n.length,1),s(r(n[0],e))},contains:e=>{s(n.some(t=>r(t,e)))},containsOnlyOnceElementsOf:e=>{s(e.map(t=>n.filter(o=>r(o,t)).length).filter(t=>t===1).length===e.length)},containsAnyOf:(...e)=>{s(n.some(t=>e.some(o=>r(t,o))))},allMatch:e=>{s(n.every(e))},anyMatches:e=>{s(n.some(e))},allMatchAsync:async e=>{for(let t of n)s(await e(t))}});export{l as a,g as b,p as c,f as d,w as e,k as f,x as g,E as h,m as i,s as j,u as k,i as l,h as m,b as n,y as o,O as p,v as q,M as r,A as s};
|
|
10
|
+
//# sourceMappingURL=chunk-JBAGEOUC.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/testing/assertions.ts"],"sourcesContent":["import { JSONParser } from '../serialization';\nimport type { DefaultRecord } from '../typing';\nimport { deepEquals } from '../utils';\n\nexport class AssertionError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\nexport const isSubset = (superObj: unknown, subObj: unknown): boolean => {\n const sup = superObj as DefaultRecord;\n const sub = subObj as DefaultRecord;\n\n assertOk(sup);\n assertOk(sub);\n\n return Object.keys(sub).every((ele: string) => {\n if (typeof sub[ele] == 'object') {\n return isSubset(sup[ele], sub[ele]);\n }\n return sub[ele] === sup[ele];\n });\n};\n\nexport const assertFails = (message?: string) => {\n throw new AssertionError(message ?? 'That should not ever happened, right?');\n};\n\nexport const assertThrowsAsync = async <TError extends Error>(\n fun: () => Promise<void>,\n errorCheck?: (error: Error) => boolean,\n): Promise<TError> => {\n try {\n await fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n const typedError = error as TError;\n if (errorCheck) assertTrue(errorCheck(typedError));\n return typedError;\n }\n};\n\nexport const assertThrows = <TError extends Error>(\n fun: () => void,\n errorCheck?: (error: Error) => boolean,\n): TError => {\n try {\n fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n const typedError = error as TError;\n if (errorCheck) assertTrue(errorCheck(typedError));\n return typedError;\n }\n};\nexport const assertMatches = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!isSubset(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSONParser.stringify(expected)}\\nis not subset of\\n${JSONParser.stringify(actual)}`,\n );\n};\n\nexport const assertDeepEqual = <T = unknown>(\n actual: T,\n expected: T,\n message?: string,\n) => {\n if (!deepEquals(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSONParser.stringify(expected)}\\nis equals to\\n${JSONParser.stringify(actual)}`,\n );\n};\n\nexport const assertThat = <T>(item: T) => {\n return {\n isEqualTo: (other: T) => assertTrue(deepEquals(item, other)),\n };\n};\n\nexport function assertFalse(\n condition: boolean,\n message?: string,\n): asserts condition is false {\n if (condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertTrue(\n condition: boolean,\n message?: string,\n): asserts condition is true {\n if (!condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertOk<T>(\n obj: T | null | undefined,\n message?: string,\n): asserts obj is T {\n if (!obj) throw new AssertionError(message ?? `Condition is not truthy`);\n}\n\nexport function assertEqual<T>(\n expected: T | null | undefined,\n actual: T | null | undefined,\n message?: string,\n): void {\n if (expected !== actual)\n throw new AssertionError(\n message ??\n `Objects are not equal:\\nExpected: ${JSONParser.stringify(expected)}\\nActual:${JSONParser.stringify(actual)}`,\n );\n}\n\nexport function assertNotEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj === other)\n throw new AssertionError(\n message ?? `Objects are equal: ${JSONParser.stringify(obj)}`,\n );\n}\n\nexport function assertIsNotNull<T extends object | bigint>(\n result: T | null,\n): asserts result is T {\n assertNotEqual(result, null);\n assertOk(result);\n}\n\nexport function assertIsNull<T extends object>(\n result: T | null,\n): asserts result is null {\n assertEqual(result, null);\n}\n\ntype Call = {\n arguments: unknown[];\n result: unknown;\n target: unknown;\n this: unknown;\n};\n\nexport type ArgumentMatcher = (arg: unknown) => boolean;\n\nexport const argValue =\n <T>(value: T): ArgumentMatcher =>\n (arg) =>\n deepEquals(arg, value);\n\nexport const argMatches =\n <T>(matches: (arg: T) => boolean): ArgumentMatcher =>\n (arg) =>\n matches(arg as T);\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MockedFunction = Function & { mock?: { calls: Call[] } };\n\nexport function verifyThat(fn: MockedFunction) {\n return {\n calledTimes: (times: number) => {\n assertEqual(fn.mock?.calls?.length, times);\n },\n notCalled: () => {\n assertEqual(fn?.mock?.calls?.length, 0);\n },\n called: () => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length > 0,\n );\n },\n calledWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledOnceWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length === 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length >= 1,\n );\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some(\n (call) =>\n call.arguments &&\n call.arguments.length >= matches.length &&\n matches.every((match, index) => match(call.arguments[index])),\n ),\n );\n },\n notCalledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertFalse(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls[0]!.arguments &&\n fn.mock.calls[0]!.arguments.length >= matches.length &&\n matches.every((match, index) =>\n match(fn.mock!.calls[0]!.arguments[index]),\n ),\n );\n },\n };\n}\n\nexport const assertThatArray = <T>(array: T[]) => {\n return {\n isEmpty: () => assertEqual(array.length, 0),\n hasSize: (length: number) => assertEqual(array.length, length),\n containsElements: (...other: T[]) => {\n assertTrue(other.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrder: (...other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrderElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n for (let i = 0; i < array.length; i++) {\n assertTrue(deepEquals(array[i], other[i]));\n }\n },\n containsExactly: (elem: T) => {\n assertEqual(array.length, 1);\n assertTrue(deepEquals(array[0], elem));\n },\n contains: (elem: T) => {\n assertTrue(array.some((a) => deepEquals(a, elem)));\n },\n containsOnlyOnceElementsOf: (other: T[]) => {\n assertTrue(\n other\n .map((o) => array.filter((a) => deepEquals(a, o)).length)\n .filter((a) => a === 1).length === other.length,\n );\n },\n containsAnyOf: (...other: T[]) => {\n assertTrue(array.some((a) => other.some((o) => deepEquals(a, o))));\n },\n allMatch: (matches: (item: T) => boolean) => {\n assertTrue(array.every(matches));\n },\n anyMatches: (matches: (item: T) => boolean) => {\n assertTrue(array.some(matches));\n },\n allMatchAsync: async (\n matches: (item: T) => Promise<boolean>,\n ): Promise<void> => {\n for (const item of array) {\n assertTrue(await matches(item));\n }\n },\n };\n};\n"],"mappings":"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","names":["AssertionError","message","isSubset","superObj","subObj","sup","sub","assertOk","ele","assertFails","assertThrowsAsync","fun","errorCheck","error","typedError","assertTrue","assertThrows","assertMatches","actual","expected","JSONParser","assertDeepEqual","deepEquals","assertThat","item","other","assertFalse","condition","obj","assertEqual","assertNotEqual","assertIsNotNull","result","assertIsNull","argValue","value","arg","argMatches","matches","verifyThat","fn","times","args","call","match","index","assertThatArray","array","length","ts","i","elem","a","o"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkPVFUNWT6js = require('./chunk-PVFUNWT6.js');var _chunkMKHK5TRMjs = require('./chunk-MKHK5TRM.js');var l=class extends Error{constructor(e){super(e)}},g= exports.b =(n,e)=>{let t=n,o=e;return u(t),u(o),Object.keys(o).every(a=>typeof o[a]=="object"?g(t[a],o[a]):o[a]===t[a])},p= exports.c =n=>{throw new l(_nullishCoalesce(n, () => ("That should not ever happened, right?")))},
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkPVFUNWT6js = require('./chunk-PVFUNWT6.js');var _chunkMKHK5TRMjs = require('./chunk-MKHK5TRM.js');var l=class extends Error{constructor(e){super(e)}},g= exports.b =(n,e)=>{let t=n,o=e;return u(t),u(o),Object.keys(o).every(a=>typeof o[a]=="object"?g(t[a],o[a]):o[a]===t[a])},p= exports.c =n=>{throw new l(_nullishCoalesce(n, () => ("That should not ever happened, right?")))},f= exports.d =async(n,e)=>{try{throw await n(),new l("Function didn't throw expected error")}catch(t){let o=t;return e&&s(e(o)),o}},w= exports.e =(n,e)=>{try{throw n(),new l("Function didn't throw expected error")}catch(t){let o=t;return e&&s(e(o)),o}},k= exports.f =(n,e,t)=>{if(!g(n,e))throw new l(_nullishCoalesce(t, () => (`subObj:
|
|
2
2
|
${_chunkMKHK5TRMjs.b.stringify(e)}
|
|
3
3
|
is not subset of
|
|
4
4
|
${_chunkMKHK5TRMjs.b.stringify(n)}`)))},x= exports.g =(n,e,t)=>{if(!_chunkPVFUNWT6js.a.call(void 0, n,e))throw new l(_nullishCoalesce(t, () => (`subObj:
|
|
@@ -6,5 +6,5 @@ ${_chunkMKHK5TRMjs.b.stringify(e)}
|
|
|
6
6
|
is equals to
|
|
7
7
|
${_chunkMKHK5TRMjs.b.stringify(n)}`)))},E= exports.h =n=>({isEqualTo:e=>s(_chunkPVFUNWT6js.a.call(void 0, n,e))});function m(n,e){if(n)throw new l(_nullishCoalesce(e, () => ("Condition is false")))}function s(n,e){if(!n)throw new l(_nullishCoalesce(e, () => ("Condition is false")))}function u(n,e){if(!n)throw new l(_nullishCoalesce(e, () => ("Condition is not truthy")))}function i(n,e,t){if(n!==e)throw new l(_nullishCoalesce(t, () => (`Objects are not equal:
|
|
8
8
|
Expected: ${_chunkMKHK5TRMjs.b.stringify(n)}
|
|
9
|
-
Actual:${_chunkMKHK5TRMjs.b.stringify(e)}`)))}function h(n,e,t){if(n===e)throw new l(_nullishCoalesce(t, () => (`Objects are equal: ${_chunkMKHK5TRMjs.b.stringify(n)}`)))}function b(n){h(n,null),u(n)}function y(n){i(n,null)}var O=n=>e=>_chunkPVFUNWT6js.a.call(void 0, e,n),v= exports.q =n=>e=>n(e);function M(n){return{calledTimes:e=>{i(_optionalChain([n, 'access', _ => _.mock, 'optionalAccess', _2 => _2.calls, 'optionalAccess', _3 => _3.length]),e)},notCalled:()=>{i(_optionalChain([n, 'optionalAccess', _4 => _4.mock, 'optionalAccess', _5 => _5.calls, 'optionalAccess', _6 => _6.length]),0)},called:()=>{s(_optionalChain([n, 'access', _7 => _7.mock, 'optionalAccess', _8 => _8.calls, 'access', _9 => _9.length])!==void 0&&n.mock.calls.length>0)},calledWith:(...e)=>{s(_optionalChain([n, 'access', _10 => _10.mock, 'optionalAccess', _11 => _11.calls, 'access', _12 => _12.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>_chunkPVFUNWT6js.a.call(void 0, t.arguments,e)))},calledOnceWith:(...e)=>{s(_optionalChain([n, 'access', _13 => _13.mock, 'optionalAccess', _14 => _14.calls, 'access', _15 => _15.length])!==void 0&&n.mock.calls.length===1&&n.mock.calls.some(t=>_chunkPVFUNWT6js.a.call(void 0, t.arguments,e)))},calledWithArgumentMatching:(...e)=>{s(_optionalChain([n, 'access', _16 => _16.mock, 'optionalAccess', _17 => _17.calls, 'access', _18 => _18.length])!==void 0&&n.mock.calls.length>=1),s(_optionalChain([n, 'access', _19 => _19.mock, 'optionalAccess', _20 => _20.calls, 'access', _21 => _21.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>t.arguments&&t.arguments.length>=e.length&&e.every((o,a)=>o(t.arguments[a]))))},notCalledWithArgumentMatching:(...e)=>{m(_optionalChain([n, 'access', _22 => _22.mock, 'optionalAccess', _23 => _23.calls, 'access', _24 => _24.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls[0].arguments&&n.mock.calls[0].arguments.length>=e.length&&e.every((t,o)=>t(n.mock.calls[0].arguments[o])))}}}var A=n=>({isEmpty:()=>i(n.length,0),hasSize:e=>i(n.length,e),containsElements:(...e)=>{s(e.every(t=>e.some(o=>_chunkPVFUNWT6js.a.call(void 0, t,o))))},containsExactlyInAnyOrder:(...e)=>{i(n.length,e.length),s(n.every(t=>e.some(o=>_chunkPVFUNWT6js.a.call(void 0, t,o))))},containsExactlyInAnyOrderElementsOf:e=>{i(n.length,e.length),s(n.every(t=>e.some(o=>_chunkPVFUNWT6js.a.call(void 0, t,o))))},containsExactlyElementsOf:e=>{i(n.length,e.length);for(let t=0;t<n.length;t++)s(_chunkPVFUNWT6js.a.call(void 0, n[t],e[t]))},containsExactly:e=>{i(n.length,1),s(_chunkPVFUNWT6js.a.call(void 0, n[0],e))},contains:e=>{s(n.some(t=>_chunkPVFUNWT6js.a.call(void 0, t,e)))},containsOnlyOnceElementsOf:e=>{s(e.map(t=>n.filter(o=>_chunkPVFUNWT6js.a.call(void 0, o,t)).length).filter(t=>t===1).length===e.length)},containsAnyOf:(...e)=>{s(n.some(t=>e.some(o=>_chunkPVFUNWT6js.a.call(void 0, t,o))))},allMatch:e=>{s(n.every(e))},anyMatches:e=>{s(n.some(e))},allMatchAsync:async e=>{for(let t of n)s(await e(t))}});exports.a = l; exports.b = g; exports.c = p; exports.d =
|
|
10
|
-
//# sourceMappingURL=chunk-
|
|
9
|
+
Actual:${_chunkMKHK5TRMjs.b.stringify(e)}`)))}function h(n,e,t){if(n===e)throw new l(_nullishCoalesce(t, () => (`Objects are equal: ${_chunkMKHK5TRMjs.b.stringify(n)}`)))}function b(n){h(n,null),u(n)}function y(n){i(n,null)}var O=n=>e=>_chunkPVFUNWT6js.a.call(void 0, e,n),v= exports.q =n=>e=>n(e);function M(n){return{calledTimes:e=>{i(_optionalChain([n, 'access', _ => _.mock, 'optionalAccess', _2 => _2.calls, 'optionalAccess', _3 => _3.length]),e)},notCalled:()=>{i(_optionalChain([n, 'optionalAccess', _4 => _4.mock, 'optionalAccess', _5 => _5.calls, 'optionalAccess', _6 => _6.length]),0)},called:()=>{s(_optionalChain([n, 'access', _7 => _7.mock, 'optionalAccess', _8 => _8.calls, 'access', _9 => _9.length])!==void 0&&n.mock.calls.length>0)},calledWith:(...e)=>{s(_optionalChain([n, 'access', _10 => _10.mock, 'optionalAccess', _11 => _11.calls, 'access', _12 => _12.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>_chunkPVFUNWT6js.a.call(void 0, t.arguments,e)))},calledOnceWith:(...e)=>{s(_optionalChain([n, 'access', _13 => _13.mock, 'optionalAccess', _14 => _14.calls, 'access', _15 => _15.length])!==void 0&&n.mock.calls.length===1&&n.mock.calls.some(t=>_chunkPVFUNWT6js.a.call(void 0, t.arguments,e)))},calledWithArgumentMatching:(...e)=>{s(_optionalChain([n, 'access', _16 => _16.mock, 'optionalAccess', _17 => _17.calls, 'access', _18 => _18.length])!==void 0&&n.mock.calls.length>=1),s(_optionalChain([n, 'access', _19 => _19.mock, 'optionalAccess', _20 => _20.calls, 'access', _21 => _21.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls.some(t=>t.arguments&&t.arguments.length>=e.length&&e.every((o,a)=>o(t.arguments[a]))))},notCalledWithArgumentMatching:(...e)=>{m(_optionalChain([n, 'access', _22 => _22.mock, 'optionalAccess', _23 => _23.calls, 'access', _24 => _24.length])!==void 0&&n.mock.calls.length>=1&&n.mock.calls[0].arguments&&n.mock.calls[0].arguments.length>=e.length&&e.every((t,o)=>t(n.mock.calls[0].arguments[o])))}}}var A=n=>({isEmpty:()=>i(n.length,0),hasSize:e=>i(n.length,e),containsElements:(...e)=>{s(e.every(t=>e.some(o=>_chunkPVFUNWT6js.a.call(void 0, t,o))))},containsExactlyInAnyOrder:(...e)=>{i(n.length,e.length),s(n.every(t=>e.some(o=>_chunkPVFUNWT6js.a.call(void 0, t,o))))},containsExactlyInAnyOrderElementsOf:e=>{i(n.length,e.length),s(n.every(t=>e.some(o=>_chunkPVFUNWT6js.a.call(void 0, t,o))))},containsExactlyElementsOf:e=>{i(n.length,e.length);for(let t=0;t<n.length;t++)s(_chunkPVFUNWT6js.a.call(void 0, n[t],e[t]))},containsExactly:e=>{i(n.length,1),s(_chunkPVFUNWT6js.a.call(void 0, n[0],e))},contains:e=>{s(n.some(t=>_chunkPVFUNWT6js.a.call(void 0, t,e)))},containsOnlyOnceElementsOf:e=>{s(e.map(t=>n.filter(o=>_chunkPVFUNWT6js.a.call(void 0, o,t)).length).filter(t=>t===1).length===e.length)},containsAnyOf:(...e)=>{s(n.some(t=>e.some(o=>_chunkPVFUNWT6js.a.call(void 0, t,o))))},allMatch:e=>{s(n.every(e))},anyMatches:e=>{s(n.some(e))},allMatchAsync:async e=>{for(let t of n)s(await e(t))}});exports.a = l; exports.b = g; exports.c = p; exports.d = f; exports.e = w; exports.f = k; exports.g = x; exports.h = E; exports.i = m; exports.j = s; exports.k = u; exports.l = i; exports.m = h; exports.n = b; exports.o = y; exports.p = O; exports.q = v; exports.r = M; exports.s = A;
|
|
10
|
+
//# sourceMappingURL=chunk-OFBLNL5K.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/testing/assertions.ts"],"names":["AssertionError","message","isSubset","superObj","subObj","sup","sub","assertOk","ele","assertFails","assertThrowsAsync","fun","errorCheck","error","typedError","assertTrue","assertThrows","assertMatches","actual","expected","JSONParser","assertDeepEqual","deepEquals","assertThat","item","other","assertFalse","condition","obj","assertEqual","assertNotEqual","assertIsNotNull","result","assertIsNull","argValue","value","arg","argMatches","matches","verifyThat","fn","times","args","call","match","index","assertThatArray","array","length","ts","i","elem","a","o"],"mappings":"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","sourcesContent":["import { JSONParser } from '../serialization';\nimport type { DefaultRecord } from '../typing';\nimport { deepEquals } from '../utils';\n\nexport class AssertionError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\nexport const isSubset = (superObj: unknown, subObj: unknown): boolean => {\n const sup = superObj as DefaultRecord;\n const sub = subObj as DefaultRecord;\n\n assertOk(sup);\n assertOk(sub);\n\n return Object.keys(sub).every((ele: string) => {\n if (typeof sub[ele] == 'object') {\n return isSubset(sup[ele], sub[ele]);\n }\n return sub[ele] === sup[ele];\n });\n};\n\nexport const assertFails = (message?: string) => {\n throw new AssertionError(message ?? 'That should not ever happened, right?');\n};\n\nexport const assertThrowsAsync = async <TError extends Error>(\n fun: () => Promise<void>,\n errorCheck?: (error: Error) => boolean,\n): Promise<TError> => {\n try {\n await fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n const typedError = error as TError;\n if (errorCheck) assertTrue(errorCheck(typedError));\n return typedError;\n }\n};\n\nexport const assertThrows = <TError extends Error>(\n fun: () => void,\n errorCheck?: (error: Error) => boolean,\n): TError => {\n try {\n fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n const typedError = error as TError;\n if (errorCheck) assertTrue(errorCheck(typedError));\n return typedError;\n }\n};\nexport const assertMatches = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!isSubset(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSONParser.stringify(expected)}\\nis not subset of\\n${JSONParser.stringify(actual)}`,\n );\n};\n\nexport const assertDeepEqual = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!deepEquals(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSONParser.stringify(expected)}\\nis equals to\\n${JSONParser.stringify(actual)}`,\n );\n};\n\nexport const assertThat = <T>(item: T) => {\n return {\n isEqualTo: (other: T) => assertTrue(deepEquals(item, other)),\n };\n};\n\nexport function assertFalse(\n condition: boolean,\n message?: string,\n): asserts condition is false {\n if (condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertTrue(\n condition: boolean,\n message?: string,\n): asserts condition is true {\n if (!condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertOk<T>(\n obj: T | null | undefined,\n message?: string,\n): asserts obj is T {\n if (!obj) throw new AssertionError(message ?? `Condition is not truthy`);\n}\n\nexport function assertEqual<T>(\n expected: T | null | undefined,\n actual: T | null | undefined,\n message?: string,\n): void {\n if (expected !== actual)\n throw new AssertionError(\n message ??\n `Objects are not equal:\\nExpected: ${JSONParser.stringify(expected)}\\nActual:${JSONParser.stringify(actual)}`,\n );\n}\n\nexport function assertNotEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj === other)\n throw new AssertionError(\n message ?? `Objects are equal: ${JSONParser.stringify(obj)}`,\n );\n}\n\nexport function assertIsNotNull<T extends object | bigint>(\n result: T | null,\n): asserts result is T {\n assertNotEqual(result, null);\n assertOk(result);\n}\n\nexport function assertIsNull<T extends object>(\n result: T | null,\n): asserts result is null {\n assertEqual(result, null);\n}\n\ntype Call = {\n arguments: unknown[];\n result: unknown;\n target: unknown;\n this: unknown;\n};\n\nexport type ArgumentMatcher = (arg: unknown) => boolean;\n\nexport const argValue =\n <T>(value: T): ArgumentMatcher =>\n (arg) =>\n deepEquals(arg, value);\n\nexport const argMatches =\n <T>(matches: (arg: T) => boolean): ArgumentMatcher =>\n (arg) =>\n matches(arg as T);\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MockedFunction = Function & { mock?: { calls: Call[] } };\n\nexport function verifyThat(fn: MockedFunction) {\n return {\n calledTimes: (times: number) => {\n assertEqual(fn.mock?.calls?.length, times);\n },\n notCalled: () => {\n assertEqual(fn?.mock?.calls?.length, 0);\n },\n called: () => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length > 0,\n );\n },\n calledWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledOnceWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length === 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length >= 1,\n );\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some(\n (call) =>\n call.arguments &&\n call.arguments.length >= matches.length &&\n matches.every((match, index) => match(call.arguments[index])),\n ),\n );\n },\n notCalledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertFalse(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls[0]!.arguments &&\n fn.mock.calls[0]!.arguments.length >= matches.length &&\n matches.every((match, index) =>\n match(fn.mock!.calls[0]!.arguments[index]),\n ),\n );\n },\n };\n}\n\nexport const assertThatArray = <T>(array: T[]) => {\n return {\n isEmpty: () => assertEqual(array.length, 0),\n hasSize: (length: number) => assertEqual(array.length, length),\n containsElements: (...other: T[]) => {\n assertTrue(other.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrder: (...other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrderElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n for (let i = 0; i < array.length; i++) {\n assertTrue(deepEquals(array[i], other[i]));\n }\n },\n containsExactly: (elem: T) => {\n assertEqual(array.length, 1);\n assertTrue(deepEquals(array[0], elem));\n },\n contains: (elem: T) => {\n assertTrue(array.some((a) => deepEquals(a, elem)));\n },\n containsOnlyOnceElementsOf: (other: T[]) => {\n assertTrue(\n other\n .map((o) => array.filter((a) => deepEquals(a, o)).length)\n .filter((a) => a === 1).length === other.length,\n );\n },\n containsAnyOf: (...other: T[]) => {\n assertTrue(array.some((a) => other.some((o) => deepEquals(a, o))));\n },\n allMatch: (matches: (item: T) => boolean) => {\n assertTrue(array.every(matches));\n },\n anyMatches: (matches: (item: T) => boolean) => {\n assertTrue(array.some(matches));\n },\n allMatchAsync: async (\n matches: (item: T) => Promise<boolean>,\n ): Promise<void> => {\n for (const item of array) {\n assertTrue(await matches(item));\n }\n },\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/testing/assertions.ts"],"names":["AssertionError","message","isSubset","superObj","subObj","sup","sub","assertOk","ele","assertFails","assertThrowsAsync","fun","errorCheck","error","typedError","assertTrue","assertThrows","assertMatches","actual","expected","JSONParser","assertDeepEqual","deepEquals","assertThat","item","other","assertFalse","condition","obj","assertEqual","assertNotEqual","assertIsNotNull","result","assertIsNull","argValue","value","arg","argMatches","matches","verifyThat","fn","times","args","call","match","index","assertThatArray","array","length","ts","i","elem","a","o"],"mappings":"gFAIO,IAAMA,EAAN,cAA6B,KAAM,CACxC,YAAYC,EAAiB,CAC3B,MAAMA,CAAO,CACf,CACF,EACaC,EAAW,CAACC,EAAmBC,IAA6B,CACvE,IAAMC,EAAMF,EACNG,EAAMF,EAEZ,OAAAG,EAASF,CAAG,EACZE,EAASD,CAAG,EAEL,OAAO,KAAKA,CAAG,EAAE,MAAOE,GACzB,OAAOF,EAAIE,CAAG,GAAK,SACdN,EAASG,EAAIG,CAAG,EAAGF,EAAIE,CAAG,CAAC,EAE7BF,EAAIE,CAAG,IAAMH,EAAIG,CAAG,CAC5B,CACH,EAEaC,EAAeR,GAAqB,CAC/C,MAAM,IAAID,EAAeC,GAAW,uCAAuC,CAC7E,EAEaS,EAAoB,MAC/BC,EACAC,IACoB,CACpB,GAAI,CACF,YAAMD,EAAI,EACJ,IAAIX,EAAe,sCAAsC,CACjE,OAASa,EAAO,CACd,IAAMC,EAAaD,EACnB,OAAID,GAAYG,EAAWH,EAAWE,CAAU,CAAC,EAC1CA,CACT,CACF,EAEaE,EAAe,CAC1BL,EACAC,IACW,CACX,GAAI,CACF,MAAAD,EAAI,EACE,IAAIX,EAAe,sCAAsC,CACjE,OAASa,EAAO,CACd,IAAMC,EAAaD,EACnB,OAAID,GAAYG,EAAWH,EAAWE,CAAU,CAAC,EAC1CA,CACT,CACF,EACaG,EAAgB,CAC3BC,EACAC,EACAlB,IACG,CACH,GAAI,CAACC,EAASgB,EAAQC,CAAQ,EAC5B,MAAM,IAAInB,EACRC,GACE;AAAA,EAAYmB,EAAW,UAAUD,CAAQ,CAAC;AAAA;AAAA,EAAuBC,EAAW,UAAUF,CAAM,CAAC,EACjG,CACJ,EAEaG,EAAkB,CAC7BH,EACAC,EACAlB,IACG,CACH,GAAI,CAACqB,EAAWJ,EAAQC,CAAQ,EAC9B,MAAM,IAAInB,EACRC,GACE;AAAA,EAAYmB,EAAW,UAAUD,CAAQ,CAAC;AAAA;AAAA,EAAmBC,EAAW,UAAUF,CAAM,CAAC,EAC7F,CACJ,EAEaK,EAAiBC,IACrB,CACL,UAAYC,GAAaV,EAAWO,EAAWE,EAAMC,CAAK,CAAC,CAC7D,GAGK,SAASC,EACdC,EACA1B,EAC4B,CAC5B,GAAI0B,EAAW,MAAM,IAAI3B,EAAeC,GAAW,oBAAoB,CACzE,CAEO,SAASc,EACdY,EACA1B,EAC2B,CAC3B,GAAI,CAAC0B,EAAW,MAAM,IAAI3B,EAAeC,GAAW,oBAAoB,CAC1E,CAEO,SAASM,EACdqB,EACA3B,EACkB,CAClB,GAAI,CAAC2B,EAAK,MAAM,IAAI5B,EAAeC,GAAW,yBAAyB,CACzE,CAEO,SAAS4B,EACdV,EACAD,EACAjB,EACM,CACN,GAAIkB,IAAaD,EACf,MAAM,IAAIlB,EACRC,GACE;AAAA,YAAqCmB,EAAW,UAAUD,CAAQ,CAAC;AAAA,SAAYC,EAAW,UAAUF,CAAM,CAAC,EAC/G,CACJ,CAEO,SAASY,EACdF,EACAH,EACAxB,EACM,CACN,GAAI2B,IAAQH,EACV,MAAM,IAAIzB,EACRC,GAAW,sBAAsBmB,EAAW,UAAUQ,CAAG,CAAC,EAC5D,CACJ,CAEO,SAASG,EACdC,EACqB,CACrBF,EAAeE,EAAQ,IAAI,EAC3BzB,EAASyB,CAAM,CACjB,CAEO,SAASC,EACdD,EACwB,CACxBH,EAAYG,EAAQ,IAAI,CAC1B,CAWO,IAAME,EACPC,GACHC,GACCd,EAAWc,EAAKD,CAAK,EAEZE,EACPC,GACHF,GACCE,EAAQF,CAAQ,EAKb,SAASG,EAAWC,EAAoB,CAC7C,MAAO,CACL,YAAcC,GAAkB,CAC9BZ,EAAYW,EAAG,MAAM,OAAO,OAAQC,CAAK,CAC3C,EACA,UAAW,IAAM,CACfZ,EAAYW,GAAI,MAAM,OAAO,OAAQ,CAAC,CACxC,EACA,OAAQ,IAAM,CACZzB,EACEyB,EAAG,MAAM,MAAM,SAAW,QAAaA,EAAG,KAAK,MAAM,OAAS,CAChE,CACF,EACA,WAAY,IAAIE,IAAoB,CAClC3B,EACEyB,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,QAAU,GACxBA,EAAG,KAAK,MAAM,KAAMG,GAASrB,EAAWqB,EAAK,UAAWD,CAAI,CAAC,CACjE,CACF,EACA,eAAgB,IAAIA,IAAoB,CACtC3B,EACEyB,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,SAAW,GACzBA,EAAG,KAAK,MAAM,KAAMG,GAASrB,EAAWqB,EAAK,UAAWD,CAAI,CAAC,CACjE,CACF,EACA,2BAA4B,IAAIJ,IAA+B,CAC7DvB,EACEyB,EAAG,MAAM,MAAM,SAAW,QAAaA,EAAG,KAAK,MAAM,QAAU,CACjE,EACAzB,EACEyB,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,QAAU,GACxBA,EAAG,KAAK,MAAM,KACXG,GACCA,EAAK,WACLA,EAAK,UAAU,QAAUL,EAAQ,QACjCA,EAAQ,MAAM,CAACM,EAAOC,IAAUD,EAAMD,EAAK,UAAUE,CAAK,CAAC,CAAC,CAChE,CACJ,CACF,EACA,8BAA+B,IAAIP,IAA+B,CAChEZ,EACEc,EAAG,MAAM,MAAM,SAAW,QACxBA,EAAG,KAAK,MAAM,QAAU,GACxBA,EAAG,KAAK,MAAM,CAAC,EAAG,WAClBA,EAAG,KAAK,MAAM,CAAC,EAAG,UAAU,QAAUF,EAAQ,QAC9CA,EAAQ,MAAM,CAACM,EAAOC,IACpBD,EAAMJ,EAAG,KAAM,MAAM,CAAC,EAAG,UAAUK,CAAK,CAAC,CAC3C,CACJ,CACF,CACF,CACF,CAEO,IAAMC,EAAsBC,IAC1B,CACL,QAAS,IAAMlB,EAAYkB,EAAM,OAAQ,CAAC,EAC1C,QAAUC,GAAmBnB,EAAYkB,EAAM,OAAQC,CAAM,EAC7D,iBAAkB,IAAIvB,IAAe,CACnCV,EAAWU,EAAM,MAAOwB,GAAOxB,EAAM,KAAM,GAAMH,EAAW2B,EAAI,CAAC,CAAC,CAAC,CAAC,CACtE,EACA,0BAA2B,IAAIxB,IAAe,CAC5CI,EAAYkB,EAAM,OAAQtB,EAAM,MAAM,EACtCV,EAAWgC,EAAM,MAAOE,GAAOxB,EAAM,KAAM,GAAMH,EAAW2B,EAAI,CAAC,CAAC,CAAC,CAAC,CACtE,EACA,oCAAsCxB,GAAe,CACnDI,EAAYkB,EAAM,OAAQtB,EAAM,MAAM,EACtCV,EAAWgC,EAAM,MAAOE,GAAOxB,EAAM,KAAM,GAAMH,EAAW2B,EAAI,CAAC,CAAC,CAAC,CAAC,CACtE,EACA,0BAA4BxB,GAAe,CACzCI,EAAYkB,EAAM,OAAQtB,EAAM,MAAM,EACtC,QAASyB,EAAI,EAAGA,EAAIH,EAAM,OAAQG,IAChCnC,EAAWO,EAAWyB,EAAMG,CAAC,EAAGzB,EAAMyB,CAAC,CAAC,CAAC,CAE7C,EACA,gBAAkBC,GAAY,CAC5BtB,EAAYkB,EAAM,OAAQ,CAAC,EAC3BhC,EAAWO,EAAWyB,EAAM,CAAC,EAAGI,CAAI,CAAC,CACvC,EACA,SAAWA,GAAY,CACrBpC,EAAWgC,EAAM,KAAMK,GAAM9B,EAAW8B,EAAGD,CAAI,CAAC,CAAC,CACnD,EACA,2BAA6B1B,GAAe,CAC1CV,EACEU,EACG,IAAK4B,GAAMN,EAAM,OAAQK,GAAM9B,EAAW8B,EAAGC,CAAC,CAAC,EAAE,MAAM,EACvD,OAAQD,GAAMA,IAAM,CAAC,EAAE,SAAW3B,EAAM,MAC7C,CACF,EACA,cAAe,IAAIA,IAAe,CAChCV,EAAWgC,EAAM,KAAMK,GAAM3B,EAAM,KAAM,GAAMH,EAAW8B,EAAG,CAAC,CAAC,CAAC,CAAC,CACnE,EACA,SAAWd,GAAkC,CAC3CvB,EAAWgC,EAAM,MAAMT,CAAO,CAAC,CACjC,EACA,WAAaA,GAAkC,CAC7CvB,EAAWgC,EAAM,KAAKT,CAAO,CAAC,CAChC,EACA,cAAe,MACbA,GACkB,CAClB,QAAWd,KAAQuB,EACjBhC,EAAW,MAAMuB,EAAQd,CAAI,CAAC,CAElC,CACF","sourcesContent":["import { JSONParser } from '../serialization';\nimport type { DefaultRecord } from '../typing';\nimport { deepEquals } from '../utils';\n\nexport class AssertionError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\nexport const isSubset = (superObj: unknown, subObj: unknown): boolean => {\n const sup = superObj as DefaultRecord;\n const sub = subObj as DefaultRecord;\n\n assertOk(sup);\n assertOk(sub);\n\n return Object.keys(sub).every((ele: string) => {\n if (typeof sub[ele] == 'object') {\n return isSubset(sup[ele], sub[ele]);\n }\n return sub[ele] === sup[ele];\n });\n};\n\nexport const assertFails = (message?: string) => {\n throw new AssertionError(message ?? 'That should not ever happened, right?');\n};\n\nexport const assertThrowsAsync = async <TError extends Error>(\n fun: () => Promise<void>,\n errorCheck?: (error: Error) => boolean,\n): Promise<TError> => {\n try {\n await fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n const typedError = error as TError;\n if (errorCheck) assertTrue(errorCheck(typedError));\n return typedError;\n }\n};\n\nexport const assertThrows = <TError extends Error>(\n fun: () => void,\n errorCheck?: (error: Error) => boolean,\n): TError => {\n try {\n fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n const typedError = error as TError;\n if (errorCheck) assertTrue(errorCheck(typedError));\n return typedError;\n }\n};\nexport const assertMatches = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!isSubset(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSONParser.stringify(expected)}\\nis not subset of\\n${JSONParser.stringify(actual)}`,\n );\n};\n\nexport const assertDeepEqual = <T = unknown>(\n actual: T,\n expected: T,\n message?: string,\n) => {\n if (!deepEquals(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSONParser.stringify(expected)}\\nis equals to\\n${JSONParser.stringify(actual)}`,\n );\n};\n\nexport const assertThat = <T>(item: T) => {\n return {\n isEqualTo: (other: T) => assertTrue(deepEquals(item, other)),\n };\n};\n\nexport function assertFalse(\n condition: boolean,\n message?: string,\n): asserts condition is false {\n if (condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertTrue(\n condition: boolean,\n message?: string,\n): asserts condition is true {\n if (!condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertOk<T>(\n obj: T | null | undefined,\n message?: string,\n): asserts obj is T {\n if (!obj) throw new AssertionError(message ?? `Condition is not truthy`);\n}\n\nexport function assertEqual<T>(\n expected: T | null | undefined,\n actual: T | null | undefined,\n message?: string,\n): void {\n if (expected !== actual)\n throw new AssertionError(\n message ??\n `Objects are not equal:\\nExpected: ${JSONParser.stringify(expected)}\\nActual:${JSONParser.stringify(actual)}`,\n );\n}\n\nexport function assertNotEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj === other)\n throw new AssertionError(\n message ?? `Objects are equal: ${JSONParser.stringify(obj)}`,\n );\n}\n\nexport function assertIsNotNull<T extends object | bigint>(\n result: T | null,\n): asserts result is T {\n assertNotEqual(result, null);\n assertOk(result);\n}\n\nexport function assertIsNull<T extends object>(\n result: T | null,\n): asserts result is null {\n assertEqual(result, null);\n}\n\ntype Call = {\n arguments: unknown[];\n result: unknown;\n target: unknown;\n this: unknown;\n};\n\nexport type ArgumentMatcher = (arg: unknown) => boolean;\n\nexport const argValue =\n <T>(value: T): ArgumentMatcher =>\n (arg) =>\n deepEquals(arg, value);\n\nexport const argMatches =\n <T>(matches: (arg: T) => boolean): ArgumentMatcher =>\n (arg) =>\n matches(arg as T);\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MockedFunction = Function & { mock?: { calls: Call[] } };\n\nexport function verifyThat(fn: MockedFunction) {\n return {\n calledTimes: (times: number) => {\n assertEqual(fn.mock?.calls?.length, times);\n },\n notCalled: () => {\n assertEqual(fn?.mock?.calls?.length, 0);\n },\n called: () => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length > 0,\n );\n },\n calledWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledOnceWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length === 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length >= 1,\n );\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some(\n (call) =>\n call.arguments &&\n call.arguments.length >= matches.length &&\n matches.every((match, index) => match(call.arguments[index])),\n ),\n );\n },\n notCalledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertFalse(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls[0]!.arguments &&\n fn.mock.calls[0]!.arguments.length >= matches.length &&\n matches.every((match, index) =>\n match(fn.mock!.calls[0]!.arguments[index]),\n ),\n );\n },\n };\n}\n\nexport const assertThatArray = <T>(array: T[]) => {\n return {\n isEmpty: () => assertEqual(array.length, 0),\n hasSize: (length: number) => assertEqual(array.length, length),\n containsElements: (...other: T[]) => {\n assertTrue(other.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrder: (...other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrderElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n for (let i = 0; i < array.length; i++) {\n assertTrue(deepEquals(array[i], other[i]));\n }\n },\n containsExactly: (elem: T) => {\n assertEqual(array.length, 1);\n assertTrue(deepEquals(array[0], elem));\n },\n contains: (elem: T) => {\n assertTrue(array.some((a) => deepEquals(a, elem)));\n },\n containsOnlyOnceElementsOf: (other: T[]) => {\n assertTrue(\n other\n .map((o) => array.filter((a) => deepEquals(a, o)).length)\n .filter((a) => a === 1).length === other.length,\n );\n },\n containsAnyOf: (...other: T[]) => {\n assertTrue(array.some((a) => other.some((o) => deepEquals(a, o))));\n },\n allMatch: (matches: (item: T) => boolean) => {\n assertTrue(array.every(matches));\n },\n anyMatches: (matches: (item: T) => boolean) => {\n assertTrue(array.some(matches));\n },\n allMatchAsync: async (\n matches: (item: T) => Promise<boolean>,\n ): Promise<void> => {\n for (const item of array) {\n assertTrue(await matches(item));\n }\n },\n };\n};\n"]}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-7MFB6DXR.js');require('./chunk-BP5RXRGL.js');var _chunk7ZSJY377js = require('./chunk-7ZSJY377.js');var _chunkG6LPI3PAjs = require('./chunk-G6LPI3PA.js');var _chunk2E7KSKKIjs = require('./chunk-2E7KSKKI.js');var _chunk5JZKD7CBjs = require('./chunk-5JZKD7CB.js');var _chunkZIBX4FPGjs = require('./chunk-ZIBX4FPG.js');var _chunkFNYJ62ROjs = require('./chunk-FNYJ62RO.js');require('./chunk-YGTOG7JR.js');require('./chunk-BNCTLP4B.js');var _chunkTNX525X5js = require('./chunk-TNX525X5.js');var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-7MFB6DXR.js');require('./chunk-BP5RXRGL.js');var _chunk7ZSJY377js = require('./chunk-7ZSJY377.js');var _chunkG6LPI3PAjs = require('./chunk-G6LPI3PA.js');var _chunk2E7KSKKIjs = require('./chunk-2E7KSKKI.js');var _chunk5JZKD7CBjs = require('./chunk-5JZKD7CB.js');var _chunkZIBX4FPGjs = require('./chunk-ZIBX4FPG.js');var _chunkFNYJ62ROjs = require('./chunk-FNYJ62RO.js');require('./chunk-YGTOG7JR.js');require('./chunk-BNCTLP4B.js');var _chunkTNX525X5js = require('./chunk-TNX525X5.js');var _chunk2XFHDDFUjs = require('./chunk-2XFHDDFU.js');var _chunkOFBLNL5Kjs = require('./chunk-OFBLNL5K.js');require('./chunk-6IATZUYD.js');var _chunkPVFUNWT6js = require('./chunk-PVFUNWT6.js');var _chunkFE73T2NSjs = require('./chunk-FE73T2NS.js');var _chunk3JE5DUJ2js = require('./chunk-3JE5DUJ2.js');var _chunkHCHELB23js = require('./chunk-HCHELB23.js');require('./chunk-ZLASBJGR.js');var _chunkMHB2JU4Ujs = require('./chunk-MHB2JU4U.js');require('./chunk-7FJXUW3D.js');require('./chunk-5BGN2FV4.js');var _chunkKQAFRLJ2js = require('./chunk-KQAFRLJ2.js');var _chunkUFUSYJWUjs = require('./chunk-UFUSYJWU.js');require('./chunk-LOJ6A4AJ.js');require('./chunk-AU2WZCER.js');var _chunkMKHK5TRMjs = require('./chunk-MKHK5TRM.js');var _chunk4K5I5WJGjs = require('./chunk-4K5I5WJG.js');var _chunkUHJAD4TUjs = require('./chunk-UHJAD4TU.js');require('./chunk-F7QRI2VL.js');var _chunkTNJCS5RVjs = require('./chunk-TNJCS5RV.js');var _chunkPRYQOCWYjs = require('./chunk-PRYQOCWY.js');require('./chunk-2452BJTJ.js');var _chunk74HCODMEjs = require('./chunk-74HCODME.js');require('./chunk-IJGC6SHP.js');var _chunkVY2C2KCWjs = require('./chunk-VY2C2KCW.js');var _chunkE7KI3V22js = require('./chunk-E7KI3V22.js');exports.AssertionError = _chunkOFBLNL5Kjs.a; exports.BinaryJsonDecoder = _chunk2E7KSKKIjs.a; exports.CommandHandler = _chunkPRYQOCWYjs.a; exports.CompositeDecoder = _chunkG6LPI3PAjs.a; exports.ConcurrencyError = _chunkE7KI3V22js.l; exports.DeciderCommandHandler = _chunkTNJCS5RVjs.a; exports.DeciderSpecification = _chunk2XFHDDFUjs.a; exports.DefaultDecoder = _chunkG6LPI3PAjs.b; exports.EmmettError = _chunkE7KI3V22js.k; exports.ExpectedVersionConflictError = _chunkVY2C2KCWjs.f; exports.IllegalStateError = _chunkE7KI3V22js.n; exports.JSONParser = _chunkMKHK5TRMjs.b; exports.JsonDecoder = _chunk5JZKD7CBjs.a; exports.NO_CONCURRENCY_CHECK = _chunkVY2C2KCWjs.c; exports.NotFoundError = _chunkE7KI3V22js.o; exports.ObjectDecoder = _chunkZIBX4FPGjs.a; exports.ParseError = _chunkMKHK5TRMjs.a; exports.STREAM_DOES_NOT_EXIST = _chunkVY2C2KCWjs.b; exports.STREAM_EXISTS = _chunkVY2C2KCWjs.a; exports.StringDecoder = _chunkFNYJ62ROjs.a; exports.ValidationError = _chunkE7KI3V22js.m; exports.ValidationErrors = _chunkE7KI3V22js.d; exports.WrapEventStore = _chunkTNX525X5js.a; exports.accept = _chunkUFUSYJWUjs.h; exports.argMatches = _chunkOFBLNL5Kjs.q; exports.argValue = _chunkOFBLNL5Kjs.p; exports.assertDeepEqual = _chunkOFBLNL5Kjs.g; exports.assertEqual = _chunkOFBLNL5Kjs.l; exports.assertExpectedVersionMatchesCurrent = _chunkVY2C2KCWjs.e; exports.assertFails = _chunkOFBLNL5Kjs.c; exports.assertFalse = _chunkOFBLNL5Kjs.i; exports.assertIsNotNull = _chunkOFBLNL5Kjs.n; exports.assertIsNull = _chunkOFBLNL5Kjs.o; exports.assertMatches = _chunkOFBLNL5Kjs.f; exports.assertNotEmptyString = _chunkE7KI3V22js.g; exports.assertNotEqual = _chunkOFBLNL5Kjs.m; exports.assertOk = _chunkOFBLNL5Kjs.k; exports.assertPositiveNumber = _chunkE7KI3V22js.h; exports.assertThat = _chunkOFBLNL5Kjs.h; exports.assertThatArray = _chunkOFBLNL5Kjs.s; exports.assertThrows = _chunkOFBLNL5Kjs.e; exports.assertThrowsAsync = _chunkOFBLNL5Kjs.d; exports.assertTrue = _chunkOFBLNL5Kjs.j; exports.assertUnsignedBigInt = _chunkE7KI3V22js.i; exports.collectStream = _chunkUHJAD4TUjs.a; exports.command = _chunkMHB2JU4Ujs.a; exports.complete = _chunkUFUSYJWUjs.e; exports.concatUint8Arrays = _chunk4K5I5WJGjs.a; exports.deepEquals = _chunkPVFUNWT6js.a; exports.error = _chunkUFUSYJWUjs.g; exports.event = _chunkKQAFRLJ2js.a; exports.formatDateToUtcYYYYMMDD = _chunkE7KI3V22js.a; exports.getInMemoryEventStore = _chunk74HCODMEjs.a; exports.getInMemoryMessageBus = _chunkHCHELB23js.a; exports.ignore = _chunkUFUSYJWUjs.f; exports.isEquatable = _chunkPVFUNWT6js.b; exports.isErrorConstructor = _chunkE7KI3V22js.j; exports.isNumber = _chunkE7KI3V22js.e; exports.isString = _chunkE7KI3V22js.f; exports.isSubset = _chunkOFBLNL5Kjs.b; exports.isValidYYYYMMDD = _chunkE7KI3V22js.b; exports.matchesExpectedVersion = _chunkVY2C2KCWjs.d; exports.merge = _chunk3JE5DUJ2js.a; exports.parseDateFromUtcYYYYMMDD = _chunkE7KI3V22js.c; exports.publish = _chunkUFUSYJWUjs.c; exports.reply = _chunkUFUSYJWUjs.a; exports.restream = _chunk7ZSJY377js.a; exports.schedule = _chunkUFUSYJWUjs.d; exports.send = _chunkUFUSYJWUjs.b; exports.sum = _chunkFE73T2NSjs.a; exports.verifyThat = _chunkOFBLNL5Kjs.r;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-F6WLSL2L.mjs";import"./chunk-FVA6ACSC.mjs";import{a as T}from"./chunk-ZV7YVTI7.mjs";import{a as R,b as S}from"./chunk-TKIRQ76T.mjs";import{a as N}from"./chunk-HKNRGZN2.mjs";import{a as P}from"./chunk-MR2WVMFM.mjs";import{a as Q}from"./chunk-S3C5CKD5.mjs";import{a as O}from"./chunk-VTWTSAHB.mjs";import"./chunk-QFEG5DNU.mjs";import"./chunk-AHXBZPOE.mjs";import{a as lo}from"./chunk-N6X7QWHP.mjs";import{a as ko}from"./chunk-
|
|
1
|
+
import"./chunk-F6WLSL2L.mjs";import"./chunk-FVA6ACSC.mjs";import{a as T}from"./chunk-ZV7YVTI7.mjs";import{a as R,b as S}from"./chunk-TKIRQ76T.mjs";import{a as N}from"./chunk-HKNRGZN2.mjs";import{a as P}from"./chunk-MR2WVMFM.mjs";import{a as Q}from"./chunk-S3C5CKD5.mjs";import{a as O}from"./chunk-VTWTSAHB.mjs";import"./chunk-QFEG5DNU.mjs";import"./chunk-AHXBZPOE.mjs";import{a as lo}from"./chunk-N6X7QWHP.mjs";import{a as ko}from"./chunk-4WCXAVTA.mjs";import{a as Y,b as Z,c as _,d as $,e as oo,f as ro,g as eo,h as fo,i as mo,j as po,k as to,l as xo,m as ao,n as bo,o as co,p as go,q as ho,r as io,s as jo}from"./chunk-JBAGEOUC.mjs";import"./chunk-3DH3DSMC.mjs";import{a as U,b as V}from"./chunk-B7NWWHCY.mjs";import{a as W}from"./chunk-OBA6MZMG.mjs";import{a as X}from"./chunk-YKFEDBH4.mjs";import{a as I}from"./chunk-6PH3GSCE.mjs";import"./chunk-YWRV75GA.mjs";import{a as y}from"./chunk-JDYZZRJE.mjs";import"./chunk-3LYVXI5R.mjs";import"./chunk-DOHUIBZQ.mjs";import{a as z}from"./chunk-YGYVF7JI.mjs";import{a as A,b as B,c as C,d as D,e as E,f as F,g as G,h as H}from"./chunk-GNUOGYD6.mjs";import"./chunk-DIW552TK.mjs";import"./chunk-7JLAVMM3.mjs";import{a as J,b as K}from"./chunk-S33YM44M.mjs";import{a as L}from"./chunk-WCQF2QY4.mjs";import{a as M}from"./chunk-7LENV63T.mjs";import"./chunk-XLZS42HB.mjs";import{a as w}from"./chunk-NXFNVBXL.mjs";import{a as v}from"./chunk-POWQ3BZ6.mjs";import"./chunk-45ODDXOQ.mjs";import{a as u}from"./chunk-JVPAJ3FU.mjs";import"./chunk-D24KLTN5.mjs";import{a as j,b as k,c as l,d as n,e as q,f as s}from"./chunk-HKDMOB55.mjs";import{a as o,b as r,c as e,d as f,e as m,f as p,g as t,h as x,i as a,j as b,k as c,l as d,m as g,n as h,o as i}from"./chunk-KLLSLLHN.mjs";export{Y as AssertionError,N as BinaryJsonDecoder,v as CommandHandler,R as CompositeDecoder,d as ConcurrencyError,w as DeciderCommandHandler,ko as DeciderSpecification,S as DefaultDecoder,c as EmmettError,s as ExpectedVersionConflictError,h as IllegalStateError,K as JSONParser,P as JsonDecoder,l as NO_CONCURRENCY_CHECK,i as NotFoundError,Q as ObjectDecoder,J as ParseError,k as STREAM_DOES_NOT_EXIST,j as STREAM_EXISTS,O as StringDecoder,g as ValidationError,f as ValidationErrors,lo as WrapEventStore,H as accept,ho as argMatches,go as argValue,eo as assertDeepEqual,xo as assertEqual,q as assertExpectedVersionMatchesCurrent,_ as assertFails,mo as assertFalse,bo as assertIsNotNull,co as assertIsNull,ro as assertMatches,t as assertNotEmptyString,ao as assertNotEqual,to as assertOk,x as assertPositiveNumber,fo as assertThat,jo as assertThatArray,oo as assertThrows,$ as assertThrowsAsync,po as assertTrue,a as assertUnsignedBigInt,M as collectStream,y as command,E as complete,L as concatUint8Arrays,U as deepEquals,G as error,z as event,o as formatDateToUtcYYYYMMDD,u as getInMemoryEventStore,I as getInMemoryMessageBus,F as ignore,V as isEquatable,b as isErrorConstructor,m as isNumber,p as isString,Z as isSubset,r as isValidYYYYMMDD,n as matchesExpectedVersion,X as merge,e as parseDateFromUtcYYYYMMDD,C as publish,A as reply,T as restream,D as schedule,B as send,W as sum,io as verifyThat};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -6,7 +6,7 @@ declare const assertFails: (message?: string) => never;
|
|
|
6
6
|
declare const assertThrowsAsync: <TError extends Error>(fun: () => Promise<void>, errorCheck?: ((error: Error) => boolean) | undefined) => Promise<TError>;
|
|
7
7
|
declare const assertThrows: <TError extends Error>(fun: () => void, errorCheck?: ((error: Error) => boolean) | undefined) => TError;
|
|
8
8
|
declare const assertMatches: (actual: unknown, expected: unknown, message?: string) => void;
|
|
9
|
-
declare const assertDeepEqual: (actual:
|
|
9
|
+
declare const assertDeepEqual: <T = unknown>(actual: T, expected: T, message?: string) => void;
|
|
10
10
|
declare const assertThat: <T>(item: T) => {
|
|
11
11
|
isEqualTo: (other: T) => void;
|
|
12
12
|
};
|
|
@@ -6,7 +6,7 @@ declare const assertFails: (message?: string) => never;
|
|
|
6
6
|
declare const assertThrowsAsync: <TError extends Error>(fun: () => Promise<void>, errorCheck?: ((error: Error) => boolean) | undefined) => Promise<TError>;
|
|
7
7
|
declare const assertThrows: <TError extends Error>(fun: () => void, errorCheck?: ((error: Error) => boolean) | undefined) => TError;
|
|
8
8
|
declare const assertMatches: (actual: unknown, expected: unknown, message?: string) => void;
|
|
9
|
-
declare const assertDeepEqual: (actual:
|
|
9
|
+
declare const assertDeepEqual: <T = unknown>(actual: T, expected: T, message?: string) => void;
|
|
10
10
|
declare const assertThat: <T>(item: T) => {
|
|
11
11
|
isEqualTo: (other: T) => void;
|
|
12
12
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkOFBLNL5Kjs = require('../chunk-OFBLNL5K.js');require('../chunk-6IATZUYD.js');require('../chunk-PVFUNWT6.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-LOJ6A4AJ.js');require('../chunk-AU2WZCER.js');require('../chunk-MKHK5TRM.js');exports.AssertionError = _chunkOFBLNL5Kjs.a; exports.argMatches = _chunkOFBLNL5Kjs.q; exports.argValue = _chunkOFBLNL5Kjs.p; exports.assertDeepEqual = _chunkOFBLNL5Kjs.g; exports.assertEqual = _chunkOFBLNL5Kjs.l; exports.assertFails = _chunkOFBLNL5Kjs.c; exports.assertFalse = _chunkOFBLNL5Kjs.i; exports.assertIsNotNull = _chunkOFBLNL5Kjs.n; exports.assertIsNull = _chunkOFBLNL5Kjs.o; exports.assertMatches = _chunkOFBLNL5Kjs.f; exports.assertNotEqual = _chunkOFBLNL5Kjs.m; exports.assertOk = _chunkOFBLNL5Kjs.k; exports.assertThat = _chunkOFBLNL5Kjs.h; exports.assertThatArray = _chunkOFBLNL5Kjs.s; exports.assertThrows = _chunkOFBLNL5Kjs.e; exports.assertThrowsAsync = _chunkOFBLNL5Kjs.d; exports.assertTrue = _chunkOFBLNL5Kjs.j; exports.isSubset = _chunkOFBLNL5Kjs.b; exports.verifyThat = _chunkOFBLNL5Kjs.r;
|
|
2
2
|
//# sourceMappingURL=assertions.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s}from"../chunk-
|
|
1
|
+
import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s}from"../chunk-JBAGEOUC.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-DIW552TK.mjs";import"../chunk-7JLAVMM3.mjs";import"../chunk-S33YM44M.mjs";export{a as AssertionError,q as argMatches,p as argValue,g as assertDeepEqual,l as assertEqual,c as assertFails,i as assertFalse,n as assertIsNotNull,o as assertIsNull,f as assertMatches,m as assertNotEqual,k as assertOk,h as assertThat,s as assertThatArray,e as assertThrows,d as assertThrowsAsync,j as assertTrue,b as isSubset,r as verifyThat};
|
|
2
2
|
//# sourceMappingURL=assertions.mjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk2XFHDDFUjs = require('../chunk-2XFHDDFU.js');require('../chunk-OFBLNL5K.js');require('../chunk-6IATZUYD.js');require('../chunk-PVFUNWT6.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-LOJ6A4AJ.js');require('../chunk-AU2WZCER.js');require('../chunk-MKHK5TRM.js');require('../chunk-E7KI3V22.js');exports.DeciderSpecification = _chunk2XFHDDFUjs.a;
|
|
2
2
|
//# sourceMappingURL=deciderSpecification.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a}from"../chunk-
|
|
1
|
+
import{a}from"../chunk-4WCXAVTA.mjs";import"../chunk-JBAGEOUC.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-DIW552TK.mjs";import"../chunk-7JLAVMM3.mjs";import"../chunk-S33YM44M.mjs";import"../chunk-KLLSLLHN.mjs";export{a as DeciderSpecification};
|
|
2
2
|
//# sourceMappingURL=deciderSpecification.mjs.map
|
package/dist/testing/features.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7BR3VBVDjs = require('../chunk-7BR3VBVD.js');var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk7BR3VBVDjs = require('../chunk-7BR3VBVD.js');var _chunkOFBLNL5Kjs = require('../chunk-OFBLNL5K.js');require('../chunk-6IATZUYD.js');require('../chunk-PVFUNWT6.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-ZLASBJGR.js');require('../chunk-MHB2JU4U.js');require('../chunk-7FJXUW3D.js');require('../chunk-5BGN2FV4.js');require('../chunk-KQAFRLJ2.js');require('../chunk-UFUSYJWU.js');require('../chunk-LOJ6A4AJ.js');require('../chunk-AU2WZCER.js');require('../chunk-MKHK5TRM.js');var _crypto = require('crypto');var _test = require('test');async function C(g,r={getInitialIndex:()=>1n}){return _test.describe.call(void 0, "aggregateStream",async()=>{let t,u=[{evolve:_chunk7BR3VBVDjs.a,info:"evolve with raw event"},{evolve:_chunk7BR3VBVDjs.b,info:"evolve with event and metadata"}];_test.before.call(void 0, async()=>{t=await g()}),_test.after.call(void 0, async()=>{let e=r.teardownHook;e&&await e()});for(let e of u)await _test.it.call(void 0, `When called with 'to' allows time traveling using ${e.info}`,async()=>{let a={productId:"123",quantity:10,price:3},S=10,o=_crypto.randomUUID.call(void 0, );await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"DiscountApplied",data:{percent:S}}]);let p=await t.aggregateStream(o,{evolve:e.evolve,initialState:_chunk7BR3VBVDjs.c,read:{to:1n}}),v=await t.aggregateStream(o,{evolve:e.evolve,initialState:_chunk7BR3VBVDjs.c,read:{to:2n}}),c=await t.aggregateStream(o,{evolve:e.evolve,initialState:_chunk7BR3VBVDjs.c,read:{to:3n}});_chunkOFBLNL5Kjs.k.call(void 0, p),_chunkOFBLNL5Kjs.k.call(void 0, v),_chunkOFBLNL5Kjs.k.call(void 0, c),_chunkOFBLNL5Kjs.l.call(void 0, p.currentStreamVersion,r.getInitialIndex()),_chunkOFBLNL5Kjs.g.call(void 0, p.state,{productItems:[a],totalAmount:30}),_chunkOFBLNL5Kjs.l.call(void 0, v.currentStreamVersion,r.getInitialIndex()+1n),_chunkOFBLNL5Kjs.g.call(void 0, v.state,{productItems:[a,a],totalAmount:60}),_chunkOFBLNL5Kjs.l.call(void 0, c.currentStreamVersion,r.getInitialIndex()+2n),_chunkOFBLNL5Kjs.g.call(void 0, c.state,{productItems:[a,a],totalAmount:54})})})}exports.testAggregateStream = C;
|
|
2
2
|
//# sourceMappingURL=features.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as m,b as l,c as d}from"../chunk-WB5PNUKG.mjs";import{g as n,k as i,l as s}from"../chunk-
|
|
1
|
+
import{a as m,b as l,c as d}from"../chunk-WB5PNUKG.mjs";import{g as n,k as i,l as s}from"../chunk-JBAGEOUC.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-YWRV75GA.mjs";import"../chunk-JDYZZRJE.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-DOHUIBZQ.mjs";import"../chunk-YGYVF7JI.mjs";import"../chunk-GNUOGYD6.mjs";import"../chunk-DIW552TK.mjs";import"../chunk-7JLAVMM3.mjs";import"../chunk-S33YM44M.mjs";import{randomUUID as I}from"node:crypto";import{after as w,before as y,describe as f,it as E}from"node:test";async function C(g,r={getInitialIndex:()=>1n}){return f("aggregateStream",async()=>{let t,u=[{evolve:m,info:"evolve with raw event"},{evolve:l,info:"evolve with event and metadata"}];y(async()=>{t=await g()}),w(async()=>{let e=r.teardownHook;e&&await e()});for(let e of u)await E(`When called with 'to' allows time traveling using ${e.info}`,async()=>{let a={productId:"123",quantity:10,price:3},S=10,o=I();await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"ProductItemAdded",data:{productItem:a}}]),await t.appendToStream(o,[{type:"DiscountApplied",data:{percent:S}}]);let p=await t.aggregateStream(o,{evolve:e.evolve,initialState:d,read:{to:1n}}),v=await t.aggregateStream(o,{evolve:e.evolve,initialState:d,read:{to:2n}}),c=await t.aggregateStream(o,{evolve:e.evolve,initialState:d,read:{to:3n}});i(p),i(v),i(c),s(p.currentStreamVersion,r.getInitialIndex()),n(p.state,{productItems:[a],totalAmount:30}),s(v.currentStreamVersion,r.getInitialIndex()+1n),n(v.state,{productItems:[a,a],totalAmount:60}),s(c.currentStreamVersion,r.getInitialIndex()+2n),n(c.state,{productItems:[a,a],totalAmount:54})})})}export{C as testAggregateStream};
|
|
2
2
|
//# sourceMappingURL=features.mjs.map
|
package/dist/testing/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-BNCTLP4B.js');var _chunkTNX525X5js = require('../chunk-TNX525X5.js');var
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../chunk-BNCTLP4B.js');var _chunkTNX525X5js = require('../chunk-TNX525X5.js');var _chunk2XFHDDFUjs = require('../chunk-2XFHDDFU.js');var _chunkOFBLNL5Kjs = require('../chunk-OFBLNL5K.js');require('../chunk-6IATZUYD.js');require('../chunk-PVFUNWT6.js');require('../chunk-FE73T2NS.js');require('../chunk-3JE5DUJ2.js');require('../chunk-ZLASBJGR.js');require('../chunk-MHB2JU4U.js');require('../chunk-7FJXUW3D.js');require('../chunk-5BGN2FV4.js');require('../chunk-KQAFRLJ2.js');require('../chunk-UFUSYJWU.js');require('../chunk-LOJ6A4AJ.js');require('../chunk-AU2WZCER.js');require('../chunk-MKHK5TRM.js');require('../chunk-E7KI3V22.js');exports.AssertionError = _chunkOFBLNL5Kjs.a; exports.DeciderSpecification = _chunk2XFHDDFUjs.a; exports.WrapEventStore = _chunkTNX525X5js.a; exports.argMatches = _chunkOFBLNL5Kjs.q; exports.argValue = _chunkOFBLNL5Kjs.p; exports.assertDeepEqual = _chunkOFBLNL5Kjs.g; exports.assertEqual = _chunkOFBLNL5Kjs.l; exports.assertFails = _chunkOFBLNL5Kjs.c; exports.assertFalse = _chunkOFBLNL5Kjs.i; exports.assertIsNotNull = _chunkOFBLNL5Kjs.n; exports.assertIsNull = _chunkOFBLNL5Kjs.o; exports.assertMatches = _chunkOFBLNL5Kjs.f; exports.assertNotEqual = _chunkOFBLNL5Kjs.m; exports.assertOk = _chunkOFBLNL5Kjs.k; exports.assertThat = _chunkOFBLNL5Kjs.h; exports.assertThatArray = _chunkOFBLNL5Kjs.s; exports.assertThrows = _chunkOFBLNL5Kjs.e; exports.assertThrowsAsync = _chunkOFBLNL5Kjs.d; exports.assertTrue = _chunkOFBLNL5Kjs.j; exports.isSubset = _chunkOFBLNL5Kjs.b; exports.verifyThat = _chunkOFBLNL5Kjs.r;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/testing/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"../chunk-AHXBZPOE.mjs";import{a as u}from"../chunk-N6X7QWHP.mjs";import{a as t}from"../chunk-
|
|
1
|
+
import"../chunk-AHXBZPOE.mjs";import{a as u}from"../chunk-N6X7QWHP.mjs";import{a as t}from"../chunk-4WCXAVTA.mjs";import{a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s}from"../chunk-JBAGEOUC.mjs";import"../chunk-3DH3DSMC.mjs";import"../chunk-B7NWWHCY.mjs";import"../chunk-OBA6MZMG.mjs";import"../chunk-YKFEDBH4.mjs";import"../chunk-YWRV75GA.mjs";import"../chunk-JDYZZRJE.mjs";import"../chunk-3LYVXI5R.mjs";import"../chunk-DOHUIBZQ.mjs";import"../chunk-YGYVF7JI.mjs";import"../chunk-GNUOGYD6.mjs";import"../chunk-DIW552TK.mjs";import"../chunk-7JLAVMM3.mjs";import"../chunk-S33YM44M.mjs";import"../chunk-KLLSLLHN.mjs";export{a as AssertionError,t as DeciderSpecification,u as WrapEventStore,q as argMatches,p as argValue,g as assertDeepEqual,l as assertEqual,c as assertFails,i as assertFalse,n as assertIsNotNull,o as assertIsNull,f as assertMatches,m as assertNotEqual,k as assertOk,h as assertThat,s as assertThatArray,e as assertThrows,d as assertThrowsAsync,j as assertTrue,b as isSubset,r as verifyThat};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/testing/assertions.ts"],"sourcesContent":["import { JSONParser } from '../serialization';\nimport type { DefaultRecord } from '../typing';\nimport { deepEquals } from '../utils';\n\nexport class AssertionError extends Error {\n constructor(message: string) {\n super(message);\n }\n}\nexport const isSubset = (superObj: unknown, subObj: unknown): boolean => {\n const sup = superObj as DefaultRecord;\n const sub = subObj as DefaultRecord;\n\n assertOk(sup);\n assertOk(sub);\n\n return Object.keys(sub).every((ele: string) => {\n if (typeof sub[ele] == 'object') {\n return isSubset(sup[ele], sub[ele]);\n }\n return sub[ele] === sup[ele];\n });\n};\n\nexport const assertFails = (message?: string) => {\n throw new AssertionError(message ?? 'That should not ever happened, right?');\n};\n\nexport const assertThrowsAsync = async <TError extends Error>(\n fun: () => Promise<void>,\n errorCheck?: (error: Error) => boolean,\n): Promise<TError> => {\n try {\n await fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n const typedError = error as TError;\n if (errorCheck) assertTrue(errorCheck(typedError));\n return typedError;\n }\n};\n\nexport const assertThrows = <TError extends Error>(\n fun: () => void,\n errorCheck?: (error: Error) => boolean,\n): TError => {\n try {\n fun();\n throw new AssertionError(\"Function didn't throw expected error\");\n } catch (error) {\n const typedError = error as TError;\n if (errorCheck) assertTrue(errorCheck(typedError));\n return typedError;\n }\n};\nexport const assertMatches = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!isSubset(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSONParser.stringify(expected)}\\nis not subset of\\n${JSONParser.stringify(actual)}`,\n );\n};\n\nexport const assertDeepEqual = (\n actual: unknown,\n expected: unknown,\n message?: string,\n) => {\n if (!deepEquals(actual, expected))\n throw new AssertionError(\n message ??\n `subObj:\\n${JSONParser.stringify(expected)}\\nis equals to\\n${JSONParser.stringify(actual)}`,\n );\n};\n\nexport const assertThat = <T>(item: T) => {\n return {\n isEqualTo: (other: T) => assertTrue(deepEquals(item, other)),\n };\n};\n\nexport function assertFalse(\n condition: boolean,\n message?: string,\n): asserts condition is false {\n if (condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertTrue(\n condition: boolean,\n message?: string,\n): asserts condition is true {\n if (!condition) throw new AssertionError(message ?? `Condition is false`);\n}\n\nexport function assertOk<T>(\n obj: T | null | undefined,\n message?: string,\n): asserts obj is T {\n if (!obj) throw new AssertionError(message ?? `Condition is not truthy`);\n}\n\nexport function assertEqual<T>(\n expected: T | null | undefined,\n actual: T | null | undefined,\n message?: string,\n): void {\n if (expected !== actual)\n throw new AssertionError(\n message ??\n `Objects are not equal:\\nExpected: ${JSONParser.stringify(expected)}\\nActual:${JSONParser.stringify(actual)}`,\n );\n}\n\nexport function assertNotEqual<T>(\n obj: T | null | undefined,\n other: T | null | undefined,\n message?: string,\n): void {\n if (obj === other)\n throw new AssertionError(\n message ?? `Objects are equal: ${JSONParser.stringify(obj)}`,\n );\n}\n\nexport function assertIsNotNull<T extends object | bigint>(\n result: T | null,\n): asserts result is T {\n assertNotEqual(result, null);\n assertOk(result);\n}\n\nexport function assertIsNull<T extends object>(\n result: T | null,\n): asserts result is null {\n assertEqual(result, null);\n}\n\ntype Call = {\n arguments: unknown[];\n result: unknown;\n target: unknown;\n this: unknown;\n};\n\nexport type ArgumentMatcher = (arg: unknown) => boolean;\n\nexport const argValue =\n <T>(value: T): ArgumentMatcher =>\n (arg) =>\n deepEquals(arg, value);\n\nexport const argMatches =\n <T>(matches: (arg: T) => boolean): ArgumentMatcher =>\n (arg) =>\n matches(arg as T);\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MockedFunction = Function & { mock?: { calls: Call[] } };\n\nexport function verifyThat(fn: MockedFunction) {\n return {\n calledTimes: (times: number) => {\n assertEqual(fn.mock?.calls?.length, times);\n },\n notCalled: () => {\n assertEqual(fn?.mock?.calls?.length, 0);\n },\n called: () => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length > 0,\n );\n },\n calledWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledOnceWith: (...args: unknown[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length === 1 &&\n fn.mock.calls.some((call) => deepEquals(call.arguments, args)),\n );\n },\n calledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertTrue(\n fn.mock?.calls.length !== undefined && fn.mock.calls.length >= 1,\n );\n assertTrue(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls.some(\n (call) =>\n call.arguments &&\n call.arguments.length >= matches.length &&\n matches.every((match, index) => match(call.arguments[index])),\n ),\n );\n },\n notCalledWithArgumentMatching: (...matches: ArgumentMatcher[]) => {\n assertFalse(\n fn.mock?.calls.length !== undefined &&\n fn.mock.calls.length >= 1 &&\n fn.mock.calls[0]!.arguments &&\n fn.mock.calls[0]!.arguments.length >= matches.length &&\n matches.every((match, index) =>\n match(fn.mock!.calls[0]!.arguments[index]),\n ),\n );\n },\n };\n}\n\nexport const assertThatArray = <T>(array: T[]) => {\n return {\n isEmpty: () => assertEqual(array.length, 0),\n hasSize: (length: number) => assertEqual(array.length, length),\n containsElements: (...other: T[]) => {\n assertTrue(other.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrder: (...other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyInAnyOrderElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n assertTrue(array.every((ts) => other.some((o) => deepEquals(ts, o))));\n },\n containsExactlyElementsOf: (other: T[]) => {\n assertEqual(array.length, other.length);\n for (let i = 0; i < array.length; i++) {\n assertTrue(deepEquals(array[i], other[i]));\n }\n },\n containsExactly: (elem: T) => {\n assertEqual(array.length, 1);\n assertTrue(deepEquals(array[0], elem));\n },\n contains: (elem: T) => {\n assertTrue(array.some((a) => deepEquals(a, elem)));\n },\n containsOnlyOnceElementsOf: (other: T[]) => {\n assertTrue(\n other\n .map((o) => array.filter((a) => deepEquals(a, o)).length)\n .filter((a) => a === 1).length === other.length,\n );\n },\n containsAnyOf: (...other: T[]) => {\n assertTrue(array.some((a) => other.some((o) => deepEquals(a, o))));\n },\n allMatch: (matches: (item: T) => boolean) => {\n assertTrue(array.every(matches));\n },\n anyMatches: (matches: (item: T) => boolean) => {\n assertTrue(array.some(matches));\n },\n allMatchAsync: async (\n matches: (item: T) => Promise<boolean>,\n ): Promise<void> => {\n for (const item of array) {\n assertTrue(await matches(item));\n }\n },\n };\n};\n"],"mappings":"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","names":["AssertionError","message","isSubset","superObj","subObj","sup","sub","assertOk","ele","assertFails","assertThrowsAsync","fun","errorCheck","error","typedError","assertTrue","assertThrows","assertMatches","actual","expected","JSONParser","assertDeepEqual","deepEquals","assertThat","item","other","assertFalse","condition","obj","assertEqual","assertNotEqual","assertIsNotNull","result","assertIsNull","argValue","value","arg","argMatches","matches","verifyThat","fn","times","args","call","match","index","assertThatArray","array","length","ts","i","elem","a","o"]}
|
|
File without changes
|
|
File without changes
|