@overkill-dev/run 0.0.4 → 0.0.6
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/assertion-protocol/assertion-evaluation.js +6 -0
- package/assertion-protocol/assertion-evaluation.js.map +1 -0
- package/assertion-protocol/assertion-node.js +33 -0
- package/assertion-protocol/assertion-node.js.map +1 -0
- package/assertion-protocol/assertion-reference.js +49 -0
- package/assertion-protocol/assertion-reference.js.map +1 -0
- package/assertion-protocol/assertions/boolean.js +12 -0
- package/assertion-protocol/assertions/boolean.js.map +1 -0
- package/assertion-protocol/assertions/collection.js +21 -0
- package/assertion-protocol/assertions/collection.js.map +1 -0
- package/assertion-protocol/assertions/dispatch.js +47 -0
- package/assertion-protocol/assertions/dispatch.js.map +1 -0
- package/assertion-protocol/assertions/equality.js +24 -0
- package/assertion-protocol/assertions/equality.js.map +1 -0
- package/assertion-protocol/assertions/fail.js +8 -0
- package/assertion-protocol/assertions/fail.js.map +1 -0
- package/assertion-protocol/assertions/numeric.js +43 -0
- package/assertion-protocol/assertions/numeric.js.map +1 -0
- package/assertion-protocol/assertions/partial.js +17 -0
- package/assertion-protocol/assertions/partial.js.map +1 -0
- package/assertion-protocol/assertions/presence.js +20 -0
- package/assertion-protocol/assertions/presence.js.map +1 -0
- package/assertion-protocol/assertions/string.js +33 -0
- package/assertion-protocol/assertions/string.js.map +1 -0
- package/assertion-protocol/assertions/type-shape.js +43 -0
- package/assertion-protocol/assertions/type-shape.js.map +1 -0
- package/assertion-protocol/collection-count.js +42 -0
- package/assertion-protocol/collection-count.js.map +1 -0
- package/assertion-protocol/evaluation.js +170 -0
- package/assertion-protocol/evaluation.js.map +1 -0
- package/assertion-protocol/partial-matching.js +13 -0
- package/assertion-protocol/partial-matching.js.map +1 -0
- package/assertion-protocol/source-location.js +76 -0
- package/assertion-protocol/source-location.js.map +1 -0
- package/assertion-protocol/thrown-error-record.js +17 -0
- package/assertion-protocol/thrown-error-record.js.map +1 -0
- package/assertion-protocol/thrown-matcher.js +201 -0
- package/assertion-protocol/thrown-matcher.js.map +1 -0
- package/compare/comparison-result.js +47 -0
- package/compare/comparison-result.js.map +1 -0
- package/compare/comparison-state.js +20 -0
- package/compare/comparison-state.js.map +1 -0
- package/compare/comparison.js +78 -0
- package/compare/comparison.js.map +1 -0
- package/compare/diff-path.js +37 -0
- package/compare/diff-path.js.map +1 -0
- package/compare/raw-comparison.js +285 -0
- package/compare/raw-comparison.js.map +1 -0
- package/compare/serialized-value-classification.js +99 -0
- package/compare/serialized-value-classification.js.map +1 -0
- package/compare/serialized-value-shape.js +12 -0
- package/compare/serialized-value-shape.js.map +1 -0
- package/compare/serialized-value-state.js +55 -0
- package/compare/serialized-value-state.js.map +1 -0
- package/compare/serialized-value.js +387 -0
- package/compare/serialized-value.js.map +1 -0
- package/compare/structured-diff.js +382 -0
- package/compare/structured-diff.js.map +1 -0
- package/compare/value-classification.js +112 -0
- package/compare/value-classification.js.map +1 -0
- package/diff/binary-diff.js +49 -0
- package/diff/binary-diff.js.map +1 -0
- package/diff/string-diff.js +22 -0
- package/diff/string-diff.js.map +1 -0
- package/engine/assertion-facade.js +361 -0
- package/engine/assertion-facade.js.map +1 -0
- package/engine/case-execution.js +408 -0
- package/engine/case-execution.js.map +1 -0
- package/engine/custom-assertion-recording.js +175 -0
- package/engine/custom-assertion-recording.js.map +1 -0
- package/engine/execution.d.ts +20 -0
- package/engine/execution.d.ts.map +1 -0
- package/engine/execution.js +323 -0
- package/engine/execution.js.map +1 -0
- package/engine/identity.js +5 -0
- package/engine/identity.js.map +1 -0
- package/engine/reporter-event-queue.js +23 -0
- package/engine/reporter-event-queue.js.map +1 -0
- package/engine/reporter.js +177 -0
- package/engine/reporter.js.map +1 -0
- package/engine/require-assertion-facade.js +127 -0
- package/engine/require-assertion-facade.js.map +1 -0
- package/engine/run-result.js +13 -0
- package/engine/run-result.js.map +1 -0
- package/package.json +17 -3
- package/packages/engine/assertion-protocol.entry-point.js +4 -0
- package/packages/engine/assertion-protocol.entry-point.js.map +1 -0
- package/packages/run/command-line.entry-point.d.ts +5 -0
- package/packages/run/command-line.entry-point.d.ts.map +1 -0
- package/packages/run/command-line.entry-point.js +3 -0
- package/packages/run/command-line.entry-point.js.map +1 -0
- package/packages/run/run.entry-point.d.ts +2 -2
- package/packages/run/run.entry-point.d.ts.map +1 -1
- package/packages/run/run.entry-point.js +1 -1
- package/packages/run/run.entry-point.js.map +1 -1
- package/readme.md +16 -2
- package/run/command-line-runner.d.ts +35 -0
- package/run/command-line-runner.d.ts.map +1 -0
- package/run/command-line-runner.js +109 -0
- package/run/command-line-runner.js.map +1 -0
- package/run/run-config.d.ts +24 -0
- package/run/run-config.d.ts.map +1 -0
- package/run/run-config.js +123 -0
- package/run/run-config.js.map +1 -0
- package/run/run.d.ts +86 -36
- package/run/run.d.ts.map +1 -1
- package/run/run.js +177 -8
- package/run/run.js.map +1 -1
- package/sbom.cdx.json +74 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertion-evaluation.js","sourceRoot":"","sources":["../../../../source/assertion-protocol/assertion-evaluation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAYpF,MAAM,CAAC,MAAM,gBAAgB,GACzB,iBAAiB,CAAC;AAEtB,MAAM,UAAU,iBAAiB,CAAC,UAA4B;IAC1D,OAAO,UAAU,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { booleanSummaryByCheck } from "./assertions/boolean.js";
|
|
2
|
+
import { collectionSummaryByCheck } from "./assertions/collection.js";
|
|
3
|
+
import { equalitySummaryByCheck } from "./assertions/equality.js";
|
|
4
|
+
import { failSummaryByCheck } from "./assertions/fail.js";
|
|
5
|
+
import { numericSummaryByCheck } from "./assertions/numeric.js";
|
|
6
|
+
import { partialSummaryByCheck } from "./assertions/partial.js";
|
|
7
|
+
import { presenceSummaryByCheck } from "./assertions/presence.js";
|
|
8
|
+
import { stringSummaryByCheck } from "./assertions/string.js";
|
|
9
|
+
import { typeShapeSummaryByCheck } from "./assertions/type-shape.js";
|
|
10
|
+
const defaultSummaryByCheck = {
|
|
11
|
+
...booleanSummaryByCheck,
|
|
12
|
+
...collectionSummaryByCheck,
|
|
13
|
+
...equalitySummaryByCheck,
|
|
14
|
+
...failSummaryByCheck,
|
|
15
|
+
...numericSummaryByCheck,
|
|
16
|
+
...partialSummaryByCheck,
|
|
17
|
+
...presenceSummaryByCheck,
|
|
18
|
+
...stringSummaryByCheck,
|
|
19
|
+
...typeShapeSummaryByCheck
|
|
20
|
+
};
|
|
21
|
+
function isCompositeAssertion(assertion) {
|
|
22
|
+
return assertion.check === 'composite';
|
|
23
|
+
}
|
|
24
|
+
export function assertionSummary(assertion) {
|
|
25
|
+
if (isCompositeAssertion(assertion)) {
|
|
26
|
+
return assertion.message ?? assertion.summary;
|
|
27
|
+
}
|
|
28
|
+
if (assertion.check === 'foreign') {
|
|
29
|
+
return assertion.message ?? assertion.summary;
|
|
30
|
+
}
|
|
31
|
+
return assertion.message ?? defaultSummaryByCheck[assertion.check];
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=assertion-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertion-node.js","sourceRoot":"","sources":["../../../../source/assertion-protocol/assertion-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAmD,MAAM,yBAAyB,CAAC;AACjH,OAAO,EACH,wBAAwB,EAG3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,sBAAsB,EAKzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAA0B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACH,qBAAqB,EAGxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,qBAAqB,EAIxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACH,sBAAsB,EAKzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,oBAAoB,EAGvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACH,uBAAuB,EAI1B,MAAM,4BAA4B,CAAC;AA6GpC,MAAM,qBAAqB,GAAkE;IACzF,GAAG,qBAAqB;IACxB,GAAG,wBAAwB;IAC3B,GAAG,sBAAsB;IACzB,GAAG,kBAAkB;IACrB,GAAG,qBAAqB;IACxB,GAAG,qBAAqB;IACxB,GAAG,sBAAsB;IACzB,GAAG,oBAAoB;IACvB,GAAG,uBAAuB;CAC7B,CAAC;AAIF,SAAS,oBAAoB,CACzB,SAAkC;IAElC,OAAO,SAAS,CAAC,KAAK,KAAK,WAAW,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAkC;IAC/D,IAAI,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC;IAClD,CAAC;IAED,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,CAAC;IAClD,CAAC;IAED,OAAO,SAAS,CAAC,OAAO,IAAI,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const assertionReferenceIdentity = Symbol.for('OverkillAssertionReference');
|
|
2
|
+
const assertionReferenceRecordIdentity = Symbol.for('OverkillAssertionReferenceRecord');
|
|
3
|
+
const compositeGroupIdentity = Symbol.for('OverkillCompositeGroup');
|
|
4
|
+
function ensureAssertionName(name) {
|
|
5
|
+
if (name.trim().length === 0) {
|
|
6
|
+
throw new TypeError('Assertion reference name must not be empty.');
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function createAssertionReference(record) {
|
|
10
|
+
ensureAssertionName(record.name);
|
|
11
|
+
if (record.kind === 'composite') {
|
|
12
|
+
return {
|
|
13
|
+
[assertionReferenceIdentity]: true,
|
|
14
|
+
[assertionReferenceRecordIdentity]: record
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
return {
|
|
18
|
+
[assertionReferenceIdentity]: true,
|
|
19
|
+
[assertionReferenceRecordIdentity]: record
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export function createCompositeAssertionReferenceRecord(record) {
|
|
23
|
+
return createAssertionReference({ ...record });
|
|
24
|
+
}
|
|
25
|
+
export function createNarrowingCompositeAssertionReferenceRecord(record) {
|
|
26
|
+
return createAssertionReference({ ...record });
|
|
27
|
+
}
|
|
28
|
+
export function getAssertionReferenceRecord(reference) {
|
|
29
|
+
return reference[assertionReferenceRecordIdentity];
|
|
30
|
+
}
|
|
31
|
+
export function getCompositeAssertionReferenceRecord(reference) {
|
|
32
|
+
return reference[assertionReferenceRecordIdentity];
|
|
33
|
+
}
|
|
34
|
+
export function getNarrowingAssertionReferenceRecord(reference) {
|
|
35
|
+
return reference[assertionReferenceRecordIdentity];
|
|
36
|
+
}
|
|
37
|
+
export function isAssertionReference(value) {
|
|
38
|
+
return typeof value === 'object' && value !== null && Object.hasOwn(value, assertionReferenceIdentity);
|
|
39
|
+
}
|
|
40
|
+
export function isNarrowingAssertionReference(value) {
|
|
41
|
+
return isAssertionReference(value) && getAssertionReferenceRecord(value).kind === 'narrowing-composite';
|
|
42
|
+
}
|
|
43
|
+
export function isCompositeAssertionGroup(value) {
|
|
44
|
+
return typeof value === 'object' && value !== null && Object.hasOwn(value, compositeGroupIdentity);
|
|
45
|
+
}
|
|
46
|
+
export function createCompositeAssertionGroup(children) {
|
|
47
|
+
return { [compositeGroupIdentity]: true, children };
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=assertion-reference.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertion-reference.js","sourceRoot":"","sources":["../../../../source/assertion-protocol/assertion-reference.ts"],"names":[],"mappings":"AASA,MAAM,0BAA0B,GAAkB,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAC3F,MAAM,gCAAgC,GAAkB,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;AACvG,MAAM,sBAAsB,GAAkB,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;AAyHnF,SAAS,mBAAmB,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;IACvE,CAAC;AACL,CAAC;AAaD,SAAS,wBAAwB,CAAC,MAAgC;IAC9D,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC9B,OAAO;YACH,CAAC,0BAA0B,CAAC,EAAE,IAAI;YAClC,CAAC,gCAAgC,CAAC,EAAE,MAAM;SAC7C,CAAC;IACN,CAAC;IAED,OAAO;QACH,CAAC,0BAA0B,CAAC,EAAE,IAAI;QAClC,CAAC,gCAAgC,CAAC,EAAE,MAAM;KAC7C,CAAC;AACN,CAAC;AAED,MAAM,UAAU,uCAAuC,CAGrD,MAA4D;IAC1D,OAAO,wBAAwB,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,gDAAgD,CAK5D,MAA+E;IAE/E,OAAO,wBAAwB,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,SAA6B;IACrE,OAAO,SAAS,CAAC,gCAAgC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oCAAoC,CAIhD,SAAyD;IAEzD,OAAO,SAAS,CAAC,gCAAgC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oCAAoC,CAKhD,SAA4E;IAE5E,OAAO,SAAS,CAAC,gCAAgC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc;IAC/C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC;AAC3G,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAc;IACxD,OAAO,oBAAoB,CAAC,KAAK,CAAC,IAAI,2BAA2B,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,sBAAsB,CAAC,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,6BAA6B,CACzC,QAAoE;IAEpE,OAAO,EAAE,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { assertionOutcome } from "../assertion-evaluation.js";
|
|
2
|
+
export const booleanSummaryByCheck = {
|
|
3
|
+
false: 'Expected value to be false.',
|
|
4
|
+
true: 'Expected value to be true.'
|
|
5
|
+
};
|
|
6
|
+
export function evaluateFalse(assertion) {
|
|
7
|
+
return assertionOutcome(assertion.actual, false, assertion.actual === false);
|
|
8
|
+
}
|
|
9
|
+
export function evaluateTrue(assertion) {
|
|
10
|
+
return assertionOutcome(assertion.actual, true, assertion.actual === true);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=boolean.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../../../source/assertion-protocol/assertions/boolean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,4BAA4B,CAAC;AAOrF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,KAAK,EAAE,6BAA6B;IACpC,IAAI,EAAE,4BAA4B;CAC5B,CAAC;AAEX,MAAM,UAAU,aAAa,CAAC,SAA6B;IACvD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAA4B;IACrD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { assertionOutcome } from "../assertion-evaluation.js";
|
|
2
|
+
import { collectionCount } from "../collection-count.js";
|
|
3
|
+
export const collectionSummaryByCheck = {
|
|
4
|
+
empty: 'Expected collection to be empty.',
|
|
5
|
+
length: 'Expected collection length to match.',
|
|
6
|
+
'not-empty': 'Expected collection not to be empty.'
|
|
7
|
+
};
|
|
8
|
+
export function evaluateEmpty(assertion) {
|
|
9
|
+
const count = collectionCount(assertion.actual, 1);
|
|
10
|
+
return assertionOutcome(count.supported ? count.count : assertion.actual, 0, count.supported && count.count === 0);
|
|
11
|
+
}
|
|
12
|
+
export function evaluateLength(assertion) {
|
|
13
|
+
const count = collectionCount(assertion.actual, assertion.expectedLength + 1);
|
|
14
|
+
const validLength = Number.isSafeInteger(assertion.expectedLength) && assertion.expectedLength >= 0;
|
|
15
|
+
return assertionOutcome(count.supported ? count.count : assertion.actual, assertion.expectedLength, validLength && count.supported && count.count === assertion.expectedLength);
|
|
16
|
+
}
|
|
17
|
+
export function evaluateNotEmpty(assertion) {
|
|
18
|
+
const count = collectionCount(assertion.actual, 1);
|
|
19
|
+
return assertionOutcome(count.supported ? count.count : assertion.actual, 'more than 0', count.supported && count.count > 0);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../../../source/assertion-protocol/assertions/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,4BAA4B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAezD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,KAAK,EAAE,kCAAkC;IACzC,MAAM,EAAE,sCAAsC;IAC9C,WAAW,EAAE,sCAAsC;CAC7C,CAAC;AAEX,MAAM,UAAU,aAAa,CAAC,SAAiC;IAC3D,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEnD,OAAO,gBAAgB,CACnB,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAChD,CAAC,EACD,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,CACvC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAA8B;IACzD,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,cAAc,IAAI,CAAC,CAAC;IAEpG,OAAO,gBAAgB,CACnB,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAChD,SAAS,CAAC,cAAc,EACxB,WAAW,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,cAAc,CAC7E,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiC;IAC9D,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEnD,OAAO,gBAAgB,CACnB,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAChD,aAAa,EACb,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CACrC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { evaluateFalse, evaluateTrue } from "./boolean.js";
|
|
2
|
+
import { evaluateEmpty, evaluateLength, evaluateNotEmpty } from "./collection.js";
|
|
3
|
+
import { evaluateDeepEqual, evaluateEqual, evaluateNotDeepEqual, evaluateNotEqual } from "./equality.js";
|
|
4
|
+
import { evaluateFail } from "./fail.js";
|
|
5
|
+
import { evaluateBetween, evaluateGreaterThan, evaluateGreaterThanOrEqual, evaluateLessThan, evaluateLessThanOrEqual } from "./numeric.js";
|
|
6
|
+
import { evaluateArrayContainsPartial, evaluateMembersPartialDeepEqual, evaluatePartialDeepEqual } from "./partial.js";
|
|
7
|
+
import { evaluateDefined, evaluateNotNull, evaluateNull, evaluateUndefined } from "./presence.js";
|
|
8
|
+
import { evaluateEndsWith, evaluateIncludes, evaluateMatch, evaluateNotMatch, evaluateStartsWith } from "./string.js";
|
|
9
|
+
import { evaluateArray, evaluateBoolean, evaluateFunction, evaluateHasProperty, evaluateInstanceOf, evaluateNumber, evaluateObject, evaluateString } from "./type-shape.js";
|
|
10
|
+
export const assertionEvaluatorByCheck = {
|
|
11
|
+
array: evaluateArray,
|
|
12
|
+
'array-contains-partial': evaluateArrayContainsPartial,
|
|
13
|
+
between: evaluateBetween,
|
|
14
|
+
boolean: evaluateBoolean,
|
|
15
|
+
'deep-equal': evaluateDeepEqual,
|
|
16
|
+
defined: evaluateDefined,
|
|
17
|
+
empty: evaluateEmpty,
|
|
18
|
+
'ends-with': evaluateEndsWith,
|
|
19
|
+
equal: evaluateEqual,
|
|
20
|
+
fail: evaluateFail,
|
|
21
|
+
false: evaluateFalse,
|
|
22
|
+
function: evaluateFunction,
|
|
23
|
+
'greater-than': evaluateGreaterThan,
|
|
24
|
+
'greater-than-or-equal': evaluateGreaterThanOrEqual,
|
|
25
|
+
'has-property': evaluateHasProperty,
|
|
26
|
+
includes: evaluateIncludes,
|
|
27
|
+
'instance-of': evaluateInstanceOf,
|
|
28
|
+
length: evaluateLength,
|
|
29
|
+
'less-than': evaluateLessThan,
|
|
30
|
+
'less-than-or-equal': evaluateLessThanOrEqual,
|
|
31
|
+
match: evaluateMatch,
|
|
32
|
+
'members-partial-deep-equal': evaluateMembersPartialDeepEqual,
|
|
33
|
+
'not-deep-equal': evaluateNotDeepEqual,
|
|
34
|
+
'not-empty': evaluateNotEmpty,
|
|
35
|
+
'not-equal': evaluateNotEqual,
|
|
36
|
+
'not-match': evaluateNotMatch,
|
|
37
|
+
'not-null': evaluateNotNull,
|
|
38
|
+
null: evaluateNull,
|
|
39
|
+
number: evaluateNumber,
|
|
40
|
+
object: evaluateObject,
|
|
41
|
+
'partial-deep-equal': evaluatePartialDeepEqual,
|
|
42
|
+
'starts-with': evaluateStartsWith,
|
|
43
|
+
string: evaluateString,
|
|
44
|
+
true: evaluateTrue,
|
|
45
|
+
undefined: evaluateUndefined
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=dispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../../../source/assertion-protocol/assertions/dispatch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAmD,MAAM,cAAc,CAAC;AAC5G,OAAO,EACH,aAAa,EACb,cAAc,EACd,gBAAgB,EAGnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACH,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAKnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAA0B,MAAM,WAAW,CAAC;AACjE,OAAO,EACH,eAAe,EACf,mBAAmB,EACnB,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,EAG1B,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,4BAA4B,EAC5B,+BAA+B,EAC/B,wBAAwB,EAI3B,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,eAAe,EACf,eAAe,EACf,YAAY,EACZ,iBAAiB,EAKpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAGrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACH,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EAIjB,MAAM,iBAAiB,CAAC;AAiDzB,MAAM,CAAC,MAAM,yBAAyB,GAA8B;IAChE,KAAK,EAAE,aAAa;IACpB,wBAAwB,EAAE,4BAA4B;IACtD,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,eAAe;IACxB,YAAY,EAAE,iBAAiB;IAC/B,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,aAAa;IACpB,WAAW,EAAE,gBAAgB;IAC7B,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,gBAAgB;IAC1B,cAAc,EAAE,mBAAmB;IACnC,uBAAuB,EAAE,0BAA0B;IACnD,cAAc,EAAE,mBAAmB;IACnC,QAAQ,EAAE,gBAAgB;IAC1B,aAAa,EAAE,kBAAkB;IACjC,MAAM,EAAE,cAAc;IACtB,WAAW,EAAE,gBAAgB;IAC7B,oBAAoB,EAAE,uBAAuB;IAC7C,KAAK,EAAE,aAAa;IACpB,4BAA4B,EAAE,+BAA+B;IAC7D,gBAAgB,EAAE,oBAAoB;IACtC,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,eAAe;IAC3B,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,cAAc;IACtB,oBAAoB,EAAE,wBAAwB;IAC9C,aAAa,EAAE,kBAAkB;IACjC,MAAM,EAAE,cAAc;IACtB,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,iBAAiB;CAC/B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { compareDeepValues, compareEqualValues, compareStringEquality } from "../../compare/comparison.js";
|
|
2
|
+
import { assertionOutcome, comparisonOutcome } from "../assertion-evaluation.js";
|
|
3
|
+
export const equalitySummaryByCheck = {
|
|
4
|
+
'deep-equal': 'Expected values to be deeply equal.',
|
|
5
|
+
equal: 'Expected values to be equal.',
|
|
6
|
+
'not-deep-equal': 'Expected values not to be deeply equal.',
|
|
7
|
+
'not-equal': 'Expected values not to be equal.'
|
|
8
|
+
};
|
|
9
|
+
export function evaluateDeepEqual(assertion) {
|
|
10
|
+
return comparisonOutcome(compareDeepValues(assertion.actual, assertion.expected));
|
|
11
|
+
}
|
|
12
|
+
export function evaluateEqual(assertion) {
|
|
13
|
+
if (typeof assertion.actual === 'string' && typeof assertion.expected === 'string') {
|
|
14
|
+
return comparisonOutcome(compareStringEquality(assertion.actual, assertion.expected));
|
|
15
|
+
}
|
|
16
|
+
return comparisonOutcome(compareEqualValues(assertion.actual, assertion.expected));
|
|
17
|
+
}
|
|
18
|
+
export function evaluateNotDeepEqual(assertion) {
|
|
19
|
+
return assertionOutcome(assertion.actual, assertion.expected, !compareDeepValues(assertion.actual, assertion.expected).passed);
|
|
20
|
+
}
|
|
21
|
+
export function evaluateNotEqual(assertion) {
|
|
22
|
+
return assertionOutcome(assertion.actual, assertion.expected, !Object.is(assertion.actual, assertion.expected));
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=equality.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"equality.js","sourceRoot":"","sources":["../../../../../source/assertion-protocol/assertions/equality.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACxB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAyB,MAAM,4BAA4B,CAAC;AAuBxG,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,YAAY,EAAE,qCAAqC;IACnD,KAAK,EAAE,8BAA8B;IACrC,gBAAgB,EAAE,yCAAyC;IAC3D,WAAW,EAAE,kCAAkC;CACzC,CAAC;AAEX,MAAM,UAAU,iBAAiB,CAAC,SAAiC;IAC/D,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAA6B;IACvD,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjF,OAAO,iBAAiB,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,iBAAiB,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,SAAoC;IACrE,OAAO,gBAAgB,CACnB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,QAAQ,EAClB,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAClE,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAgC;IAC7D,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { assertionOutcome } from "../assertion-evaluation.js";
|
|
2
|
+
export const failSummaryByCheck = {
|
|
3
|
+
fail: 'Assertion failed.'
|
|
4
|
+
};
|
|
5
|
+
export function evaluateFail(assertion) {
|
|
6
|
+
return assertionOutcome(assertion.check, 'pass', false);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=fail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fail.js","sourceRoot":"","sources":["../../../../../source/assertion-protocol/assertions/fail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,4BAA4B,CAAC;AAUrF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,IAAI,EAAE,mBAAmB;CACnB,CAAC;AAEX,MAAM,UAAU,YAAY,CAAC,SAA4B;IACrD,OAAO,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { assertionOutcome } from "../assertion-evaluation.js";
|
|
2
|
+
export const numericSummaryByCheck = {
|
|
3
|
+
between: 'Expected number to be between the bounds.',
|
|
4
|
+
'greater-than': 'Expected number to be greater than the threshold.',
|
|
5
|
+
'greater-than-or-equal': 'Expected number to be greater than or equal to the threshold.',
|
|
6
|
+
'less-than': 'Expected number to be less than the threshold.',
|
|
7
|
+
'less-than-or-equal': 'Expected number to be less than or equal to the threshold.'
|
|
8
|
+
};
|
|
9
|
+
function isFiniteNumber(value) {
|
|
10
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
11
|
+
}
|
|
12
|
+
export function evaluateBetween(assertion) {
|
|
13
|
+
const expected = `${assertion.minimum}..${assertion.maximum}`;
|
|
14
|
+
const passed = isFiniteNumber(assertion.actual) &&
|
|
15
|
+
assertion.actual >= assertion.minimum &&
|
|
16
|
+
assertion.actual <= assertion.maximum;
|
|
17
|
+
return assertionOutcome(assertion.actual, expected, passed);
|
|
18
|
+
}
|
|
19
|
+
export function evaluateGreaterThan(assertion) {
|
|
20
|
+
const passed = isFiniteNumber(assertion.actual) &&
|
|
21
|
+
isFiniteNumber(assertion.expected) &&
|
|
22
|
+
assertion.actual > assertion.expected;
|
|
23
|
+
return assertionOutcome(assertion.actual, `> ${assertion.expected}`, passed);
|
|
24
|
+
}
|
|
25
|
+
export function evaluateGreaterThanOrEqual(assertion) {
|
|
26
|
+
const passed = isFiniteNumber(assertion.actual) &&
|
|
27
|
+
isFiniteNumber(assertion.expected) &&
|
|
28
|
+
assertion.actual >= assertion.expected;
|
|
29
|
+
return assertionOutcome(assertion.actual, `>= ${assertion.expected}`, passed);
|
|
30
|
+
}
|
|
31
|
+
export function evaluateLessThan(assertion) {
|
|
32
|
+
const passed = isFiniteNumber(assertion.actual) &&
|
|
33
|
+
isFiniteNumber(assertion.expected) &&
|
|
34
|
+
assertion.actual < assertion.expected;
|
|
35
|
+
return assertionOutcome(assertion.actual, `< ${assertion.expected}`, passed);
|
|
36
|
+
}
|
|
37
|
+
export function evaluateLessThanOrEqual(assertion) {
|
|
38
|
+
const passed = isFiniteNumber(assertion.actual) &&
|
|
39
|
+
isFiniteNumber(assertion.expected) &&
|
|
40
|
+
assertion.actual <= assertion.expected;
|
|
41
|
+
return assertionOutcome(assertion.actual, `<= ${assertion.expected}`, passed);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=numeric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numeric.js","sourceRoot":"","sources":["../../../../../source/assertion-protocol/assertions/numeric.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,4BAA4B,CAAC;AAmBrF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,OAAO,EAAE,2CAA2C;IACpD,cAAc,EAAE,mDAAmD;IACnE,uBAAuB,EAAE,+DAA+D;IACxF,WAAW,EAAE,gDAAgD;IAC7D,oBAAoB,EAAE,4DAA4D;CAC5E,CAAC;AAEX,SAAS,cAAc,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAA+B;IAC3D,MAAM,QAAQ,GAAG,GAAG,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;IAC9D,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;QAC3C,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO;QACrC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC;IAE1C,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAyC;IACzE,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;QAC3C,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC;QAClC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;IAE1C,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,SAAyC;IAChF,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;QAC3C,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC;QAClC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC;IAE3C,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAyC;IACtE,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;QAC3C,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC;QAClC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC;IAE1C,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,SAAyC;IAC7E,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;QAC3C,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC;QAClC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC;IAE3C,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { compareArrayContainsPartial, compareMembersPartialDeepEqual, comparePartialValue } from "../../compare/comparison.js";
|
|
2
|
+
import { comparisonOutcome } from "../assertion-evaluation.js";
|
|
3
|
+
export const partialSummaryByCheck = {
|
|
4
|
+
'array-contains-partial': 'Expected array to contain a partial member.',
|
|
5
|
+
'members-partial-deep-equal': 'Expected array to contain the partial members.',
|
|
6
|
+
'partial-deep-equal': 'Expected value to partially match.'
|
|
7
|
+
};
|
|
8
|
+
export function evaluateArrayContainsPartial(assertion) {
|
|
9
|
+
return comparisonOutcome(compareArrayContainsPartial(assertion.actual, assertion.expected));
|
|
10
|
+
}
|
|
11
|
+
export function evaluateMembersPartialDeepEqual(assertion) {
|
|
12
|
+
return comparisonOutcome(compareMembersPartialDeepEqual(assertion.actual, assertion.expected));
|
|
13
|
+
}
|
|
14
|
+
export function evaluatePartialDeepEqual(assertion) {
|
|
15
|
+
return comparisonOutcome(comparePartialValue(assertion.actual, assertion.expected));
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=partial.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partial.js","sourceRoot":"","sources":["../../../../../source/assertion-protocol/assertions/partial.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,2BAA2B,EAC3B,8BAA8B,EAC9B,mBAAmB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAyB,MAAM,4BAA4B,CAAC;AAgBtF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,wBAAwB,EAAE,6CAA6C;IACvE,4BAA4B,EAAE,gDAAgD;IAC9E,oBAAoB,EAAE,oCAAoC;CACpD,CAAC;AAEX,MAAM,UAAU,4BAA4B,CAAC,SAA4C;IACrF,OAAO,iBAAiB,CAAC,2BAA2B,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,SAA+C;IAC3F,OAAO,iBAAiB,CAAC,8BAA8B,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAAwC;IAC7E,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxF,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { assertionOutcome } from "../assertion-evaluation.js";
|
|
2
|
+
export const presenceSummaryByCheck = {
|
|
3
|
+
defined: 'Expected value to be defined.',
|
|
4
|
+
'not-null': 'Expected value not to be null.',
|
|
5
|
+
null: 'Expected value to be null.',
|
|
6
|
+
undefined: 'Expected value to be undefined.'
|
|
7
|
+
};
|
|
8
|
+
export function evaluateDefined(assertion) {
|
|
9
|
+
return assertionOutcome(assertion.actual, 'non-nullish value', assertion.actual !== null && assertion.actual !== undefined);
|
|
10
|
+
}
|
|
11
|
+
export function evaluateNotNull(assertion) {
|
|
12
|
+
return assertionOutcome(assertion.actual, 'not null', assertion.actual !== null);
|
|
13
|
+
}
|
|
14
|
+
export function evaluateNull(assertion) {
|
|
15
|
+
return assertionOutcome(assertion.actual, null, assertion.actual === null);
|
|
16
|
+
}
|
|
17
|
+
export function evaluateUndefined(assertion) {
|
|
18
|
+
return assertionOutcome(assertion.actual, undefined, assertion.actual === undefined);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=presence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presence.js","sourceRoot":"","sources":["../../../../../source/assertion-protocol/assertions/presence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,4BAA4B,CAAC;AAoBrF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,OAAO,EAAE,+BAA+B;IACxC,UAAU,EAAE,gCAAgC;IAC5C,IAAI,EAAE,4BAA4B;IAClC,SAAS,EAAE,iCAAiC;CACtC,CAAC;AAEX,MAAM,UAAU,eAAe,CAAC,SAA+B;IAC3D,OAAO,gBAAgB,CACnB,SAAS,CAAC,MAAM,EAChB,mBAAmB,EACnB,SAAS,CAAC,MAAM,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,CAC9D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAA+B;IAC3D,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAA4B;IACrD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiC;IAC/D,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;AACzF,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { assertionOutcome } from "../assertion-evaluation.js";
|
|
2
|
+
export const stringSummaryByCheck = {
|
|
3
|
+
'ends-with': 'Expected string to end with the value.',
|
|
4
|
+
includes: 'Expected string to include the value.',
|
|
5
|
+
match: 'Expected string to match the pattern.',
|
|
6
|
+
'not-match': 'Expected string not to match the pattern.',
|
|
7
|
+
'starts-with': 'Expected string to start with the value.'
|
|
8
|
+
};
|
|
9
|
+
export function evaluateEndsWith(assertion) {
|
|
10
|
+
const passed = typeof assertion.actual === 'string' &&
|
|
11
|
+
typeof assertion.expected === 'string' &&
|
|
12
|
+
assertion.actual.endsWith(assertion.expected);
|
|
13
|
+
return assertionOutcome(assertion.actual, assertion.expected, passed);
|
|
14
|
+
}
|
|
15
|
+
export function evaluateIncludes(assertion) {
|
|
16
|
+
const passed = typeof assertion.actual === 'string' &&
|
|
17
|
+
typeof assertion.expected === 'string' &&
|
|
18
|
+
assertion.actual.includes(assertion.expected);
|
|
19
|
+
return assertionOutcome(assertion.actual, assertion.expected, passed);
|
|
20
|
+
}
|
|
21
|
+
export function evaluateMatch(assertion) {
|
|
22
|
+
return assertionOutcome(assertion.actual, assertion.pattern, typeof assertion.actual === 'string' && assertion.pattern.test(assertion.actual));
|
|
23
|
+
}
|
|
24
|
+
export function evaluateNotMatch(assertion) {
|
|
25
|
+
return assertionOutcome(assertion.actual, assertion.pattern, typeof assertion.actual === 'string' && !assertion.pattern.test(assertion.actual));
|
|
26
|
+
}
|
|
27
|
+
export function evaluateStartsWith(assertion) {
|
|
28
|
+
const passed = typeof assertion.actual === 'string' &&
|
|
29
|
+
typeof assertion.expected === 'string' &&
|
|
30
|
+
assertion.actual.startsWith(assertion.expected);
|
|
31
|
+
return assertionOutcome(assertion.actual, assertion.expected, passed);
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../../../../source/assertion-protocol/assertions/string.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,4BAA4B,CAAC;AAkBrF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,WAAW,EAAE,wCAAwC;IACrD,QAAQ,EAAE,uCAAuC;IACjD,KAAK,EAAE,uCAAuC;IAC9C,WAAW,EAAE,2CAA2C;IACxD,aAAa,EAAE,0CAA0C;CACnD,CAAC;AAEX,MAAM,UAAU,gBAAgB,CAAC,SAAsC;IACnE,MAAM,MAAM,GAAG,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;QAC/C,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ;QACtC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAsC;IACnE,MAAM,MAAM,GAAG,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;QAC/C,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ;QACtC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAA6B;IACvD,OAAO,gBAAgB,CACnB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,OAAO,EACjB,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACnF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAA6B;IAC1D,OAAO,gBAAgB,CACnB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,OAAO,EACjB,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACpF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAsC;IACrE,MAAM,MAAM,GAAG,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;QAC/C,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ;QACtC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAEpD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { assertionOutcome } from "../assertion-evaluation.js";
|
|
2
|
+
import { isPlainObject } from "../partial-matching.js";
|
|
3
|
+
export const typeShapeSummaryByCheck = {
|
|
4
|
+
array: 'Expected value to be an array.',
|
|
5
|
+
boolean: 'Expected value to be a boolean.',
|
|
6
|
+
function: 'Expected value to be a function.',
|
|
7
|
+
'has-property': 'Expected object to have the own property.',
|
|
8
|
+
'instance-of': 'Expected value to be an instance of the constructor.',
|
|
9
|
+
number: 'Expected value to be a number.',
|
|
10
|
+
object: 'Expected value to be an object.',
|
|
11
|
+
string: 'Expected value to be a string.'
|
|
12
|
+
};
|
|
13
|
+
function isFiniteNumber(value) {
|
|
14
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
15
|
+
}
|
|
16
|
+
function isSupportedObject(value) {
|
|
17
|
+
return typeof value === 'object' && value !== null;
|
|
18
|
+
}
|
|
19
|
+
export function evaluateArray(assertion) {
|
|
20
|
+
return assertionOutcome(assertion.actual, 'array', Array.isArray(assertion.actual));
|
|
21
|
+
}
|
|
22
|
+
export function evaluateBoolean(assertion) {
|
|
23
|
+
return assertionOutcome(assertion.actual, 'boolean', typeof assertion.actual === 'boolean');
|
|
24
|
+
}
|
|
25
|
+
export function evaluateFunction(assertion) {
|
|
26
|
+
return assertionOutcome(assertion.actual, 'function', typeof assertion.actual === 'function');
|
|
27
|
+
}
|
|
28
|
+
export function evaluateHasProperty(assertion) {
|
|
29
|
+
return assertionOutcome(assertion.actual, `own property ${String(assertion.key)}`, isSupportedObject(assertion.actual) && Object.hasOwn(assertion.actual, assertion.key));
|
|
30
|
+
}
|
|
31
|
+
export function evaluateInstanceOf(assertion) {
|
|
32
|
+
return assertionOutcome(assertion.actual, assertion.expected, assertion.actual instanceof assertion.expected);
|
|
33
|
+
}
|
|
34
|
+
export function evaluateNumber(assertion) {
|
|
35
|
+
return assertionOutcome(assertion.actual, 'finite number', isFiniteNumber(assertion.actual));
|
|
36
|
+
}
|
|
37
|
+
export function evaluateObject(assertion) {
|
|
38
|
+
return assertionOutcome(assertion.actual, 'plain object', isPlainObject(assertion.actual));
|
|
39
|
+
}
|
|
40
|
+
export function evaluateString(assertion) {
|
|
41
|
+
return assertionOutcome(assertion.actual, 'string', typeof assertion.actual === 'string');
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=type-shape.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-shape.js","sourceRoot":"","sources":["../../../../../source/assertion-protocol/assertions/type-shape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAyB,MAAM,4BAA4B,CAAC;AAOrF,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA0BvD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,KAAK,EAAE,gCAAgC;IACvC,OAAO,EAAE,iCAAiC;IAC1C,QAAQ,EAAE,kCAAkC;IAC5C,cAAc,EAAE,2CAA2C;IAC3D,aAAa,EAAE,sDAAsD;IACrE,MAAM,EAAE,gCAAgC;IACxC,MAAM,EAAE,iCAAiC;IACzC,MAAM,EAAE,gCAAgC;CAClC,CAAC;AAEX,SAAS,cAAc,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAA4B;IACtD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAA4B;IACxD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAA4B;IACzD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,SAAmC;IACnE,OAAO,gBAAgB,CACnB,SAAS,CAAC,MAAM,EAChB,gBAAgB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EACvC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CACxF,CAAC;AACN,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAkC;IACjE,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,YAAY,SAAS,CAAC,QAAQ,CAAC,CAAC;AAClH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAA4B;IACvD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAA4B;IACvD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,SAA4B;IACvD,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;AAC9F,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { isPlainObject, ownKeys } from "./partial-matching.js";
|
|
2
|
+
function isObject(value) {
|
|
3
|
+
return typeof value === 'object' && value !== null;
|
|
4
|
+
}
|
|
5
|
+
function hasIteratorProvider(value) {
|
|
6
|
+
return typeof Reflect.get(value, Symbol.iterator) === 'function';
|
|
7
|
+
}
|
|
8
|
+
function iterableItems(value) {
|
|
9
|
+
if (!isObject(value) || !hasIteratorProvider(value)) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
return value[Symbol.iterator]();
|
|
13
|
+
}
|
|
14
|
+
function countIterator(iterator, limit) {
|
|
15
|
+
let count = 0;
|
|
16
|
+
let item = iterator.next();
|
|
17
|
+
while (item.done !== true && count < limit) {
|
|
18
|
+
count += 1;
|
|
19
|
+
item = iterator.next();
|
|
20
|
+
}
|
|
21
|
+
return count;
|
|
22
|
+
}
|
|
23
|
+
function knownCollectionCount(value) {
|
|
24
|
+
if (typeof value === 'string' || Array.isArray(value)) {
|
|
25
|
+
return value.length;
|
|
26
|
+
}
|
|
27
|
+
if (value instanceof Map || value instanceof Set) {
|
|
28
|
+
return value.size;
|
|
29
|
+
}
|
|
30
|
+
return isPlainObject(value) ? ownKeys(value).length : null;
|
|
31
|
+
}
|
|
32
|
+
export function collectionCount(value, limit) {
|
|
33
|
+
const knownCount = knownCollectionCount(value);
|
|
34
|
+
if (knownCount !== null) {
|
|
35
|
+
return { count: knownCount, supported: true };
|
|
36
|
+
}
|
|
37
|
+
const iterator = iterableItems(value);
|
|
38
|
+
return iterator === null
|
|
39
|
+
? { count: 0, supported: false }
|
|
40
|
+
: { count: countIterator(iterator, limit), supported: true };
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=collection-count.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-count.js","sourceRoot":"","sources":["../../../../source/assertion-protocol/collection-count.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAO/D,SAAS,QAAQ,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACvD,CAAC;AAMD,SAAS,mBAAmB,CAAC,KAA8B;IACvD,OAAO,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC;AACrE,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,aAAa,CAAC,QAA2B,EAAE,KAAa;IAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE3B,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;QACzC,KAAK,IAAI,CAAC,CAAC;QACX,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,KAAK,YAAY,GAAG,IAAI,KAAK,YAAY,GAAG,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,KAAa;IACzD,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAE/C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAEtC,OAAO,QAAQ,KAAK,IAAI;QACpB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;QAChC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACrE,CAAC"}
|