@plugjs/expect5 0.4.2 → 0.4.3
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/cli.mjs +1 -1
- package/dist/expectation/async.cjs +73 -0
- package/dist/expectation/async.cjs.map +6 -0
- package/dist/expectation/async.d.ts +54 -0
- package/dist/expectation/async.mjs +46 -0
- package/dist/expectation/async.mjs.map +6 -0
- package/dist/expectation/basic.cjs +155 -183
- package/dist/expectation/basic.cjs.map +1 -1
- package/dist/expectation/basic.d.ts +90 -47
- package/dist/expectation/basic.mjs +142 -163
- package/dist/expectation/basic.mjs.map +1 -1
- package/dist/expectation/diff.cjs +7 -7
- package/dist/expectation/diff.cjs.map +1 -1
- package/dist/expectation/diff.mjs +7 -7
- package/dist/expectation/diff.mjs.map +1 -1
- package/dist/expectation/expect.cjs +94 -108
- package/dist/expectation/expect.cjs.map +2 -2
- package/dist/expectation/expect.d.ts +103 -130
- package/dist/expectation/expect.mjs +131 -137
- package/dist/expectation/expect.mjs.map +2 -2
- package/dist/expectation/include.cjs +50 -61
- package/dist/expectation/include.cjs.map +1 -1
- package/dist/expectation/include.d.ts +19 -10
- package/dist/expectation/include.mjs +53 -57
- package/dist/expectation/include.mjs.map +1 -1
- package/dist/expectation/throwing.cjs +27 -27
- package/dist/expectation/throwing.cjs.map +1 -1
- package/dist/expectation/throwing.d.ts +36 -8
- package/dist/expectation/throwing.mjs +26 -26
- package/dist/expectation/throwing.mjs.map +1 -1
- package/dist/expectation/trivial.cjs +96 -0
- package/dist/expectation/trivial.cjs.map +6 -0
- package/dist/expectation/trivial.d.ts +13 -0
- package/dist/expectation/trivial.mjs +61 -0
- package/dist/expectation/trivial.mjs.map +6 -0
- package/dist/expectation/types.cjs +9 -12
- package/dist/expectation/types.cjs.map +1 -1
- package/dist/expectation/types.d.ts +52 -10
- package/dist/expectation/types.mjs +8 -10
- package/dist/expectation/types.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/expectation/async.ts +151 -0
- package/src/expectation/basic.ts +356 -156
- package/src/expectation/diff.ts +8 -9
- package/src/expectation/expect.ts +239 -268
- package/src/expectation/include.ts +93 -59
- package/src/expectation/throwing.ts +102 -41
- package/src/expectation/trivial.ts +107 -0
- package/src/expectation/types.ts +82 -25
- package/src/index.ts +2 -0
- package/dist/expectation/void.cjs +0 -111
- package/dist/expectation/void.cjs.map +0 -6
- package/dist/expectation/void.d.ts +0 -39
- package/dist/expectation/void.mjs +0 -77
- package/dist/expectation/void.mjs.map +0 -6
- package/src/expectation/void.ts +0 -80
|
@@ -1,47 +1,90 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
1
|
+
import type { Expectations } from './expect';
|
|
2
|
+
import type { AssertedType, AssertionFunction, Constructor, JoinExpectations, TypeMappings, TypeName } from './types';
|
|
3
|
+
/** Expects the value to be of the specified {@link TypeName type}. */
|
|
4
|
+
declare function toBeA<T extends TypeName>(type: T): Expectations<TypeMappings[T]>;
|
|
5
|
+
/**
|
|
6
|
+
* Expects the value to be of the specified {@link TypeName type}, and further
|
|
7
|
+
* asserts it with the specified callback.
|
|
8
|
+
*/
|
|
9
|
+
declare function toBeA<T extends TypeName>(type: T, assert: (valueExpectations: Expectations) => void): Expectations<TypeMappings[T]>;
|
|
10
|
+
/**
|
|
11
|
+
* Expects the value to be a `number` within a given +/- delta range of the
|
|
12
|
+
* specified `number`.
|
|
13
|
+
*/
|
|
14
|
+
declare function toBeCloseTo(value: number, delta: number): Expectations<number>;
|
|
15
|
+
/**
|
|
16
|
+
* Expects the value to be a a `bigint` within a given +/- delta range of the
|
|
17
|
+
* specified `bigint`.
|
|
18
|
+
*/
|
|
19
|
+
declare function toBeCloseTo(value: bigint, delta: bigint): Expectations<bigint>;
|
|
20
|
+
/** Expects the value to be an {@link Error}. */
|
|
21
|
+
declare function toBeError(): Expectations<Error>;
|
|
22
|
+
/** Expects the value to be an {@link Error} with the specified message. */
|
|
23
|
+
declare function toBeError(message: string): Expectations<Error>;
|
|
24
|
+
/**
|
|
25
|
+
* Expects the value to be an {@link Error} with its message matching the
|
|
26
|
+
* specified {@link RegExp}.
|
|
27
|
+
*/
|
|
28
|
+
declare function toBeError(matcher: RegExp): Expectations<Error>;
|
|
29
|
+
/** Expects the value to be an {@link Error} of the specified _type_. */
|
|
30
|
+
declare function toBeError<C extends Constructor<Error>>(constructor: C): Expectations<InstanceType<C>>;
|
|
31
|
+
/**
|
|
32
|
+
* Expects the value to be an {@link Error} of the specified _type_ with the
|
|
33
|
+
* specified message
|
|
34
|
+
*/
|
|
35
|
+
declare function toBeError<C extends Constructor<Error>>(constructor: C, message: string): Expectations<InstanceType<C>>;
|
|
36
|
+
/**
|
|
37
|
+
* Expects the value to be an {@link Error} of the specified _type_ with the
|
|
38
|
+
* specified message
|
|
39
|
+
*/
|
|
40
|
+
declare function toBeError<C extends Constructor<Error>>(constructor: C, matcher: RegExp): Expectations<InstanceType<C>>;
|
|
41
|
+
/** Expects the value to be a `number` greater than the specified `number`. */
|
|
42
|
+
declare function toBeGreaterThan(value: number): Expectations<number>;
|
|
43
|
+
/** Expects the value to be a `bigint` greater than the specified `bigint`. */
|
|
44
|
+
declare function toBeGreaterThan(value: bigint): Expectations<bigint>;
|
|
45
|
+
/** Expects the value to be a `number` greater than or equal to the specified `number`. */
|
|
46
|
+
declare function toBeGreaterThanOrEqual(value: number): Expectations<number>;
|
|
47
|
+
/** Expects the value to be a `bigint` greater than or equal to the specified `bigint`. */
|
|
48
|
+
declare function toBeGreaterThanOrEqual(value: bigint): Expectations<bigint>;
|
|
49
|
+
/** Expects the value to be an instance of the specified _type_. */
|
|
50
|
+
declare function toBeInstanceOf<C extends Constructor>(value: C): Expectations<InstanceType<C>>;
|
|
51
|
+
/** Expects the value to be a `number` less than the specified `number`. */
|
|
52
|
+
declare function toBeLessThan(value: number): Expectations<number>;
|
|
53
|
+
/** Expects the value to be a `bigint` less than the specified `bigint`. */
|
|
54
|
+
declare function toBeLessThan(value: bigint): Expectations<bigint>;
|
|
55
|
+
/** Expects the value to be a `number` less than or equal to the specified `number`. */
|
|
56
|
+
declare function toBeLessThanOrEqual(value: number): Expectations<number>;
|
|
57
|
+
/** Expects the value to be a `bigint` less than or equal to the specified `bigint`. */
|
|
58
|
+
declare function toBeLessThanOrEqual(value: bigint): Expectations<bigint>;
|
|
59
|
+
/** Expects the value to be a `number` within the specified range (inclusive). */
|
|
60
|
+
declare function toBeWithinRange(min: number, max: number): Expectations<number>;
|
|
61
|
+
/** Expects the value to be a `bigint` within the specified range (inclusive). */
|
|
62
|
+
declare function toBeWithinRange(min: bigint, max: bigint): Expectations<bigint>;
|
|
63
|
+
/** Expects the value to _deeply equal_ to the specified expected value. */
|
|
64
|
+
declare function toEqual<T>(expected: T): Expectations<T>;
|
|
65
|
+
/** Expects the value to have a numerical `length` property with the specified value. */
|
|
66
|
+
declare function toHaveLength<T, N extends number>(this: T, length: N): JoinExpectations<T, {
|
|
67
|
+
length: N;
|
|
68
|
+
}>;
|
|
69
|
+
/** Expects the value to have a property. */
|
|
70
|
+
declare function toHaveProperty<T, P extends string | number | symbol, A extends AssertionFunction>(this: T, prop: P): JoinExpectations<T, {
|
|
71
|
+
[key in P]: AssertedType<A>;
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* Expects the value to have a property, and further asserts the property
|
|
75
|
+
* value with the specified callback.
|
|
76
|
+
*/
|
|
77
|
+
declare function toHaveProperty<T, P extends string | number | symbol, A extends AssertionFunction>(this: T, prop: P, assert: A): JoinExpectations<T, {
|
|
78
|
+
[key in P]: AssertedType<A>;
|
|
79
|
+
}>;
|
|
80
|
+
/** Expects the value to have a numerical `size` property with the specified value. */
|
|
81
|
+
declare function toHaveSize<T, N extends number>(this: T, size: N): JoinExpectations<T, {
|
|
82
|
+
size: N;
|
|
83
|
+
}>;
|
|
84
|
+
/** Expects the value to be a `string` _matching_ the specified substring. */
|
|
85
|
+
declare function toMatch(substring: string): Expectations<string>;
|
|
86
|
+
/** Expects the value to be a `string` _matching_ the specified {@link RegExp}. */
|
|
87
|
+
declare function toMatch(expression: RegExp): Expectations<string>;
|
|
88
|
+
/** Expects the value to _strictly equal_ to the specified expected value. */
|
|
89
|
+
declare function toStrictlyEqual<T>(expected: T): Expectations<T>;
|
|
90
|
+
export { toBeA, toBeCloseTo, toBeError, toBeGreaterThan, toBeGreaterThanOrEqual, toBeInstanceOf, toBeLessThan, toBeLessThanOrEqual, toBeWithinRange, toEqual, toHaveLength, toHaveProperty, toHaveSize, toMatch, toStrictlyEqual, };
|
|
@@ -1,177 +1,156 @@
|
|
|
1
1
|
// expectation/basic.ts
|
|
2
2
|
import { diff } from "./diff.mjs";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
import {
|
|
4
|
+
assertContextType,
|
|
5
|
+
ExpectationError,
|
|
6
|
+
prefixType,
|
|
7
|
+
stringifyConstructor,
|
|
8
|
+
stringifyValue,
|
|
9
|
+
typeOf
|
|
10
|
+
} from "./types.mjs";
|
|
11
|
+
function toBeA(type, assert) {
|
|
12
|
+
const match = typeOf(this.value) === type;
|
|
13
|
+
if (match === this.negative) {
|
|
14
|
+
throw new ExpectationError(this, `to be ${prefixType(type)}`);
|
|
15
|
+
} else if (assert) {
|
|
16
|
+
assert(this.expects);
|
|
10
17
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
throw new ExpectationError(context, negative, `to be less than ${stringifyValue(value)}`);
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
var ToBeLessThanOrEqual = class {
|
|
67
|
-
expect(context, negative, value) {
|
|
68
|
-
assertType(context, typeof value);
|
|
69
|
-
if (context.value <= value !== negative)
|
|
70
|
-
return;
|
|
71
|
-
throw new ExpectationError(context, negative, `to be less than or equal to ${stringifyValue(value)}`);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
var ToBeWithinRange = class {
|
|
75
|
-
expect(context, negative, ...[min, max]) {
|
|
76
|
-
if (max < min) {
|
|
77
|
-
const num = max;
|
|
78
|
-
max = min;
|
|
79
|
-
min = num;
|
|
80
|
-
}
|
|
81
|
-
assertType(context, typeof min);
|
|
82
|
-
if ((context.value >= min && context.value <= max) !== negative)
|
|
83
|
-
return;
|
|
84
|
-
throw new ExpectationError(context, negative, `to be within ${stringifyValue(min)}...${stringifyValue(max)}`);
|
|
18
|
+
return this.expects;
|
|
19
|
+
}
|
|
20
|
+
function toBeCloseTo(value, delta) {
|
|
21
|
+
const min = value - delta;
|
|
22
|
+
const max = value + delta;
|
|
23
|
+
return this.negated.toBeWithinRange(min, max);
|
|
24
|
+
}
|
|
25
|
+
function toBeError(...args) {
|
|
26
|
+
const [constructor, message] = typeof args[0] === "function" ? [args[0], args[1]] : [Error, args[0]];
|
|
27
|
+
this.negated.toBeInstanceOf(constructor);
|
|
28
|
+
if (this.negative || message === void 0)
|
|
29
|
+
return this.expects;
|
|
30
|
+
return this.expects.toHaveProperty("message", (assert) => {
|
|
31
|
+
assert.toBeA("string");
|
|
32
|
+
return typeof message === "string" ? assert.toStrictlyEqual(message) : assert.toMatch(message);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function toBeGreaterThan(value) {
|
|
36
|
+
assertContextType(this, typeof value);
|
|
37
|
+
if (this.value > value !== this.negative)
|
|
38
|
+
return this.expects;
|
|
39
|
+
throw new ExpectationError(this, `to be greater than ${stringifyValue(value)}`);
|
|
40
|
+
}
|
|
41
|
+
function toBeGreaterThanOrEqual(value) {
|
|
42
|
+
assertContextType(this, typeof value);
|
|
43
|
+
if (this.value >= value !== this.negative)
|
|
44
|
+
return this.expects;
|
|
45
|
+
throw new ExpectationError(this, `to be greater than or equal to ${stringifyValue(value)}`);
|
|
46
|
+
}
|
|
47
|
+
function toBeInstanceOf(value) {
|
|
48
|
+
const match = this.value instanceof value;
|
|
49
|
+
if (match !== this.negative)
|
|
50
|
+
return this.expects;
|
|
51
|
+
throw new ExpectationError(this, `to be an instance of ${stringifyConstructor(value)}`);
|
|
52
|
+
}
|
|
53
|
+
function toBeLessThan(value) {
|
|
54
|
+
assertContextType(this, typeof value);
|
|
55
|
+
if (this.value < value !== this.negative)
|
|
56
|
+
return this.expects;
|
|
57
|
+
throw new ExpectationError(this, `to be less than ${stringifyValue(value)}`);
|
|
58
|
+
}
|
|
59
|
+
function toBeLessThanOrEqual(value) {
|
|
60
|
+
assertContextType(this, typeof value);
|
|
61
|
+
if (this.value <= value !== this.negative)
|
|
62
|
+
return this.expects;
|
|
63
|
+
throw new ExpectationError(this, `to be less than or equal to ${stringifyValue(value)}`);
|
|
64
|
+
}
|
|
65
|
+
function toBeWithinRange(min, max) {
|
|
66
|
+
if (max < min) {
|
|
67
|
+
const num = max;
|
|
68
|
+
max = min;
|
|
69
|
+
min = num;
|
|
85
70
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
71
|
+
assertContextType(this, typeof min);
|
|
72
|
+
if ((this.value >= min && this.value <= max) !== this.negative)
|
|
73
|
+
return this.expects;
|
|
74
|
+
throw new ExpectationError(this, `to be within ${stringifyValue(min)}...${stringifyValue(max)}`);
|
|
75
|
+
}
|
|
76
|
+
function toEqual(expected) {
|
|
77
|
+
const result = diff(this.value, expected);
|
|
78
|
+
if (result.diff === this.negative)
|
|
79
|
+
return this.expects;
|
|
80
|
+
throw new ExpectationError(this, `to equal ${stringifyValue(expected)}`, result);
|
|
81
|
+
}
|
|
82
|
+
function toHaveLength(length) {
|
|
83
|
+
this.expects.toBeDefined();
|
|
84
|
+
const actualLength = this.value.length;
|
|
85
|
+
if (typeof actualLength !== "number") {
|
|
86
|
+
throw new ExpectationError(this, 'to have a numeric "length" property', false);
|
|
93
87
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
expect(context, negative, length) {
|
|
97
|
-
context.toBeDefined();
|
|
98
|
-
const actualLength = context.value.length;
|
|
99
|
-
if (typeof actualLength !== "number") {
|
|
100
|
-
throw new ExpectationError(context, false, 'to have a numeric "length" property');
|
|
101
|
-
}
|
|
102
|
-
if (actualLength === length === negative) {
|
|
103
|
-
throw new ExpectationError(context, negative, `to have length ${stringifyValue(length)}`);
|
|
104
|
-
}
|
|
88
|
+
if (actualLength === length === this.negative) {
|
|
89
|
+
throw new ExpectationError(this, `to have length ${stringifyValue(length)}`);
|
|
105
90
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
throw error;
|
|
91
|
+
return this.expects;
|
|
92
|
+
}
|
|
93
|
+
function toHaveProperty(prop, assert) {
|
|
94
|
+
this.expects.toBeDefined();
|
|
95
|
+
const match = this.value[prop] !== void 0;
|
|
96
|
+
if (match === this.negative) {
|
|
97
|
+
throw new ExpectationError(this, `to have property "${String(prop)}"`);
|
|
98
|
+
} else if (match && assert) {
|
|
99
|
+
try {
|
|
100
|
+
assert(this.forProperty(prop));
|
|
101
|
+
} catch (error) {
|
|
102
|
+
if (error instanceof ExpectationError && error.diff) {
|
|
103
|
+
error.diff = {
|
|
104
|
+
diff: true,
|
|
105
|
+
value: this.value,
|
|
106
|
+
props: { [prop]: error.diff }
|
|
107
|
+
};
|
|
125
108
|
}
|
|
109
|
+
throw error;
|
|
126
110
|
}
|
|
127
111
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
if (actualSize === size === negative) {
|
|
137
|
-
throw new ExpectationError(context, negative, `to have size ${stringifyValue(size)}`);
|
|
138
|
-
}
|
|
112
|
+
return this.expects;
|
|
113
|
+
}
|
|
114
|
+
function toHaveSize(size) {
|
|
115
|
+
this.expects.toBeDefined();
|
|
116
|
+
const actualSize = this.value.size;
|
|
117
|
+
if (typeof actualSize !== "number") {
|
|
118
|
+
throw new ExpectationError(this, 'to have a numeric "size" property', false);
|
|
139
119
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
expect(context, negative, expr) {
|
|
143
|
-
assertType(context, "string");
|
|
144
|
-
const match = !!context.value.match(expr);
|
|
145
|
-
if (match !== negative)
|
|
146
|
-
return;
|
|
147
|
-
throw new ExpectationError(context, negative, `to match ${stringifyValue(expr)}`);
|
|
120
|
+
if (actualSize === size === this.negative) {
|
|
121
|
+
throw new ExpectationError(this, `to have size ${stringifyValue(size)}`);
|
|
148
122
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
123
|
+
return this.expects;
|
|
124
|
+
}
|
|
125
|
+
function toMatch(expr) {
|
|
126
|
+
assertContextType(this, "string");
|
|
127
|
+
const match = !!this.value.match(expr);
|
|
128
|
+
if (match !== this.negative)
|
|
129
|
+
return this.expects;
|
|
130
|
+
throw new ExpectationError(this, `to match ${stringifyValue(expr)}`);
|
|
131
|
+
}
|
|
132
|
+
function toStrictlyEqual(expected) {
|
|
133
|
+
const match = this.value === expected;
|
|
134
|
+
if (match !== this.negative)
|
|
135
|
+
return this.expects;
|
|
136
|
+
const diff2 = this.negative ? void 0 : { diff: true, value: this.value, expected };
|
|
137
|
+
throw new ExpectationError(this, `to strictly equal ${stringifyValue(expected)}`, diff2);
|
|
138
|
+
}
|
|
160
139
|
export {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
140
|
+
toBeA,
|
|
141
|
+
toBeCloseTo,
|
|
142
|
+
toBeError,
|
|
143
|
+
toBeGreaterThan,
|
|
144
|
+
toBeGreaterThanOrEqual,
|
|
145
|
+
toBeInstanceOf,
|
|
146
|
+
toBeLessThan,
|
|
147
|
+
toBeLessThanOrEqual,
|
|
148
|
+
toBeWithinRange,
|
|
149
|
+
toEqual,
|
|
150
|
+
toHaveLength,
|
|
151
|
+
toHaveProperty,
|
|
152
|
+
toHaveSize,
|
|
153
|
+
toMatch,
|
|
154
|
+
toStrictlyEqual
|
|
176
155
|
};
|
|
177
156
|
//# sourceMappingURL=basic.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/expectation/basic.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,YAAY;AACrB,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["diff"]
|
|
6
6
|
}
|
|
@@ -38,13 +38,13 @@ function objectDiff(actual, expected, remarks, keys) {
|
|
|
38
38
|
for (const key of keys) {
|
|
39
39
|
const act = actual[key];
|
|
40
40
|
const exp = expected[key];
|
|
41
|
-
let result
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
41
|
+
let result;
|
|
42
|
+
if (key in expected && !(key in actual)) {
|
|
43
|
+
result = { diff: true, missing: exp };
|
|
44
|
+
} else if (key in actual && !(key in expected)) {
|
|
45
|
+
result = { diff: true, extra: act };
|
|
46
|
+
} else {
|
|
47
|
+
result = diffValues(act, exp, remarks);
|
|
48
48
|
}
|
|
49
49
|
props[key] = result;
|
|
50
50
|
diff2 ||= result.diff;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/expectation/diff.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAkF;AAoDlF,SAAS,UAAU,OAAY,SAA4B;AACzD,QAAM,QAAQ,gBAAY,6BAAe,KAAK,KAAK;AACnD,SAAO,EAAE,MAAM,MAAM,OAAO,MAAM;AACpC;AAIA,SAAS,WACL,QACA,UACA,SACA,MACsB;AAExB,MAAI,CAAE;AAAM,WAAO,oBAAI,IAAI,CAAE,GAAG,OAAO,KAAK,MAAM,GAAG,GAAG,OAAO,KAAK,QAAQ,CAAE,CAAC;AAG/E,MAAI,CAAE,KAAK;AAAM,WAAO,EAAE,MAAM,OAAO,OAAO,OAAO;AAGrD,MAAIA,QAAO;AACX,QAAM,QAA8B,CAAC;AACrC,aAAW,OAAO,MAAM;AACtB,UAAM,MAAM,OAAO,GAAG;AACtB,UAAM,MAAM,SAAS,GAAG;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAkF;AAoDlF,SAAS,UAAU,OAAY,SAA4B;AACzD,QAAM,QAAQ,gBAAY,6BAAe,KAAK,KAAK;AACnD,SAAO,EAAE,MAAM,MAAM,OAAO,MAAM;AACpC;AAIA,SAAS,WACL,QACA,UACA,SACA,MACsB;AAExB,MAAI,CAAE;AAAM,WAAO,oBAAI,IAAI,CAAE,GAAG,OAAO,KAAK,MAAM,GAAG,GAAG,OAAO,KAAK,QAAQ,CAAE,CAAC;AAG/E,MAAI,CAAE,KAAK;AAAM,WAAO,EAAE,MAAM,OAAO,OAAO,OAAO;AAGrD,MAAIA,QAAO;AACX,QAAM,QAA8B,CAAC;AACrC,aAAW,OAAO,MAAM;AACtB,UAAM,MAAM,OAAO,GAAG;AACtB,UAAM,MAAM,SAAS,GAAG;AAGxB,QAAI;AACJ,QAAK,OAAO,YAAc,EAAE,OAAO,SAAU;AAC3C,eAAS,EAAE,MAAM,MAAM,SAAS,IAAI;AAAA,IACtC,WAAY,OAAO,UAAY,EAAE,OAAO,WAAY;AAClD,eAAS,EAAE,MAAM,MAAM,OAAO,IAAI;AAAA,IACpC,OAAO;AACL,eAAS,WAAW,KAAK,KAAK,OAAO;AAAA,IACvC;AAEA,UAAM,GAAG,IAAI;AACb,IAAAA,UAAS,OAAO;AAAA,EAClB;AAGA,SAAO,EAAE,MAAAA,OAAM,OAAO,QAAQ,MAAM;AACtC;AAIA,SAAS,UACL,QACA,UACA,SACU;AAEZ,MAAI,OAAO,WAAW,SAAS,QAAQ;AACrC,WAAO,UAAU,QAAQ,kBAAkB,SAAS,kBAAkB,OAAO,SAAS;AAAA,EACxF;AAGA,QAAM,OAAO,oBAAI,IAAI,CAAE,GAAG,OAAO,KAAK,QAAQ,GAAG,GAAG,OAAO,KAAK,MAAM,CAAE,CAAC;AAIzE,MAAI,aAAa;AACjB,QAAM,SAAS,IAAI,MAAY,SAAS,MAAM;AAC9C,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAM;AACzC,UAAMC,UAAS,OAAO,CAAC,IAAI,WAAW,OAAO,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO;AACrE,iBAAa,cAAcA,QAAO;AAClC,SAAK,OAAO,OAAO,CAAC,CAAC;AAAA,EACvB;AAGA,QAAM,SAAS,WAAW,QAAQ,UAAU,SAAS,IAAI;AACzD,QAAMD,QAAO,OAAO,QAAQ;AAG5B,SAAO,EAAE,GAAG,QAAQ,MAAAA,OAAM,OAAO;AACnC;AAIA,SAAS,QACL,QACA,UACA,SACU;AAGZ,QAAM,QAAQ,OAAO,SAAS,SAAS,OAAO,CAAC,IAC7C,UAAU,QAAQ,gBAAgB,SAAS,cAAc,OAAO,OAAO;AAGzE,QAAM,SAAiB,CAAC;AACxB,QAAM,UAAU,IAAI,IAAO,QAAQ;AACnC,QAAM,QAAQ,IAAI,IAAO,MAAM;AAE/B,aAAW,OAAO,OAAO;AACvB,eAAW,OAAO,SAAS;AACzB,YAAMA,QAAO,WAAW,KAAK,KAAK,OAAO;AACzC,UAAIA,MAAK;AAAM;AAEf,aAAO,KAAKA,KAAI;AAChB,YAAM,OAAO,GAAG;AAChB,cAAQ,OAAO,GAAG;AAAA,IACpB;AAAA,EACF;AAGA,QAAM,SAAS,WAAW,QAAQ,UAAU,OAAO;AACnD,QAAMA,QAAO,CAAC,EAAG,QAAQ,QAAQ,MAAM,QAAQ,OAAO;AAGtD,QAAM,QAAQ,CAAC,UAAU,OAAO,KAAK,EAAE,MAAM,MAAM,OAAO,MAAM,CAAC,CAAC;AAClE,UAAQ,QAAQ,CAAC,UAAU,OAAO,KAAK,EAAE,MAAM,MAAM,SAAS,MAAM,CAAC,CAAC;AAGtE,SAAO,EAAE,GAAG,OAAO,GAAG,QAAQ,MAAAA,OAAM,OAAO;AAC7C;AAIA,SAAS,QACL,QACA,UACA,SACU;AAEZ,MAAIA,QAAO;AACX,QAAM,WAA4B,CAAC;AACnC,aAAW,OAAO,oBAAI,IAAI,CAAE,GAAG,OAAO,KAAK,GAAG,GAAG,SAAS,KAAK,CAAE,CAAC,GAAG;AACnE,UAAM,MAAM,OAAO,IAAI,GAAG;AAC1B,UAAM,MAAM,SAAS,IAAI,GAAG;AAE5B,QAAI,CAAE,OAAO,IAAI,GAAG,GAAG;AACrB,eAAS,KAAK,CAAE,KAAK,EAAE,MAAM,MAAM,SAAS,IAAI,CAAE,CAAC;AACnD,MAAAA,QAAO;AAAA,IACT,WAAW,CAAE,SAAS,IAAI,GAAG,GAAG;AAC9B,eAAS,KAAK,CAAE,KAAK,EAAE,MAAM,MAAM,OAAO,IAAI,CAAE,CAAC;AACjD,MAAAA,QAAO;AAAA,IACT,OAAO;AACL,YAAMC,UAAS,WAAW,KAAK,KAAK,OAAO;AAC3C,eAAS,KAAK,CAAE,KAAKA,OAAO,CAAC;AAC7B,MAAAD,QAAOA,SAAQC,QAAO;AAAA,IACxB;AAAA,EACF;AAGA,QAAM,SAAS,WAAW,QAAQ,UAAU,OAAO;AACnD,EAAAD,QAAOA,SAAQ,OAAO;AAGtB,SAAO,EAAE,GAAG,QAAQ,MAAAA,OAAM,SAAS;AACrC;AAIA,SAAS,WACL,QACA,UACA,YACA,cACA,SACsB;AAExB,MAAI,WAAW,WAAW,aAAa,QAAQ;AAC7C,WAAO,UAAU,QAAQ,kBAAkB,aAAa,kBAAkB,WAAW,SAAS;AAAA,EAChG;AAGA,QAAM,OAAO,oBAAI,IAAI,CAAE,GAAG,OAAO,KAAK,QAAQ,GAAG,GAAG,OAAO,KAAK,MAAM,CAAE,CAAC;AAGzE,QAAM,SAAS,aAAa;AAC5B,WAAS,IAAI,GAAG,IAAI,QAAQ,KAAM;AAChC,SAAK,OAAO,OAAO,CAAC,CAAC;AACrB,QAAI,WAAW,CAAC,MAAM,aAAa,CAAC;AAAG;AAEvC,QAAI,MAAM,WAAW,SAAS,OAAO,GAAG,IAAI,CAAC;AAC7C,QAAI,MAAM,aAAa,SAAS,OAAO,GAAG,IAAI,CAAC;AAC/C,QAAI,IAAI,SAAS,IAAI;AACnB,YAAM,IAAI,UAAU,GAAG,EAAE,IAAI;AAC7B,YAAM,IAAI,UAAU,GAAG,EAAE,IAAI;AAAA,IAC/B;AACA,QAAI,IAAI,GAAG;AACT,YAAM,WAAW;AACjB,YAAM,WAAW;AAAA,IACnB;AAEA,WAAO,UAAU,QAAQ,qBAAqB,aAAa,iBAAiB,MAAM;AAAA,EACpF;AAGA,SAAO,WAAW,QAAQ,UAAU,SAAS,IAAI;AACnD;AAIA,SAAS,cACL,QACA,UACA,SACqC;AACvC,MAAI,OAAO,QAAQ,MAAM,SAAS,QAAQ,GAAG;AAC3C,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAGA,QAAM,OAAO,oBAAI,IAAI,CAAE,GAAG,OAAO,KAAK,MAAM,GAAG,GAAG,OAAO,KAAK,QAAQ,CAAE,CAAC;AACzE,MAAI,kBAAkB,QAAQ;AAC5B,UAAM,SAAS,OAAO,QAAQ,EAAE;AAChC,aAAS,IAAI,GAAG,IAAI,QAAQ,KAAM;AAChC,WAAK,OAAO,OAAO,CAAC,CAAC;AAAA,IACvB;AAAA,EACF;AAGA,SAAO,KAAK,OAAO,WAAW,QAAQ,UAAU,SAAS,IAAI,IAAI;AAAA,IAC/D,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF;AAMA,SAAS,WAAW,QAAa,UAAe,SAAwB;AAEtE,MAAI,aAAa;AAAQ,WAAO,EAAE,MAAM,OAAO,OAAO,SAAS;AAG/D,MAAI,aAAa,MAAM;AACrB,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,IACZ;AAAA,EACF;AAGA,UAAI,wBAAU,QAAQ,GAAG;AACvB,QAAI;AACF,eAAS,OAAO,MAAM;AACtB,aAAO,EAAE,MAAM,OAAO,OAAO,OAAO;AAAA,IACtC,SAAS,OAAP;AACA,UAAI,iBAAiB,+BAAkB;AAGrC,cAAM,EAAE,SAAS,MAAAA,MAAK,IAAI;AAC1B,eAAOA,OAAM,OAAOA,QAAO,EAAE,MAAM,MAAM,OAAO,QAAQ,OAAO,QAAQ;AAAA,MACzE,OAAO;AACL,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAGA,QAAM,aAAa,OAAO;AAC1B,QAAM,eAAe,OAAO;AAG5B,MAAI,eAAe,cAAc;AAC/B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAGA,UAAQ,YAAY;AAAA,IAElB,KAAK;AACH,UAAI,MAAM,QAAkB,KAAK,MAAM,MAAgB,GAAG;AACxD,eAAO,EAAE,MAAM,OAAO,OAAO,IAAI;AAAA,MACnC;AAAA,IAEF,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP;AAAA,MACF;AAAA,EAEJ;AAIA,QAAM,cAAc,QAAQ,YAAY,QAAQ,MAAM;AACtD,MAAI,gBAAgB,IAAI;AACtB,QAAI,gBAAgB,QAAQ,cAAc,QAAQ,QAAQ,GAAG;AAC3D,aAAO,EAAE,MAAM,OAAO,OAAO,OAAO;AAAA,IACtC;AAAA,EACF;AAEA,UAAQ,YAAY,KAAK,MAAM;AAC/B,UAAQ,cAAc,KAAK,QAAQ;AAGnC,QAAM,YAAY,OAAO,eAAe,QAAQ;AAChD,MAAI,aAAa,UAAU,aAAa;AACtC,QAAI,EAAG,kBAAkB,UAAU,cAAc;AAC/C,aAAO;AAAA,QACL,GAAG,UAAU,QAAQ,yBAAqB,mCAAqB,UAAU,WAAW,GAAG;AAAA,QACvF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAIA,QAAM,gBAAgB,CACpB,MACA,aAEC,oBAAoB,OACnB,SAAS,QAAqC,UAAU,OAAO,IAChE,kBAAkB,OACjB,EAAE,MAAM,MAAM,OAAO,QAAQ,SAAS,IACxC;AAEF;AAAA;AAAA,IAEE,cAAc,OAAO,SAAS;AAAA,IAG9B,cAAc,KAAK,CAAC,KAAK,QAAQ,QAAQ,KAAK,KAAK,OAAO,CAAC;AAAA,IAG3D,cAAc,KAAK,CAAC,KAAK,QAAQ,QAAQ,KAAK,KAAK,OAAO,CAAC;AAAA,IAG3D,cAAc,SAAS,aAAa,KACpC,cAAc,QAAQ,aAAa,KACnC,cAAc,QAAQ,aAAa;AAAA,IAGnC,cAAc,SAAS,CAAC,KAAK,QAAQ,UAAU,KAAK,yBAAqB,6BAAe,GAAG,GAAG,CAAC;AAAA,IAG/F,cAAc,MAAM,CAAC,KAAK,QACvB,IAAI,QAAQ,MAAM,IAAI,QAAQ,IAAK;AAAA,MAClC,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,IAAI,WAAW,KAAK,KAAK,OAAO,CAAC;AAAA,IAGnC,cAAc,QAAQ,CAAC,KAAK,QACxB,IAAI,WAAW,IAAI,UAAY,IAAI,UAAU,IAAI,QAAU;AAAA,MAC3D,MAAM;AAAA,MACN,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,IAAI,WAAW,KAAK,KAAK,OAAO,CAAC;AAAA,IAGnC,cAAc,QAAQ,CAAC,KAAK,QAAQ,WAAW,KAAK,KAAK,KAAK,KAAK,OAAO,CAAC,KAC3E,cAAc,YAAY,CAAC,KAAK,QAAQ,WAAW,KAAK,KAAK,OAAO,KAAK,GAAG,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,CAAC,KACzG,cAAc,aAAa,CAAC,KAAK,QAAQ,WAAW,KAAK,KAAK,OAAO,KAAK,GAAG,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,CAAC,KAC1G,cAAc,mBAAmB,CAAC,KAAK,QAAQ,WAAW,KAAK,KAAK,OAAO,KAAK,GAAG,GAAG,OAAO,KAAK,GAAG,GAAG,OAAO,CAAC;AAAA,IAGhH,cAAc,eAAe,SAAS,KACtC,cAAc,gBAAgB,SAAS,KACvC,cAAc,cAAc,SAAS,KACrC,cAAc,cAAc,SAAS,KACrC,cAAc,YAAY,SAAS,KACnC,cAAc,YAAY,SAAS,KACnC,cAAc,WAAW,SAAS,KAClC,cAAc,aAAa,SAAS,KACpC,cAAc,aAAa,SAAS,KACpC,cAAc,mBAAmB,SAAS;AAAA,IAG1C,WAAW,QAAe,UAAU,OAAO;AAAA;AAC/C;AAMO,SAAS,KAAK,QAAa,UAAqB;AACrD,SAAO,WAAW,QAAQ,UAAU,EAAE,aAAa,CAAC,GAAG,eAAe,CAAC,EAAE,CAAC;AAC5E;",
|
|
5
5
|
"names": ["diff", "result"]
|
|
6
6
|
}
|
|
@@ -14,13 +14,13 @@ function objectDiff(actual, expected, remarks, keys) {
|
|
|
14
14
|
for (const key of keys) {
|
|
15
15
|
const act = actual[key];
|
|
16
16
|
const exp = expected[key];
|
|
17
|
-
let result
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
let result;
|
|
18
|
+
if (key in expected && !(key in actual)) {
|
|
19
|
+
result = { diff: true, missing: exp };
|
|
20
|
+
} else if (key in actual && !(key in expected)) {
|
|
21
|
+
result = { diff: true, extra: act };
|
|
22
|
+
} else {
|
|
23
|
+
result = diffValues(act, exp, remarks);
|
|
24
24
|
}
|
|
25
25
|
props[key] = result;
|
|
26
26
|
diff2 ||= result.diff;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/expectation/diff.ts"],
|
|
4
|
-
"mappings": ";AACA,SAAS,kBAAkB,WAAW,sBAAsB,sBAAsB;AAoDlF,SAAS,UAAU,OAAY,SAA4B;AACzD,QAAM,QAAQ,YAAY,eAAe,KAAK,KAAK;AACnD,SAAO,EAAE,MAAM,MAAM,OAAO,MAAM;AACpC;AAIA,SAAS,WACL,QACA,UACA,SACA,MACsB;AAExB,MAAI,CAAE;AAAM,WAAO,oBAAI,IAAI,CAAE,GAAG,OAAO,KAAK,MAAM,GAAG,GAAG,OAAO,KAAK,QAAQ,CAAE,CAAC;AAG/E,MAAI,CAAE,KAAK;AAAM,WAAO,EAAE,MAAM,OAAO,OAAO,OAAO;AAGrD,MAAIA,QAAO;AACX,QAAM,QAA8B,CAAC;AACrC,aAAW,OAAO,MAAM;AACtB,UAAM,MAAM,OAAO,GAAG;AACtB,UAAM,MAAM,SAAS,GAAG;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["diff", "result"]
|
|
6
6
|
}
|