@plugjs/expect5 0.4.6 → 0.4.7
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 +14 -22
- package/dist/expectation/async.cjs.map +1 -1
- package/dist/expectation/async.d.ts +39 -13
- package/dist/expectation/async.mjs +14 -22
- package/dist/expectation/async.mjs.map +1 -1
- package/dist/expectation/expect.cjs +3 -3
- package/dist/expectation/expect.cjs.map +1 -1
- package/dist/expectation/expect.d.ts +3 -3
- package/dist/expectation/expect.mjs +4 -4
- package/dist/expectation/expect.mjs.map +1 -1
- package/dist/expectation/expectations.cjs +27 -44
- package/dist/expectation/expectations.cjs.map +1 -1
- package/dist/expectation/expectations.d.ts +72 -14
- package/dist/expectation/expectations.mjs +27 -44
- package/dist/expectation/expectations.mjs.map +1 -1
- package/dist/expectation/matchers.cjs +24 -47
- package/dist/expectation/matchers.cjs.map +1 -1
- package/dist/expectation/matchers.d.ts +136 -93
- package/dist/expectation/matchers.mjs +23 -46
- package/dist/expectation/matchers.mjs.map +1 -1
- package/dist/expectation/types.cjs.map +1 -1
- package/dist/expectation/types.d.ts +2 -2
- package/dist/expectation/types.mjs.map +1 -1
- package/dist/test.cjs +5 -2
- package/dist/test.cjs.map +1 -1
- package/dist/test.mjs +6 -3
- package/dist/test.mjs.map +1 -1
- package/package.json +3 -3
- package/src/expectation/async.ts +69 -17
- package/src/expectation/expect.ts +6 -6
- package/src/expectation/expectations.ts +152 -27
- package/src/expectation/matchers.ts +207 -125
- package/src/expectation/types.ts +2 -2
- package/src/test.ts +8 -2
package/dist/cli.mjs
CHANGED
|
@@ -8,7 +8,7 @@ var { $blu, $und, $gry, $wht } = logging;
|
|
|
8
8
|
var $gnd = (s) => $gry($und(s));
|
|
9
9
|
var $bnd = (s) => $blu($und(s));
|
|
10
10
|
var $wnd = (s) => $wht($und(s));
|
|
11
|
-
var version = true ? "0.4.
|
|
11
|
+
var version = true ? "0.4.7" : "0.0.0-dev";
|
|
12
12
|
function help() {
|
|
13
13
|
console.log(`${$blu($und("Usage:"))}
|
|
14
14
|
|
|
@@ -24,6 +24,7 @@ __export(async_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(async_exports);
|
|
26
26
|
var import_expectations = require("./expectations.cjs");
|
|
27
|
+
var import_types = require("./types.cjs");
|
|
27
28
|
var AsyncExpectations = class extends import_expectations.Expectations {
|
|
28
29
|
/**
|
|
29
30
|
* Create an {@link AsyncExpectations} instance associated with the specified
|
|
@@ -32,22 +33,17 @@ var AsyncExpectations = class extends import_expectations.Expectations {
|
|
|
32
33
|
constructor(value, remarks) {
|
|
33
34
|
super(value, remarks);
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Expects the value to be a _rejected_ {@link PromiseLike}, and (if
|
|
38
|
-
* specified) further asserts the rejection reason with an
|
|
39
|
-
* {@link AssertionFunction}.
|
|
40
|
-
*
|
|
41
|
-
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
42
|
-
*/
|
|
43
|
-
toBeRejected(assertion) {
|
|
36
|
+
toBeRejected(assertionOrMatcher) {
|
|
44
37
|
return Promise.resolve().then(() => {
|
|
45
38
|
this.toHaveProperty("then", (assert) => assert.toBeA("function"));
|
|
46
39
|
return Promise.allSettled([Promise.resolve(this.value)]);
|
|
47
40
|
}).then(([settlement]) => {
|
|
48
41
|
if (settlement.status === "rejected") {
|
|
49
|
-
if (
|
|
50
|
-
|
|
42
|
+
if ((0, import_types.isMatcher)(assertionOrMatcher)) {
|
|
43
|
+
assertionOrMatcher.expect(settlement.reason);
|
|
44
|
+
} else if (assertionOrMatcher) {
|
|
45
|
+
assertionOrMatcher(new import_expectations.Expectations(settlement.reason, this.remarks));
|
|
46
|
+
}
|
|
51
47
|
return this;
|
|
52
48
|
}
|
|
53
49
|
this._fail("to be rejected");
|
|
@@ -56,7 +52,8 @@ var AsyncExpectations = class extends import_expectations.Expectations {
|
|
|
56
52
|
/* ------------------------------------------------------------------------ */
|
|
57
53
|
/**
|
|
58
54
|
* Expects the value to be a {@link PromiseLike} _rejected_ with an
|
|
59
|
-
* {@link Error} _strictly equal_
|
|
55
|
+
* {@link Error} {@link Expectations.toStrictlyEqual _strictly equal_}
|
|
56
|
+
* to the one specified.
|
|
60
57
|
*
|
|
61
58
|
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
62
59
|
*/
|
|
@@ -67,22 +64,17 @@ var AsyncExpectations = class extends import_expectations.Expectations {
|
|
|
67
64
|
const [constructor, message] = typeof constructorOrMessage === "function" ? [constructorOrMessage, maybeMessage] : [Error, constructorOrMessage];
|
|
68
65
|
return this.toBeRejected((assert) => assert.toBeError(constructor, message));
|
|
69
66
|
}
|
|
70
|
-
/* ------------------------------------------------------------------------ */
|
|
71
|
-
/**
|
|
72
|
-
* Expects the value to be a _resolved_ {@link PromiseLike}, and (if
|
|
73
|
-
* specified) further asserts the resolved result with an
|
|
74
|
-
* {@link AssertionFunction}.
|
|
75
|
-
*
|
|
76
|
-
* Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
|
|
77
|
-
*/
|
|
78
67
|
toBeResolved(assertion) {
|
|
79
68
|
return Promise.resolve().then(() => {
|
|
80
69
|
this.toHaveProperty("then", (assert) => assert.toBeA("function"));
|
|
81
70
|
return Promise.allSettled([Promise.resolve(this.value)]);
|
|
82
71
|
}).then(([settlement]) => {
|
|
83
72
|
if (settlement.status === "fulfilled") {
|
|
84
|
-
if (assertion)
|
|
73
|
+
if ((0, import_types.isMatcher)(assertion)) {
|
|
74
|
+
assertion.expect(settlement.value);
|
|
75
|
+
} else if (assertion) {
|
|
85
76
|
assertion(new import_expectations.Expectations(settlement.value, this.remarks));
|
|
77
|
+
}
|
|
86
78
|
return this;
|
|
87
79
|
}
|
|
88
80
|
this._fail("to be resolved");
|
|
@@ -91,7 +83,7 @@ var AsyncExpectations = class extends import_expectations.Expectations {
|
|
|
91
83
|
/* ------------------------------------------------------------------------ */
|
|
92
84
|
/**
|
|
93
85
|
* Expects the value to be a {@link PromiseLike} _resolved_ with a value
|
|
94
|
-
* _deeply equal_ to the one specified.
|
|
86
|
+
* {@link Expectations.toEqual _deeply equal_} to the one specified.
|
|
95
87
|
*
|
|
96
88
|
* Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
|
|
97
89
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/expectation/async.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAMO;AACP,mBAA4C;AAYrC,IAAM,oBAAN,cAA6C,iCAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlE,YAAY,OAAU,SAA6B;AACjD,UAAM,OAAO,OAAO;AAAA,EACtB;AAAA,EA+BA,aACI,oBACqB;AACvB,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,YAAY;AACpC,gBAAI,wBAAU,kBAAkB,GAAG;AACjC,6BAAmB,OAAO,WAAW,MAAM;AAAA,QAC7C,WAAW,oBAAoB;AAC7B,6BAAmB,IAAI,iCAAa,WAAW,QAAQ,KAAK,OAAO,CAAC;AAAA,QACtE;AACA,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,iBACI,UAC8C;AAChD,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,gBAAgB,QAAQ,CAAC;AAAA,EACvE;AAAA,EAkCA,sBACI,sBACA,cACqB;AACvB,UAAM,CAAE,aAAa,OAAQ,IAC3B,OAAO,yBAAyB,aAC9B,CAAE,sBAAsB,YAAa,IACrC,CAAE,OAAO,oBAAqB;AAElC,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,UAAU,aAAa,OAAO,CAAC;AAAA,EAC7E;AAAA,EA+BA,aACI,WACqB;AACvB,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,aAAa;AACrC,gBAAI,wBAAU,SAAS,GAAG;AACxB,oBAAU,OAAO,WAAW,KAAK;AAAA,QACnC,WAAW,WAAW;AACpB,oBAAU,IAAI,iCAAa,WAAW,OAAO,KAAK,OAAO,CAAC;AAAA,QAC5D;AACA,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,iBACI,UACsD;AACxD,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,QAAQ,QAAQ,CAAC;AAAA,EAC/D;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Expectations, type AssertionFunction, type AssertedType, type
|
|
2
|
-
import type
|
|
1
|
+
import { Expectations, type AssertionFunction, type AssertedType, type InferToEqual, type InferMatcher } from './expectations';
|
|
2
|
+
import { type Constructor } from './types';
|
|
3
|
+
import type { Matcher } from './matchers';
|
|
3
4
|
/**
|
|
4
5
|
* Extension to {@link Expectations} adding support for {@link Promise}s.
|
|
5
6
|
*
|
|
@@ -14,16 +15,29 @@ export declare class AsyncExpectations<T = unknown> extends Expectations<T> {
|
|
|
14
15
|
*/
|
|
15
16
|
constructor(value: T, remarks: string | undefined);
|
|
16
17
|
/**
|
|
17
|
-
* Expects the value to be a _rejected_ {@link PromiseLike}
|
|
18
|
-
* specified) further asserts the rejection reason with an
|
|
19
|
-
* {@link AssertionFunction}.
|
|
18
|
+
* Expects the value to be a _rejected_ {@link PromiseLike}.
|
|
20
19
|
*
|
|
21
20
|
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
22
21
|
*/
|
|
23
|
-
toBeRejected(
|
|
22
|
+
toBeRejected(): Promise<Expectations<PromiseLike<Awaited<T>>>>;
|
|
23
|
+
/**
|
|
24
|
+
* Expects the value to be a _rejected_ {@link PromiseLike}, and further
|
|
25
|
+
* validates the rejection with a {@link Matcher}.
|
|
26
|
+
*
|
|
27
|
+
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
28
|
+
*/
|
|
29
|
+
toBeRejected(matcher: Matcher): Promise<Expectations<PromiseLike<Awaited<T>>>>;
|
|
30
|
+
/**
|
|
31
|
+
* Expects the value to be a _rejected_ {@link PromiseLike}, and further
|
|
32
|
+
* asserts the rejection reason with an {@link AssertionFunction}.
|
|
33
|
+
*
|
|
34
|
+
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
35
|
+
*/
|
|
36
|
+
toBeRejected(assertion: AssertionFunction): Promise<Expectations<PromiseLike<Awaited<T>>>>;
|
|
24
37
|
/**
|
|
25
38
|
* Expects the value to be a {@link PromiseLike} _rejected_ with an
|
|
26
|
-
* {@link Error} _strictly equal_
|
|
39
|
+
* {@link Error} {@link Expectations.toStrictlyEqual _strictly equal_}
|
|
40
|
+
* to the one specified.
|
|
27
41
|
*
|
|
28
42
|
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
29
43
|
*/
|
|
@@ -52,18 +66,30 @@ export declare class AsyncExpectations<T = unknown> extends Expectations<T> {
|
|
|
52
66
|
*/
|
|
53
67
|
toBeRejectedWithError(constructor: Constructor<Error>, message?: string | RegExp): Promise<Expectations<PromiseLike<Awaited<T>>>>;
|
|
54
68
|
/**
|
|
55
|
-
* Expects the value to be a _resolved_ {@link PromiseLike}
|
|
56
|
-
*
|
|
57
|
-
* {@link
|
|
69
|
+
* Expects the value to be a _resolved_ {@link PromiseLike}.
|
|
70
|
+
*
|
|
71
|
+
* Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
|
|
72
|
+
*/
|
|
73
|
+
toBeResolved(): Promise<Expectations<PromiseLike<Awaited<T>>>>;
|
|
74
|
+
/**
|
|
75
|
+
* Expects the value to be a _resolved_ {@link PromiseLike}, and further
|
|
76
|
+
* validates the resolved result with a {@link Matcher}.
|
|
77
|
+
*
|
|
78
|
+
* Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
|
|
79
|
+
*/
|
|
80
|
+
toBeResolved<Match extends Matcher>(matcher: Match): Promise<Expectations<PromiseLike<InferMatcher<unknown, Match>>>>;
|
|
81
|
+
/**
|
|
82
|
+
* Expects the value to be a _resolved_ {@link PromiseLike}, and further
|
|
83
|
+
* asserts the resolved result with an {@link AssertionFunction}.
|
|
58
84
|
*
|
|
59
85
|
* Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
|
|
60
86
|
*/
|
|
61
|
-
toBeResolved<Assert extends AssertionFunction<Awaited<T>>>(assertion
|
|
87
|
+
toBeResolved<Assert extends AssertionFunction<Awaited<T>>>(assertion: Assert): Promise<Expectations<PromiseLike<AssertedType<Awaited<T>, Assert>>>>;
|
|
62
88
|
/**
|
|
63
89
|
* Expects the value to be a {@link PromiseLike} _resolved_ with a value
|
|
64
|
-
* _deeply equal_ to the one specified.
|
|
90
|
+
* {@link Expectations.toEqual _deeply equal_} to the one specified.
|
|
65
91
|
*
|
|
66
92
|
* Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
|
|
67
93
|
*/
|
|
68
|
-
toBeResolvedWith<Type>(expected: Type): Promise<Expectations<PromiseLike<
|
|
94
|
+
toBeResolvedWith<Type>(expected: Type): Promise<Expectations<PromiseLike<InferToEqual<Type>>>>;
|
|
69
95
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
Expectations
|
|
4
4
|
} from "./expectations.mjs";
|
|
5
|
+
import { isMatcher } from "./types.mjs";
|
|
5
6
|
var AsyncExpectations = class extends Expectations {
|
|
6
7
|
/**
|
|
7
8
|
* Create an {@link AsyncExpectations} instance associated with the specified
|
|
@@ -10,22 +11,17 @@ var AsyncExpectations = class extends Expectations {
|
|
|
10
11
|
constructor(value, remarks) {
|
|
11
12
|
super(value, remarks);
|
|
12
13
|
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Expects the value to be a _rejected_ {@link PromiseLike}, and (if
|
|
16
|
-
* specified) further asserts the rejection reason with an
|
|
17
|
-
* {@link AssertionFunction}.
|
|
18
|
-
*
|
|
19
|
-
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
20
|
-
*/
|
|
21
|
-
toBeRejected(assertion) {
|
|
14
|
+
toBeRejected(assertionOrMatcher) {
|
|
22
15
|
return Promise.resolve().then(() => {
|
|
23
16
|
this.toHaveProperty("then", (assert) => assert.toBeA("function"));
|
|
24
17
|
return Promise.allSettled([Promise.resolve(this.value)]);
|
|
25
18
|
}).then(([settlement]) => {
|
|
26
19
|
if (settlement.status === "rejected") {
|
|
27
|
-
if (
|
|
28
|
-
|
|
20
|
+
if (isMatcher(assertionOrMatcher)) {
|
|
21
|
+
assertionOrMatcher.expect(settlement.reason);
|
|
22
|
+
} else if (assertionOrMatcher) {
|
|
23
|
+
assertionOrMatcher(new Expectations(settlement.reason, this.remarks));
|
|
24
|
+
}
|
|
29
25
|
return this;
|
|
30
26
|
}
|
|
31
27
|
this._fail("to be rejected");
|
|
@@ -34,7 +30,8 @@ var AsyncExpectations = class extends Expectations {
|
|
|
34
30
|
/* ------------------------------------------------------------------------ */
|
|
35
31
|
/**
|
|
36
32
|
* Expects the value to be a {@link PromiseLike} _rejected_ with an
|
|
37
|
-
* {@link Error} _strictly equal_
|
|
33
|
+
* {@link Error} {@link Expectations.toStrictlyEqual _strictly equal_}
|
|
34
|
+
* to the one specified.
|
|
38
35
|
*
|
|
39
36
|
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
40
37
|
*/
|
|
@@ -45,22 +42,17 @@ var AsyncExpectations = class extends Expectations {
|
|
|
45
42
|
const [constructor, message] = typeof constructorOrMessage === "function" ? [constructorOrMessage, maybeMessage] : [Error, constructorOrMessage];
|
|
46
43
|
return this.toBeRejected((assert) => assert.toBeError(constructor, message));
|
|
47
44
|
}
|
|
48
|
-
/* ------------------------------------------------------------------------ */
|
|
49
|
-
/**
|
|
50
|
-
* Expects the value to be a _resolved_ {@link PromiseLike}, and (if
|
|
51
|
-
* specified) further asserts the resolved result with an
|
|
52
|
-
* {@link AssertionFunction}.
|
|
53
|
-
*
|
|
54
|
-
* Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
|
|
55
|
-
*/
|
|
56
45
|
toBeResolved(assertion) {
|
|
57
46
|
return Promise.resolve().then(() => {
|
|
58
47
|
this.toHaveProperty("then", (assert) => assert.toBeA("function"));
|
|
59
48
|
return Promise.allSettled([Promise.resolve(this.value)]);
|
|
60
49
|
}).then(([settlement]) => {
|
|
61
50
|
if (settlement.status === "fulfilled") {
|
|
62
|
-
if (assertion)
|
|
51
|
+
if (isMatcher(assertion)) {
|
|
52
|
+
assertion.expect(settlement.value);
|
|
53
|
+
} else if (assertion) {
|
|
63
54
|
assertion(new Expectations(settlement.value, this.remarks));
|
|
55
|
+
}
|
|
64
56
|
return this;
|
|
65
57
|
}
|
|
66
58
|
this._fail("to be resolved");
|
|
@@ -69,7 +61,7 @@ var AsyncExpectations = class extends Expectations {
|
|
|
69
61
|
/* ------------------------------------------------------------------------ */
|
|
70
62
|
/**
|
|
71
63
|
* Expects the value to be a {@link PromiseLike} _resolved_ with a value
|
|
72
|
-
* _deeply equal_ to the one specified.
|
|
64
|
+
* {@link Expectations.toEqual _deeply equal_} to the one specified.
|
|
73
65
|
*
|
|
74
66
|
* Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
|
|
75
67
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/expectation/async.ts"],
|
|
4
|
-
"mappings": ";AAAA;AAAA,EACE;AAAA,
|
|
4
|
+
"mappings": ";AAAA;AAAA,EACE;AAAA,OAKK;AACP,SAAS,iBAAmC;AAYrC,IAAM,oBAAN,cAA6C,aAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlE,YAAY,OAAU,SAA6B;AACjD,UAAM,OAAO,OAAO;AAAA,EACtB;AAAA,EA+BA,aACI,oBACqB;AACvB,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,YAAY;AACpC,YAAI,UAAU,kBAAkB,GAAG;AACjC,6BAAmB,OAAO,WAAW,MAAM;AAAA,QAC7C,WAAW,oBAAoB;AAC7B,6BAAmB,IAAI,aAAa,WAAW,QAAQ,KAAK,OAAO,CAAC;AAAA,QACtE;AACA,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,iBACI,UAC8C;AAChD,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,gBAAgB,QAAQ,CAAC;AAAA,EACvE;AAAA,EAkCA,sBACI,sBACA,cACqB;AACvB,UAAM,CAAE,aAAa,OAAQ,IAC3B,OAAO,yBAAyB,aAC9B,CAAE,sBAAsB,YAAa,IACrC,CAAE,OAAO,oBAAqB;AAElC,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,UAAU,aAAa,OAAO,CAAC;AAAA,EAC7E;AAAA,EA+BA,aACI,WACqB;AACvB,WAAO,QAAQ,QAAQ,EAClB,KAAK,MAAM;AACV,WAAK,eAAe,QAAQ,CAAC,WAAW,OAAO,MAAM,UAAU,CAAC;AAChE,aAAO,QAAQ,WAAW,CAAE,QAAQ,QAAQ,KAAK,KAAK,CAAE,CAAC;AAAA,IAC3D,CAAC,EACA,KAAK,CAAC,CAAE,UAAW,MAAM;AACxB,UAAI,WAAW,WAAW,aAAa;AACrC,YAAI,UAAU,SAAS,GAAG;AACxB,oBAAU,OAAO,WAAW,KAAK;AAAA,QACnC,WAAW,WAAW;AACpB,oBAAU,IAAI,aAAa,WAAW,OAAO,KAAK,OAAO,CAAC;AAAA,QAC5D;AACA,eAAO;AAAA,MACT;AAEA,WAAK,MAAM,gBAAgB;AAAA,IAC7B,CAAC;AAAA,EACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,iBACI,UACsD;AACxD,WAAO,KAAK,aAAa,CAAC,WAAW,OAAO,QAAQ,QAAQ,CAAC;AAAA,EAC/D;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -28,14 +28,14 @@ var import_matchers = require("./matchers.cjs");
|
|
|
28
28
|
var expect = (value, remarks) => {
|
|
29
29
|
return new import_async.AsyncExpectations(value, remarks);
|
|
30
30
|
};
|
|
31
|
-
for (const key of Object.getOwnPropertyNames(import_matchers.
|
|
31
|
+
for (const key of Object.getOwnPropertyNames(import_matchers.Matcher.prototype)) {
|
|
32
32
|
if (!key.startsWith("to"))
|
|
33
33
|
continue;
|
|
34
|
-
const matcher = (...args) => new import_matchers.
|
|
34
|
+
const matcher = (...args) => new import_matchers.Matcher()[key](...args);
|
|
35
35
|
Object.defineProperty(matcher, "name", { value: key });
|
|
36
36
|
Object.defineProperty(expect, key, { value: matcher });
|
|
37
37
|
}
|
|
38
|
-
Object.defineProperty(expect, "not", { get: () => new import_matchers.
|
|
38
|
+
Object.defineProperty(expect, "not", { get: () => new import_matchers.Matcher().not });
|
|
39
39
|
// Annotate the CommonJS export names for ESM import in node:
|
|
40
40
|
0 && (module.exports = {
|
|
41
41
|
expect
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/expectation/expect.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAClC,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAClC,sBAAwB;AAgBjB,IAAM,SAAkB,CAAC,OAAY,YAAqB;AAC/D,SAAO,IAAI,+BAAkB,OAAO,OAAO;AAC7C;AAGA,WAAW,OAAO,OAAO,oBAAoB,wBAAQ,SAAS,GAAG;AAC/D,MAAI,CAAE,IAAI,WAAW,IAAI;AAAG;AAE5B,QAAM,UAAU,IAAI,SAAuB,IAAI,wBAAQ,EAAU,GAAG,EAAE,GAAG,IAAI;AAC7E,SAAO,eAAe,SAAS,QAAQ,EAAE,OAAO,IAAI,CAAC;AACrD,SAAO,eAAe,QAAQ,KAAK,EAAE,OAAO,QAAQ,CAAC;AACvD;AAGA,OAAO,eAAe,QAAQ,OAAO,EAAE,KAAK,MAAM,IAAI,wBAAQ,EAAE,IAAI,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AsyncExpectations } from './async';
|
|
2
|
-
import {
|
|
2
|
+
import { Matcher } from './matchers';
|
|
3
3
|
export type { AsyncExpectations } from './async';
|
|
4
4
|
export type { Expectations, NegativeExpectations } from './expectations';
|
|
5
|
-
export type { Matchers, NegativeMatchers } from './matchers';
|
|
5
|
+
export type { Matcher as Matchers, NegativeMatchers } from './matchers';
|
|
6
6
|
/** The `expect` function exposing expectations and matchers */
|
|
7
7
|
export type Expect = {
|
|
8
8
|
<T = unknown>(value: T, remarks?: string): AsyncExpectations<T>;
|
|
9
|
-
} & Omit<
|
|
9
|
+
} & Omit<Matcher, 'expect'>;
|
|
10
10
|
/** The `expect` function exposing expectations and matchers */
|
|
11
11
|
export declare const expect: Expect;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
// expectation/expect.ts
|
|
2
2
|
import { AsyncExpectations } from "./async.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { Matcher } from "./matchers.mjs";
|
|
4
4
|
var expect = (value, remarks) => {
|
|
5
5
|
return new AsyncExpectations(value, remarks);
|
|
6
6
|
};
|
|
7
|
-
for (const key of Object.getOwnPropertyNames(
|
|
7
|
+
for (const key of Object.getOwnPropertyNames(Matcher.prototype)) {
|
|
8
8
|
if (!key.startsWith("to"))
|
|
9
9
|
continue;
|
|
10
|
-
const matcher = (...args) => new
|
|
10
|
+
const matcher = (...args) => new Matcher()[key](...args);
|
|
11
11
|
Object.defineProperty(matcher, "name", { value: key });
|
|
12
12
|
Object.defineProperty(expect, key, { value: matcher });
|
|
13
13
|
}
|
|
14
|
-
Object.defineProperty(expect, "not", { get: () => new
|
|
14
|
+
Object.defineProperty(expect, "not", { get: () => new Matcher().not });
|
|
15
15
|
export {
|
|
16
16
|
expect
|
|
17
17
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/expectation/expect.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,yBAAyB;AAClC,SAAS,
|
|
4
|
+
"mappings": ";AAAA,SAAS,yBAAyB;AAClC,SAAS,eAAe;AAgBjB,IAAM,SAAkB,CAAC,OAAY,YAAqB;AAC/D,SAAO,IAAI,kBAAkB,OAAO,OAAO;AAC7C;AAGA,WAAW,OAAO,OAAO,oBAAoB,QAAQ,SAAS,GAAG;AAC/D,MAAI,CAAE,IAAI,WAAW,IAAI;AAAG;AAE5B,QAAM,UAAU,IAAI,SAAuB,IAAI,QAAQ,EAAU,GAAG,EAAE,GAAG,IAAI;AAC7E,SAAO,eAAe,SAAS,QAAQ,EAAE,OAAO,IAAI,CAAC;AACrD,SAAO,eAAe,QAAQ,KAAK,EAAE,OAAO,QAAQ,CAAC;AACvD;AAGA,OAAO,eAAe,QAAQ,OAAO,EAAE,KAAK,MAAM,IAAI,QAAQ,EAAE,IAAI,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -46,19 +46,13 @@ var Expectations = class {
|
|
|
46
46
|
_fail(details, diff2) {
|
|
47
47
|
throw new import_types.ExpectationError(this, details, diff2);
|
|
48
48
|
}
|
|
49
|
-
|
|
50
|
-
* BASIC *
|
|
51
|
-
* ------------------------------------------------------------------------ */
|
|
52
|
-
/**
|
|
53
|
-
* Expects the value to be of the specified _extended_ {@link TypeName type},
|
|
54
|
-
* and (if specified) further asserts it with an {@link AssertionFunction}.
|
|
55
|
-
*
|
|
56
|
-
* Negation: {@link NegativeExpectations.toBeA `not.toBeA(...)`}
|
|
57
|
-
*/
|
|
58
|
-
toBeA(type, assertion) {
|
|
49
|
+
toBeA(type, assertionOrMatcher) {
|
|
59
50
|
if ((0, import_types.typeOf)(this.value) === type) {
|
|
60
|
-
if (
|
|
61
|
-
|
|
51
|
+
if ((0, import_types.isMatcher)(assertionOrMatcher)) {
|
|
52
|
+
assertionOrMatcher.expect(this.value);
|
|
53
|
+
} else if (assertionOrMatcher) {
|
|
54
|
+
assertionOrMatcher(this);
|
|
55
|
+
}
|
|
62
56
|
return this;
|
|
63
57
|
}
|
|
64
58
|
this._fail(`to be ${(0, import_types.prefixType)(type)}`);
|
|
@@ -121,17 +115,13 @@ var Expectations = class {
|
|
|
121
115
|
return this;
|
|
122
116
|
this._fail(`to be greater than or equal to ${(0, import_types.stringifyValue)(value)}`);
|
|
123
117
|
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* Expects the value to be an instance of the specified {@link Constructor},
|
|
127
|
-
* and (if specified) further asserts it with an {@link AssertionFunction}.
|
|
128
|
-
*
|
|
129
|
-
* Negation: {@link NegativeExpectations.toBeInstanceOf `not.toInstanceOf(...)`}
|
|
130
|
-
*/
|
|
131
|
-
toBeInstanceOf(constructor, assertion) {
|
|
118
|
+
toBeInstanceOf(constructor, assertionOrMatcher) {
|
|
132
119
|
if (this.value instanceof constructor) {
|
|
133
|
-
if (
|
|
134
|
-
|
|
120
|
+
if ((0, import_types.isMatcher)(assertionOrMatcher)) {
|
|
121
|
+
assertionOrMatcher.expect(this.value);
|
|
122
|
+
} else if (assertionOrMatcher) {
|
|
123
|
+
assertionOrMatcher(this);
|
|
124
|
+
}
|
|
135
125
|
return this;
|
|
136
126
|
}
|
|
137
127
|
this._fail(`to be an instance of ${(0, import_types.stringifyConstructor)(constructor)}`);
|
|
@@ -235,24 +225,21 @@ var Expectations = class {
|
|
|
235
225
|
}
|
|
236
226
|
return this;
|
|
237
227
|
}
|
|
238
|
-
|
|
239
|
-
/**
|
|
240
|
-
* Expects the value to have the specified _property_ and (if specified)
|
|
241
|
-
* further asserts its value with an {@link AssertionFunction}.
|
|
242
|
-
*
|
|
243
|
-
* Negation: {@link NegativeExpectations.toHaveProperty `not.toHaveProperty(...)`}
|
|
244
|
-
*/
|
|
245
|
-
toHaveProperty(property, assertion) {
|
|
228
|
+
toHaveProperty(property, assertionOrMatcher) {
|
|
246
229
|
this.toBeDefined();
|
|
247
230
|
const propertyValue = this.value[property];
|
|
248
231
|
if (propertyValue === void 0) {
|
|
249
232
|
this._fail(`to have property "${String(property)}"`);
|
|
250
233
|
}
|
|
251
|
-
if (
|
|
234
|
+
if (assertionOrMatcher) {
|
|
235
|
+
const parent = { expectations: this, prop: property };
|
|
252
236
|
try {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
237
|
+
if ((0, import_types.isMatcher)(assertionOrMatcher)) {
|
|
238
|
+
assertionOrMatcher.expect(propertyValue, parent);
|
|
239
|
+
} else if (assertionOrMatcher) {
|
|
240
|
+
const expectations = new Expectations(propertyValue, this.remarks, parent);
|
|
241
|
+
assertionOrMatcher(expectations);
|
|
242
|
+
}
|
|
256
243
|
} catch (error) {
|
|
257
244
|
if (error instanceof import_types.ExpectationError && error.diff) {
|
|
258
245
|
error.diff = {
|
|
@@ -322,22 +309,18 @@ var Expectations = class {
|
|
|
322
309
|
const diff2 = { diff: true, value: this.value, expected };
|
|
323
310
|
this._fail(`to strictly equal ${(0, import_types.stringifyValue)(expected)}`, diff2);
|
|
324
311
|
}
|
|
325
|
-
|
|
326
|
-
/**
|
|
327
|
-
* Expects the value to be a `function` throwing, and (if specified) further
|
|
328
|
-
* asserts the thrown value with an {@link AssertionFunction}.
|
|
329
|
-
*
|
|
330
|
-
* Negation: {@link NegativeExpectations.toThrow `not.toThrow()`}
|
|
331
|
-
*/
|
|
332
|
-
toThrow(assert) {
|
|
312
|
+
toThrow(assertionOrMatcher) {
|
|
333
313
|
const func = this.toBeA("function");
|
|
334
314
|
let passed = false;
|
|
335
315
|
try {
|
|
336
316
|
func.value();
|
|
337
317
|
passed = true;
|
|
338
318
|
} catch (thrown) {
|
|
339
|
-
if (
|
|
340
|
-
|
|
319
|
+
if ((0, import_types.isMatcher)(assertionOrMatcher)) {
|
|
320
|
+
assertionOrMatcher.expect(thrown);
|
|
321
|
+
} else if (assertionOrMatcher) {
|
|
322
|
+
assertionOrMatcher(new Expectations(thrown, this.remarks));
|
|
323
|
+
}
|
|
341
324
|
}
|
|
342
325
|
if (passed)
|
|
343
326
|
this._fail("to throw");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/expectation/expectations.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAgC;AAChC,qBAA2C;AAE3C,mBAUO;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["diff"]
|
|
6
6
|
}
|