assertron 7.1.1 → 9.0.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/LICENSE +2 -2
- package/README.md +61 -46
- package/{dist-es2015 → cjs}/assert-order/AssertOrder.d.ts +3 -2
- package/cjs/assert-order/AssertOrder.d.ts.map +1 -0
- package/cjs/assert-order/AssertOrder.js +148 -0
- package/cjs/assert-order/InvalidOrder.d.ts +9 -0
- package/cjs/assert-order/InvalidOrder.d.ts.map +1 -0
- package/cjs/assert-order/InvalidOrder.js +39 -0
- package/{dist-es5 → cjs}/assert-order/StateMachine.d.ts +5 -6
- package/cjs/assert-order/StateMachine.d.ts.map +1 -0
- package/cjs/assert-order/StateMachine.js +111 -0
- package/cjs/assert-order/index.d.ts +4 -0
- package/cjs/assert-order/index.d.ts.map +1 -0
- package/cjs/assert-order/index.js +7 -0
- package/{dist-es2015/assert-order/interfaces.d.ts → cjs/assert-order/types.d.ts} +1 -0
- package/cjs/assert-order/types.d.ts.map +1 -0
- package/cjs/assert-order/types.js +3 -0
- package/{dist-es2015 → cjs}/assertron/assertron.d.ts +1 -0
- package/cjs/assertron/assertron.d.ts.map +1 -0
- package/cjs/assertron/assertron.js +32 -0
- package/{dist-es2015 → cjs}/assertron/falsy.d.ts +1 -0
- package/cjs/assertron/falsy.d.ts.map +1 -0
- package/cjs/assertron/falsy.js +10 -0
- package/cjs/assertron/index.d.ts +2 -0
- package/cjs/assertron/index.d.ts.map +1 -0
- package/cjs/assertron/index.js +5 -0
- package/{dist-es2015 → cjs}/assertron/pathEqual.d.ts +1 -0
- package/cjs/assertron/pathEqual.d.ts.map +1 -0
- package/cjs/assertron/pathEqual.js +12 -0
- package/{dist-es2015 → cjs}/assertron/rejects.d.ts +1 -0
- package/cjs/assertron/rejects.d.ts.map +1 -0
- package/cjs/assertron/rejects.js +10 -0
- package/{dist-es2015 → cjs}/assertron/repeat.d.ts +1 -6
- package/cjs/assertron/repeat.d.ts.map +1 -0
- package/cjs/assertron/repeat.js +33 -0
- package/{dist-es2015 → cjs}/assertron/resolves.d.ts +1 -0
- package/cjs/assertron/resolves.d.ts.map +1 -0
- package/cjs/assertron/resolves.js +10 -0
- package/cjs/assertron/satisfies.d.ts +10 -0
- package/cjs/assertron/satisfies.d.ts.map +1 -0
- package/cjs/assertron/satisfies.js +18 -0
- package/{dist-es2015 → cjs}/assertron/throws.d.ts +3 -1
- package/cjs/assertron/throws.d.ts.map +1 -0
- package/cjs/assertron/throws.js +56 -0
- package/{dist-es2015 → cjs}/assertron/truthy.d.ts +1 -0
- package/cjs/assertron/truthy.d.ts.map +1 -0
- package/cjs/assertron/truthy.js +10 -0
- package/cjs/errors.d.ts +17 -0
- package/cjs/errors.d.ts.map +1 -0
- package/cjs/errors.js +29 -0
- package/{dist-es5 → cjs}/index.d.ts +3 -1
- package/cjs/index.d.ts.map +1 -0
- package/cjs/index.js +9 -0
- package/{dist-es2015/errors/interfaces.d.ts → cjs/types.d.ts} +1 -0
- package/cjs/types.d.ts.map +1 -0
- package/cjs/types.js +3 -0
- package/cjs/utils/index.d.ts +8 -0
- package/cjs/utils/index.d.ts.map +1 -0
- package/cjs/utils/index.js +16 -0
- package/{dist-es2015/errors/util.d.ts → cjs/utils/isErrorConstructor.d.ts} +2 -1
- package/cjs/utils/isErrorConstructor.d.ts.map +1 -0
- package/cjs/utils/isErrorConstructor.js +8 -0
- package/{dist-es2015/errors → cjs/utils}/notEqualMessage.d.ts +1 -0
- package/cjs/utils/notEqualMessage.d.ts.map +1 -0
- package/cjs/utils/notEqualMessage.js +8 -0
- package/{dist-es2015/errors/NotSatisfied.d.ts → cjs/utils/notSatisfiedMessage.d.ts} +1 -0
- package/cjs/utils/notSatisfiedMessage.d.ts.map +1 -0
- package/cjs/utils/notSatisfiedMessage.js +28 -0
- package/{dist-es2015/errors → cjs/utils}/notThrownMessage.d.ts +1 -0
- package/cjs/utils/notThrownMessage.d.ts.map +1 -0
- package/cjs/utils/notThrownMessage.js +9 -0
- package/cjs/utils/promiseMessages.d.ts +3 -0
- package/cjs/utils/promiseMessages.d.ts.map +1 -0
- package/cjs/utils/promiseMessages.js +15 -0
- package/{dist-es2015/errors → cjs/utils}/unexpectedErrorMessage.d.ts +2 -1
- package/cjs/utils/unexpectedErrorMessage.d.ts.map +1 -0
- package/cjs/utils/unexpectedErrorMessage.js +11 -0
- package/esm/assert-order/AssertOrder.js +132 -0
- package/esm/assert-order/InvalidOrder.js +31 -0
- package/esm/assert-order/StateMachine.js +103 -0
- package/esm/assert-order/index.js +4 -0
- package/esm/assert-order/types.js +2 -0
- package/esm/assertron/assertron.js +29 -0
- package/esm/assertron/falsy.js +6 -0
- package/esm/assertron/index.js +2 -0
- package/esm/assertron/pathEqual.js +8 -0
- package/esm/assertron/rejects.js +6 -0
- package/esm/assertron/repeat.js +28 -0
- package/esm/assertron/resolves.js +6 -0
- package/esm/assertron/satisfies.js +14 -0
- package/esm/assertron/throws.js +51 -0
- package/esm/assertron/truthy.js +6 -0
- package/esm/errors.js +18 -0
- package/esm/index.js +6 -0
- package/esm/types.js +2 -0
- package/esm/utils/index.js +11 -0
- package/esm/utils/isErrorConstructor.js +4 -0
- package/esm/utils/notEqualMessage.js +4 -0
- package/esm/utils/notSatisfiedMessage.js +23 -0
- package/esm/utils/notThrownMessage.js +5 -0
- package/esm/utils/promiseMessages.js +10 -0
- package/esm/utils/unexpectedErrorMessage.js +7 -0
- package/package.json +62 -24
- package/src/assert-order/AssertOrder.spec.ts +10 -12
- package/src/assert-order/AssertOrder.ts +8 -8
- package/src/assert-order/InvalidOrder.ts +7 -12
- package/src/assert-order/StateMachine.ts +26 -31
- package/src/assert-order/index.ts +3 -1
- package/src/assert-order/internalInterfaces.ts +3 -3
- package/src/assert-order/types.ts +7 -0
- package/src/assertron/assertron.spec.ts +2 -4
- package/src/assertron/assertron.ts +13 -14
- package/src/assertron/falsy.spec.ts +2 -3
- package/src/assertron/falsy.ts +2 -6
- package/src/assertron/pathEqual.spec.ts +2 -3
- package/src/assertron/pathEqual.ts +4 -7
- package/src/assertron/rejects.spec.ts +7 -8
- package/src/assertron/rejects.ts +3 -11
- package/src/assertron/repeat.spec.ts +8 -10
- package/src/assertron/repeat.ts +4 -9
- package/src/assertron/resolves.spec.ts +3 -4
- package/src/assertron/resolves.ts +3 -13
- package/src/assertron/satisfies.spec.ts +57 -26
- package/src/assertron/satisfies.ts +23 -10
- package/src/assertron/throws.spec.ts +63 -39
- package/src/assertron/throws.ts +32 -55
- package/src/assertron/truthy.spec.ts +2 -3
- package/src/assertron/truthy.ts +2 -3
- package/src/errors.ts +22 -0
- package/src/index.ts +2 -1
- package/src/testUtils.ts +16 -13
- package/src/{errors/interfaces.ts → types.ts} +1 -1
- package/src/utils/index.ts +12 -0
- package/src/utils/isErrorConstructor.ts +5 -0
- package/src/utils/notEqualMessage.ts +4 -0
- package/src/{errors → utils}/notSatisfiedMessage.spec.ts +0 -0
- package/src/{errors/NotSatisfied.ts → utils/notSatisfiedMessage.ts} +1 -1
- package/src/utils/notThrownMessage.ts +5 -0
- package/src/utils/promiseMessages.ts +12 -0
- package/src/{errors → utils}/unexpectedErrorMessage.ts +4 -3
- package/dist-es2015/assert-order/AssertOrder.js +0 -132
- package/dist-es2015/assert-order/AssertOrder.js.map +0 -1
- package/dist-es2015/assert-order/InvalidOrder.d.ts +0 -8
- package/dist-es2015/assert-order/InvalidOrder.js +0 -31
- package/dist-es2015/assert-order/InvalidOrder.js.map +0 -1
- package/dist-es2015/assert-order/StateMachine.d.ts +0 -23
- package/dist-es2015/assert-order/StateMachine.js +0 -106
- package/dist-es2015/assert-order/StateMachine.js.map +0 -1
- package/dist-es2015/assert-order/index.d.ts +0 -2
- package/dist-es2015/assert-order/index.js +0 -2
- package/dist-es2015/assert-order/index.js.map +0 -1
- package/dist-es2015/assert-order/interfaces.js +0 -1
- package/dist-es2015/assert-order/interfaces.js.map +0 -1
- package/dist-es2015/assertron/assertron.js +0 -28
- package/dist-es2015/assertron/assertron.js.map +0 -1
- package/dist-es2015/assertron/falsy.js +0 -6
- package/dist-es2015/assertron/falsy.js.map +0 -1
- package/dist-es2015/assertron/index.d.ts +0 -1
- package/dist-es2015/assertron/index.js +0 -2
- package/dist-es2015/assertron/index.js.map +0 -1
- package/dist-es2015/assertron/pathEqual.js +0 -8
- package/dist-es2015/assertron/pathEqual.js.map +0 -1
- package/dist-es2015/assertron/rejects.js +0 -10
- package/dist-es2015/assertron/rejects.js.map +0 -1
- package/dist-es2015/assertron/repeat.js +0 -35
- package/dist-es2015/assertron/repeat.js.map +0 -1
- package/dist-es2015/assertron/resolves.js +0 -12
- package/dist-es2015/assertron/resolves.js.map +0 -1
- package/dist-es2015/assertron/satisfies.d.ts +0 -5
- package/dist-es2015/assertron/satisfies.js +0 -14
- package/dist-es2015/assertron/satisfies.js.map +0 -1
- package/dist-es2015/assertron/throws.js +0 -55
- package/dist-es2015/assertron/throws.js.map +0 -1
- package/dist-es2015/assertron/truthy.js +0 -6
- package/dist-es2015/assertron/truthy.js.map +0 -1
- package/dist-es2015/errors/NotSatisfied.js +0 -23
- package/dist-es2015/errors/NotSatisfied.js.map +0 -1
- package/dist-es2015/errors/index.d.ts +0 -7
- package/dist-es2015/errors/index.js +0 -7
- package/dist-es2015/errors/index.js.map +0 -1
- package/dist-es2015/errors/interfaces.js +0 -1
- package/dist-es2015/errors/interfaces.js.map +0 -1
- package/dist-es2015/errors/notEqualMessage.js +0 -4
- package/dist-es2015/errors/notEqualMessage.js.map +0 -1
- package/dist-es2015/errors/notRejectedMessage.d.ts +0 -1
- package/dist-es2015/errors/notRejectedMessage.js +0 -4
- package/dist-es2015/errors/notRejectedMessage.js.map +0 -1
- package/dist-es2015/errors/notThrownMessage.js +0 -4
- package/dist-es2015/errors/notThrownMessage.js.map +0 -1
- package/dist-es2015/errors/returnNotRejectedMessage.d.ts +0 -1
- package/dist-es2015/errors/returnNotRejectedMessage.js +0 -4
- package/dist-es2015/errors/returnNotRejectedMessage.js.map +0 -1
- package/dist-es2015/errors/unexpectedErrorMessage.js +0 -6
- package/dist-es2015/errors/unexpectedErrorMessage.js.map +0 -1
- package/dist-es2015/errors/util.js +0 -4
- package/dist-es2015/errors/util.js.map +0 -1
- package/dist-es2015/index.d.ts +0 -4
- package/dist-es2015/index.js +0 -5
- package/dist-es2015/index.js.map +0 -1
- package/dist-es5/assert-order/AssertOrder.d.ts +0 -40
- package/dist-es5/assert-order/AssertOrder.js +0 -147
- package/dist-es5/assert-order/AssertOrder.js.map +0 -1
- package/dist-es5/assert-order/InvalidOrder.d.ts +0 -8
- package/dist-es5/assert-order/InvalidOrder.js +0 -58
- package/dist-es5/assert-order/InvalidOrder.js.map +0 -1
- package/dist-es5/assert-order/StateMachine.js +0 -115
- package/dist-es5/assert-order/StateMachine.js.map +0 -1
- package/dist-es5/assert-order/index.d.ts +0 -2
- package/dist-es5/assert-order/index.js +0 -7
- package/dist-es5/assert-order/index.js.map +0 -1
- package/dist-es5/assert-order/interfaces.d.ts +0 -7
- package/dist-es5/assert-order/interfaces.js +0 -3
- package/dist-es5/assert-order/interfaces.js.map +0 -1
- package/dist-es5/assertron/assertron.d.ts +0 -20
- package/dist-es5/assertron/assertron.js +0 -33
- package/dist-es5/assertron/assertron.js.map +0 -1
- package/dist-es5/assertron/falsy.d.ts +0 -1
- package/dist-es5/assertron/falsy.js +0 -12
- package/dist-es5/assertron/falsy.js.map +0 -1
- package/dist-es5/assertron/index.d.ts +0 -1
- package/dist-es5/assertron/index.js +0 -7
- package/dist-es5/assertron/index.js.map +0 -1
- package/dist-es5/assertron/pathEqual.d.ts +0 -1
- package/dist-es5/assertron/pathEqual.js +0 -14
- package/dist-es5/assertron/pathEqual.js.map +0 -1
- package/dist-es5/assertron/rejects.d.ts +0 -1
- package/dist-es5/assertron/rejects.js +0 -16
- package/dist-es5/assertron/rejects.js.map +0 -1
- package/dist-es5/assertron/repeat.d.ts +0 -11
- package/dist-es5/assertron/repeat.js +0 -58
- package/dist-es5/assertron/repeat.js.map +0 -1
- package/dist-es5/assertron/resolves.d.ts +0 -1
- package/dist-es5/assertron/resolves.js +0 -18
- package/dist-es5/assertron/resolves.js.map +0 -1
- package/dist-es5/assertron/satisfies.d.ts +0 -5
- package/dist-es5/assertron/satisfies.js +0 -20
- package/dist-es5/assertron/satisfies.js.map +0 -1
- package/dist-es5/assertron/throws.d.ts +0 -4
- package/dist-es5/assertron/throws.js +0 -61
- package/dist-es5/assertron/throws.js.map +0 -1
- package/dist-es5/assertron/truthy.d.ts +0 -1
- package/dist-es5/assertron/truthy.js +0 -12
- package/dist-es5/assertron/truthy.js.map +0 -1
- package/dist-es5/errors/NotSatisfied.d.ts +0 -2
- package/dist-es5/errors/NotSatisfied.js +0 -26
- package/dist-es5/errors/NotSatisfied.js.map +0 -1
- package/dist-es5/errors/index.d.ts +0 -7
- package/dist-es5/errors/index.js +0 -12
- package/dist-es5/errors/index.js.map +0 -1
- package/dist-es5/errors/interfaces.d.ts +0 -2
- package/dist-es5/errors/interfaces.js +0 -3
- package/dist-es5/errors/interfaces.js.map +0 -1
- package/dist-es5/errors/notEqualMessage.d.ts +0 -1
- package/dist-es5/errors/notEqualMessage.js +0 -7
- package/dist-es5/errors/notEqualMessage.js.map +0 -1
- package/dist-es5/errors/notRejectedMessage.d.ts +0 -1
- package/dist-es5/errors/notRejectedMessage.js +0 -7
- package/dist-es5/errors/notRejectedMessage.js.map +0 -1
- package/dist-es5/errors/notThrownMessage.d.ts +0 -1
- package/dist-es5/errors/notThrownMessage.js +0 -7
- package/dist-es5/errors/notThrownMessage.js.map +0 -1
- package/dist-es5/errors/returnNotRejectedMessage.d.ts +0 -1
- package/dist-es5/errors/returnNotRejectedMessage.js +0 -7
- package/dist-es5/errors/returnNotRejectedMessage.js.map +0 -1
- package/dist-es5/errors/unexpectedErrorMessage.d.ts +0 -2
- package/dist-es5/errors/unexpectedErrorMessage.js +0 -9
- package/dist-es5/errors/unexpectedErrorMessage.js.map +0 -1
- package/dist-es5/errors/util.d.ts +0 -2
- package/dist-es5/errors/util.js +0 -7
- package/dist-es5/errors/util.js.map +0 -1
- package/dist-es5/index.js +0 -10
- package/dist-es5/index.js.map +0 -1
- package/src/assert-order/interfaces.ts +0 -7
- package/src/errors/index.ts +0 -7
- package/src/errors/notEqualMessage.ts +0 -3
- package/src/errors/notRejectedMessage.ts +0 -3
- package/src/errors/notThrownMessage.ts +0 -3
- package/src/errors/returnNotRejectedMessage.ts +0 -3
- package/src/errors/util.ts +0 -5
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { tersify } from 'tersify';
|
|
2
|
+
|
|
3
|
+
export * from './isErrorConstructor';
|
|
4
|
+
export * from './notEqualMessage';
|
|
5
|
+
export * from './notSatisfiedMessage';
|
|
6
|
+
export * from './notThrownMessage';
|
|
7
|
+
export * from './promiseMessages';
|
|
8
|
+
export * from './unexpectedErrorMessage';
|
|
9
|
+
|
|
10
|
+
export function failOnOccurrence(occurrence: number, error: any) {
|
|
11
|
+
return `Failed on ${occurrence} occurrence: ${tersify(error, { maxLength: Infinity })}`
|
|
12
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { tersify } from 'tersify'
|
|
2
|
+
|
|
3
|
+
export function notRejectedMessage(value: any) {
|
|
4
|
+
return `Expected promise to reject, but it resolves with ` + (typeof value === 'string'
|
|
5
|
+
? `'${value}'` : tersify(value, { maxLength: Infinity }))
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function notResolvedMessage(error: any) {
|
|
9
|
+
return `Expected promise to resolve, but it rejects with ` + (typeof error === 'string'
|
|
10
|
+
? `'${error}'` : error instanceof Error ? error : tersify(error, { maxLength: Infinity }))
|
|
11
|
+
}
|
|
12
|
+
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { tersify } from 'tersify';
|
|
2
|
-
import { ErrorConstructor, ErrorValidator } from '
|
|
3
|
-
import { isErrorConstructor } from './
|
|
2
|
+
import { ErrorConstructor, ErrorValidator } from '../types';
|
|
3
|
+
import { isErrorConstructor } from './isErrorConstructor';
|
|
4
4
|
|
|
5
5
|
export function unexpectedErrorMessage(actual: any, expected: ErrorValidator | ErrorConstructor<any>) {
|
|
6
|
-
return `Unexpected error. Expecting '${isErrorConstructor(expected) ?
|
|
6
|
+
return `Unexpected error. Expecting '${isErrorConstructor(expected) ?
|
|
7
|
+
expected.name : tersify(expected)}' but received ${tersify(actual)}`
|
|
7
8
|
}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { InvalidOrder } from './InvalidOrder';
|
|
2
|
-
import { StateMachine } from './StateMachine';
|
|
3
|
-
// order.atLeast(step, count) // expected to be executed at least `count` times
|
|
4
|
-
// order.atMost(step, count) // exected to be executed at most `count` times
|
|
5
|
-
export class AssertOrder {
|
|
6
|
-
/**
|
|
7
|
-
* Gets the current expecting step.
|
|
8
|
-
*/
|
|
9
|
-
get currentStep() {
|
|
10
|
-
return this.state.step;
|
|
11
|
-
}
|
|
12
|
-
constructor(plan) {
|
|
13
|
-
this.state = new StateMachine(plan);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Asserts the current step is `step`.
|
|
17
|
-
* @param step expected step.
|
|
18
|
-
*/
|
|
19
|
-
is(step) {
|
|
20
|
-
this.assert('is', step);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Asserts the current step is not `step`.
|
|
24
|
-
* @param step not expected step.
|
|
25
|
-
*/
|
|
26
|
-
not(step) {
|
|
27
|
-
if (this.state.isValid(step)) {
|
|
28
|
-
throw new InvalidOrder(this.state.get(), 'not', this.not, step);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Reset to specified step.
|
|
33
|
-
*/
|
|
34
|
-
jump(step) {
|
|
35
|
-
this.state.jump(step);
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Move to next step.
|
|
39
|
-
*/
|
|
40
|
-
move() {
|
|
41
|
-
this.state.move();
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Asserts the specified step will run once.
|
|
45
|
-
*/
|
|
46
|
-
once(step) {
|
|
47
|
-
this.assert('once', step);
|
|
48
|
-
this.state.move();
|
|
49
|
-
}
|
|
50
|
-
on(step, assert) {
|
|
51
|
-
this.state.on(step, () => {
|
|
52
|
-
assert(step);
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
atLeastOnce(step) {
|
|
56
|
-
const nextStep = step + 1;
|
|
57
|
-
if (this.state.step === step) {
|
|
58
|
-
this.state.move();
|
|
59
|
-
return this.state.moveSubStep();
|
|
60
|
-
}
|
|
61
|
-
else if (this.state.step === nextStep && this.state.subStep > 0) {
|
|
62
|
-
return this.state.moveSubStep();
|
|
63
|
-
}
|
|
64
|
-
else
|
|
65
|
-
throw new InvalidOrder(this.state.get(), 'atLeastOnce', this.atLeastOnce, step);
|
|
66
|
-
}
|
|
67
|
-
any(steps) {
|
|
68
|
-
const index = steps.indexOf(this.state.step);
|
|
69
|
-
if (index === -1)
|
|
70
|
-
throw new InvalidOrder(this.state.get(), 'any', this.any, steps);
|
|
71
|
-
this.state.move();
|
|
72
|
-
return steps[index];
|
|
73
|
-
}
|
|
74
|
-
onAny(steps, ...asserts) {
|
|
75
|
-
steps.forEach(step => {
|
|
76
|
-
this.state.on(step, () => {
|
|
77
|
-
let firstError;
|
|
78
|
-
let hasPass = false;
|
|
79
|
-
asserts.forEach(assert => {
|
|
80
|
-
try {
|
|
81
|
-
assert(step);
|
|
82
|
-
hasPass = true;
|
|
83
|
-
}
|
|
84
|
-
catch (err) {
|
|
85
|
-
if (!firstError)
|
|
86
|
-
firstError = err;
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
if (!hasPass)
|
|
90
|
-
throw firstError;
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
end(timeout) {
|
|
96
|
-
if (timeout) {
|
|
97
|
-
return new Promise(r => {
|
|
98
|
-
setTimeout(r, timeout);
|
|
99
|
-
}).then(() => {
|
|
100
|
-
return this.end();
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
if (!this.state.isMaxStepDefined()) {
|
|
104
|
-
this.state.stopAccepting();
|
|
105
|
-
return this.state.getTimeTaken();
|
|
106
|
-
}
|
|
107
|
-
if (this.state.isAccepting()) {
|
|
108
|
-
throw new InvalidOrder(this.state.get(), 'end', this.end);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
exactly(step, times) {
|
|
112
|
-
if (this.state.isNotValid(step))
|
|
113
|
-
throw new InvalidOrder(this.state.get(), 'exactly', this.exactly, step, times);
|
|
114
|
-
if (this.state.maxSubStep === undefined) {
|
|
115
|
-
this.state.maxSubStep = times;
|
|
116
|
-
this.state.minSubStep = times;
|
|
117
|
-
}
|
|
118
|
-
return this.state.moveSubStep();
|
|
119
|
-
}
|
|
120
|
-
wait(step, callback) {
|
|
121
|
-
if (callback)
|
|
122
|
-
this.on(step, callback);
|
|
123
|
-
else
|
|
124
|
-
return new Promise(a => { this.on(step, a); });
|
|
125
|
-
}
|
|
126
|
-
assert(method, step) {
|
|
127
|
-
if (this.state.isNotValid(step)) {
|
|
128
|
-
throw new InvalidOrder(this.state.get(), method, this[method], step);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
//# sourceMappingURL=AssertOrder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AssertOrder.js","sourceRoot":"","sources":["../../src/assert-order/AssertOrder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import AssertionError from 'assertion-error';
|
|
2
|
-
import { State } from './interfaces';
|
|
3
|
-
export declare class InvalidOrder extends AssertionError {
|
|
4
|
-
method: string;
|
|
5
|
-
args: any[];
|
|
6
|
-
state: State;
|
|
7
|
-
constructor(state: State, method: string, ssf: Function, ...args: any[]);
|
|
8
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import AssertionError from 'assertion-error';
|
|
2
|
-
export class InvalidOrder extends AssertionError {
|
|
3
|
-
constructor(state, method, ssf, ...args) {
|
|
4
|
-
const message = method === 'end' ? getEndMessage(state) : getExpectingMessage(state, method, args);
|
|
5
|
-
super(message, { method, state, args }, ssf);
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
function getEndMessage(state) {
|
|
9
|
-
return `Planned for ${state.maxStep} step but expecting step ${state.step} when 'end()' is called`;
|
|
10
|
-
}
|
|
11
|
-
function getExpectingMessage(state, method, args) {
|
|
12
|
-
return `Expecting ${getExpectingCalls(state)}, but received '${method}(${getMethodArgs(args)})'`;
|
|
13
|
-
}
|
|
14
|
-
function getExpectingCalls(state) {
|
|
15
|
-
let message;
|
|
16
|
-
if (state.subStep === 0) {
|
|
17
|
-
const methods = ['is', 'once', 'any'];
|
|
18
|
-
message = methods.map(m => ['any'].indexOf(m) === -1 ?
|
|
19
|
-
`'${m}(${state.step})'` :
|
|
20
|
-
`'${m}([${state.step}])'`).join(', ');
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
const methods = ['exactly'];
|
|
24
|
-
message = methods.map(m => `'${m}(${state.step}, ${state.maxSubStep})'`).join(', ');
|
|
25
|
-
}
|
|
26
|
-
return message;
|
|
27
|
-
}
|
|
28
|
-
function getMethodArgs(args) {
|
|
29
|
-
return args.map(a => Array.isArray(a) ? `[${a.join(', ')}]` : a).join(', ');
|
|
30
|
-
}
|
|
31
|
-
//# sourceMappingURL=InvalidOrder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InvalidOrder.js","sourceRoot":"","sources":["../../src/assert-order/InvalidOrder.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAG7C,MAAM,OAAO,YAAa,SAAQ,cAAc;IAI9C,YAAY,KAAY,EAAE,MAAc,EAAE,GAAa,EAAE,GAAG,IAAW;QACrE,MAAM,OAAO,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QAClG,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;IAC9C,CAAC;CACF;AAED,SAAS,aAAa,CAAC,KAAY;IACjC,OAAO,eAAe,KAAK,CAAC,OAAO,4BAA4B,KAAK,CAAC,IAAI,yBAAyB,CAAA;AACpG,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI;IAC9C,OAAO,aAAa,iBAAiB,CAAC,KAAK,CAAC,mBAAmB,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAA;AAClG,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY;IACrC,IAAI,OAAe,CAAA;IACnB,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;QACvB,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;QACrC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,CAC1B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACb;SACI;QACH,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,CAAA;QAC3B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACpF;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,aAAa,CAAC,IAAW;IAChC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7E,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { State } from './interfaces';
|
|
2
|
-
export declare class StateMachine {
|
|
3
|
-
listeners: {};
|
|
4
|
-
step: number;
|
|
5
|
-
maxStep?: number;
|
|
6
|
-
subStep: number;
|
|
7
|
-
minSubStep?: number;
|
|
8
|
-
maxSubStep?: number;
|
|
9
|
-
private startTick;
|
|
10
|
-
constructor(maxStep?: number);
|
|
11
|
-
jump(step: number): number;
|
|
12
|
-
move(): number;
|
|
13
|
-
moveSubStep(): number;
|
|
14
|
-
get(): State;
|
|
15
|
-
on(step: number, listener: any): void;
|
|
16
|
-
isNotValid(step: number): boolean;
|
|
17
|
-
isValid(step: number): boolean;
|
|
18
|
-
isMaxStepDefined(): boolean;
|
|
19
|
-
stopAccepting(): void;
|
|
20
|
-
isAccepting(): boolean;
|
|
21
|
-
getTimeTaken(): any;
|
|
22
|
-
private getStartTick;
|
|
23
|
-
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import isNode from 'is-node';
|
|
2
|
-
// istanbul ignore next
|
|
3
|
-
function nodeVersionIsOrAbove(major, minor = 0, patch = 0) {
|
|
4
|
-
// without this, systemjs will complain `process is not defined`
|
|
5
|
-
if (!global.process)
|
|
6
|
-
return false;
|
|
7
|
-
const versionString = process.version.startsWith('v') ? process.version.slice(1) : process.version;
|
|
8
|
-
const [actualMajor, actualMinor, actualPatch] = versionString.split('.').map(s => parseInt(s, 10));
|
|
9
|
-
const checking = major * 1000 * 1000 + minor * 1000 + patch;
|
|
10
|
-
const actual = actualMajor * 1000 * 1000 + actualMinor * 1000 + actualPatch;
|
|
11
|
-
return actual >= checking;
|
|
12
|
-
}
|
|
13
|
-
// istanbul ignore next
|
|
14
|
-
const performance = isNode && nodeVersionIsOrAbove(8, 5) ? require('perf_hooks').performance : undefined;
|
|
15
|
-
let startTick;
|
|
16
|
-
let timeTaken;
|
|
17
|
-
// istanbul ignore else
|
|
18
|
-
// tslint:disable-next-line
|
|
19
|
-
if (process && typeof process.hrtime === 'function') {
|
|
20
|
-
startTick = process.hrtime;
|
|
21
|
-
timeTaken = function (startTick) {
|
|
22
|
-
const [second, nanoSecond] = process.hrtime(startTick);
|
|
23
|
-
return second * 1000 + nanoSecond / 1e6;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
// tslint:disable-next-line
|
|
27
|
-
else if (performance && typeof performance.now === 'function') {
|
|
28
|
-
startTick = performance.now;
|
|
29
|
-
timeTaken = function (startTick) {
|
|
30
|
-
const end = performance.now();
|
|
31
|
-
return end - startTick;
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
startTick = function () {
|
|
36
|
-
return new Date().valueOf();
|
|
37
|
-
};
|
|
38
|
-
timeTaken = function (startTick) {
|
|
39
|
-
return new Date().valueOf() - startTick;
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
export class StateMachine {
|
|
43
|
-
constructor(maxStep) {
|
|
44
|
-
this.listeners = {};
|
|
45
|
-
this.step = 1;
|
|
46
|
-
this.subStep = 0;
|
|
47
|
-
this.maxStep = maxStep;
|
|
48
|
-
this.startTick = this.getStartTick();
|
|
49
|
-
}
|
|
50
|
-
jump(step) {
|
|
51
|
-
this.step = step;
|
|
52
|
-
this.subStep = 0;
|
|
53
|
-
return this.step;
|
|
54
|
-
}
|
|
55
|
-
move() {
|
|
56
|
-
const listeners = this.listeners[this.step];
|
|
57
|
-
this.step = this.step + 1;
|
|
58
|
-
this.subStep = 0;
|
|
59
|
-
if (listeners) {
|
|
60
|
-
listeners.forEach(l => l());
|
|
61
|
-
}
|
|
62
|
-
return this.step;
|
|
63
|
-
}
|
|
64
|
-
moveSubStep() {
|
|
65
|
-
const subStep = ++this.subStep;
|
|
66
|
-
if (this.maxSubStep === this.subStep)
|
|
67
|
-
this.move();
|
|
68
|
-
return subStep;
|
|
69
|
-
}
|
|
70
|
-
get() {
|
|
71
|
-
const { step, subStep, maxStep, minSubStep, maxSubStep } = this;
|
|
72
|
-
return {
|
|
73
|
-
step,
|
|
74
|
-
maxStep,
|
|
75
|
-
subStep,
|
|
76
|
-
minSubStep,
|
|
77
|
-
maxSubStep
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
on(step, listener) {
|
|
81
|
-
this.listeners[step] = [listener];
|
|
82
|
-
}
|
|
83
|
-
isNotValid(step) {
|
|
84
|
-
return step !== this.step || (this.maxStep !== undefined && this.maxStep < step);
|
|
85
|
-
}
|
|
86
|
-
isValid(step) {
|
|
87
|
-
return step === this.step;
|
|
88
|
-
}
|
|
89
|
-
isMaxStepDefined() {
|
|
90
|
-
return this.maxStep !== undefined;
|
|
91
|
-
}
|
|
92
|
-
stopAccepting() {
|
|
93
|
-
this.maxStep = this.step - 1;
|
|
94
|
-
}
|
|
95
|
-
isAccepting() {
|
|
96
|
-
// istanbul ignore next
|
|
97
|
-
return this.maxStep ? this.maxStep >= this.step : true;
|
|
98
|
-
}
|
|
99
|
-
getTimeTaken() {
|
|
100
|
-
return timeTaken(this.startTick);
|
|
101
|
-
}
|
|
102
|
-
getStartTick() {
|
|
103
|
-
return startTick();
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=StateMachine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StateMachine.js","sourceRoot":"","sources":["../../src/assert-order/StateMachine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assert-order/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=interfaces.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/assert-order/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import AssertionError from 'assertion-error';
|
|
2
|
-
import { falsy } from './falsy';
|
|
3
|
-
import { pathEqual } from './pathEqual';
|
|
4
|
-
import { rejects } from './rejects';
|
|
5
|
-
import { repeat } from './repeat';
|
|
6
|
-
import { resolves } from './resolves';
|
|
7
|
-
import { satisfies } from './satisfies';
|
|
8
|
-
import { throws } from './throws';
|
|
9
|
-
import { truthy } from './truthy';
|
|
10
|
-
export const assertron = {
|
|
11
|
-
false(value) {
|
|
12
|
-
if (value !== false)
|
|
13
|
-
throw new AssertionError(`Expected value to equal false, but received ${value}`, { value }, assertron.false);
|
|
14
|
-
},
|
|
15
|
-
falsy,
|
|
16
|
-
pathEqual,
|
|
17
|
-
rejects,
|
|
18
|
-
repeat,
|
|
19
|
-
resolves,
|
|
20
|
-
satisfies,
|
|
21
|
-
throws,
|
|
22
|
-
true(value) {
|
|
23
|
-
if (value !== true)
|
|
24
|
-
throw new AssertionError(`Expected value to equal true, but received ${value}`, { value }, assertron.true);
|
|
25
|
-
},
|
|
26
|
-
truthy
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=assertron.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assertron.js","sourceRoot":"","sources":["../../src/assertron/assertron.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,CAAC,KAAU;QACd,IAAI,KAAK,KAAK,KAAK;YACjB,MAAM,IAAI,cAAc,CACtB,+CAA+C,KAAK,EAAE,EACtD,EAAE,KAAK,EAAE,EACT,SAAS,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;IACD,KAAK;IACL,SAAS;IACT,OAAO;IACP,MAAM;IACN,QAAQ;IACR,SAAS;IACT,MAAM;IACN,IAAI,CAAC,KAAU;QACb,IAAI,KAAK,KAAK,IAAI;YAAE,MAAM,IAAI,cAAc,CAAC,8CAA8C,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;IAChI,CAAC;IACD,MAAM;CACP,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"falsy.js","sourceRoot":"","sources":["../../src/assertron/falsy.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAE5C,MAAM,UAAU,KAAK,CAAC,KAAU;IAC9B,IAAI,KAAK;QACP,MAAM,IAAI,cAAc,CACtB,4CAA4C,KAAK,EAAE,EACnD,EAAE,KAAK,EAAE,EACT,KAAK,CACN,CAAA;AACL,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './assertron';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assertron/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import AssertionError from 'assertion-error';
|
|
2
|
-
import { pathEqual as isPathEqual } from 'path-equal';
|
|
3
|
-
import { notEqualMessage } from '../errors';
|
|
4
|
-
export function pathEqual(actual, expected) {
|
|
5
|
-
if (!isPathEqual(actual, expected))
|
|
6
|
-
throw new AssertionError(notEqualMessage(actual, expected), { actual, expected }, pathEqual);
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=pathEqual.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pathEqual.js","sourceRoot":"","sources":["../../src/assertron/pathEqual.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,QAAgB;IACxD,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC;QAChC,MAAM,IAAI,cAAc,CACtB,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,EACjC,EAAE,MAAM,EAAE,QAAQ,EAAE,EACpB,SAAS,CAAC,CAAA;AAChB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { tersify } from 'tersify';
|
|
2
|
-
import AssertionError from 'assertion-error';
|
|
3
|
-
export function rejects(promise) {
|
|
4
|
-
return promise.then(value => {
|
|
5
|
-
throw new AssertionError(`Expected promise to reject, but it resolves with ${typeof value === 'string' ?
|
|
6
|
-
`'${value}'` :
|
|
7
|
-
tersify(value, { maxLength: Infinity })}`, { value }, rejects);
|
|
8
|
-
}, () => { });
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=rejects.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rejects.js","sourceRoot":"","sources":["../../src/assertron/rejects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C,MAAM,UAAU,OAAO,CAAC,OAAqB;IAC3C,OAAO,OAAO,CAAC,IAAI,CACjB,KAAK,CAAC,EAAE;QACN,MAAM,IAAI,cAAc,CACtB,oDACA,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;YACzB,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,EAC3C,EAAE,KAAK,EAAE,EACT,OAAO,CAAC,CAAA;IACZ,CAAC,EACD,GAAG,EAAE,GAAG,CAAC,CACV,CAAA;AACH,CAAC"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import isPromise from 'is-promise';
|
|
2
|
-
import AssertionError from 'assertion-error';
|
|
3
|
-
/**
|
|
4
|
-
* Repeat the specified function n times and return the last result.
|
|
5
|
-
* If the result is a promise, it will run the function sequentially.
|
|
6
|
-
*/
|
|
7
|
-
export function repeat(fn, times) {
|
|
8
|
-
return repeatRecur(fn, 1, times);
|
|
9
|
-
}
|
|
10
|
-
function repeatRecur(fn, i, times) {
|
|
11
|
-
try {
|
|
12
|
-
const result = fn();
|
|
13
|
-
if (i === times)
|
|
14
|
-
return result;
|
|
15
|
-
if (isPromise(result)) {
|
|
16
|
-
return result.then(() => repeatRecur(fn, i + 1, times), (e) => { throw new FailOnOccurance(i, e); });
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
return repeatRecur(fn, i + 1, times);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
catch (e) {
|
|
23
|
-
if (e instanceof FailOnOccurance)
|
|
24
|
-
throw e;
|
|
25
|
-
throw new FailOnOccurance(i, e);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
export class FailOnOccurance extends AssertionError {
|
|
29
|
-
constructor(occurance, error) {
|
|
30
|
-
super(`Failed on ${occurance} occurance`);
|
|
31
|
-
this.occurance = occurance;
|
|
32
|
-
this.error = error;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=repeat.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repeat.js","sourceRoot":"","sources":["../../src/assertron/repeat.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,cAAc,MAAM,iBAAiB,CAAA;AAE5C;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAI,EAAgC,EAAE,KAAa;IACvE,OAAO,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,WAAW,CAAI,EAAgC,EAAE,CAAS,EAAE,KAAa;IAChF,IAAI;QACF,MAAM,MAAM,GAAG,EAAE,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,KAAK;YAAE,OAAO,MAAa,CAAA;QAErC,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;YACrB,OAAO,MAAM,CAAC,IAAI,CAChB,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EACnC,CAAC,CAAC,EAAE,EAAE,GAAG,MAAM,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CACpC,CAAA;SACT;aACI;YACH,OAAO,WAAW,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;SACrC;KACF;IACD,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,YAAY,eAAe;YAAE,MAAM,CAAC,CAAA;QACzC,MAAM,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;KAChC;AACH,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACjD,YAAmB,SAAiB,EAAS,KAAU;QACrD,KAAK,CAAC,aAAa,SAAS,YAAY,CAAC,CAAA;QADxB,cAAS,GAAT,SAAS,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAK;IAEvD,CAAC;CACF"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { tersify } from 'tersify';
|
|
2
|
-
import AssertionError from 'assertion-error';
|
|
3
|
-
export function resolves(promise) {
|
|
4
|
-
return promise.then(() => { }, error => {
|
|
5
|
-
throw new AssertionError(`Expected promise to resolve, but it rejects with ${typeof error === 'string' ?
|
|
6
|
-
`'${error}'` :
|
|
7
|
-
error instanceof Error ?
|
|
8
|
-
error :
|
|
9
|
-
tersify(error, { maxLength: Infinity })}`, { error }, resolves);
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=resolves.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolves.js","sourceRoot":"","sources":["../../src/assertron/resolves.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C,MAAM,UAAU,QAAQ,CAAC,OAAqB;IAC5C,OAAO,OAAO,CAAC,IAAI,CACjB,GAAG,EAAE,GAAG,CAAC,EACT,KAAK,CAAC,EAAE;QACN,MAAM,IAAI,cAAc,CAAC,oDACvB,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;YACzB,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,KAAK,YAAY,KAAK,CAAC,CAAC;gBACtB,KAAK,CAAC,CAAC;gBACP,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,EAC7C,EAAE,KAAK,EAAE,EACT,QAAQ,CACT,CAAA;IACH,CAAC,CACF,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Check if `actual` satisfies criteria in `expected`.
|
|
3
|
-
* @param expected All properties can be a value which will be compared to the same property in `actual`, RegExp, or a predicate function that will be used to check against the property.
|
|
4
|
-
*/
|
|
5
|
-
export declare function satisfies<Actual extends any>(actual: Actual, expected: any): void;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import AssertionError from 'assertion-error';
|
|
2
|
-
import { createSatisfier } from 'satisfier';
|
|
3
|
-
import { notSatisfiedMessage } from '../errors';
|
|
4
|
-
/**
|
|
5
|
-
* Check if `actual` satisfies criteria in `expected`.
|
|
6
|
-
* @param expected All properties can be a value which will be compared to the same property in `actual`, RegExp, or a predicate function that will be used to check against the property.
|
|
7
|
-
*/
|
|
8
|
-
export function satisfies(actual, expected) {
|
|
9
|
-
const diff = createSatisfier(expected).exec(actual);
|
|
10
|
-
if (diff) {
|
|
11
|
-
throw new AssertionError(notSatisfiedMessage(diff), { diff }, satisfies);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=satisfies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"satisfies.js","sourceRoot":"","sources":["../../src/assertron/satisfies.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAqB,MAAc,EAAE,QAAa;IACzE,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,IAAI,EAAE;QACR,MAAM,IAAI,cAAc,CACtB,mBAAmB,CAAC,IAAI,CAAC,EACzB,EAAE,IAAI,EAAE,EACR,SAAS,CACV,CAAA;KACF;AACH,CAAC"}
|