@plugjs/expect5 0.4.4 → 0.4.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.mjs +2 -2
- package/dist/cli.mjs.map +1 -1
- package/dist/execution/executor.cjs.map +1 -1
- package/dist/execution/executor.d.ts +1 -1
- package/dist/execution/executor.mjs +1 -1
- package/dist/execution/executor.mjs.map +1 -1
- package/dist/execution/setup.cjs.map +1 -1
- package/dist/execution/setup.d.ts +1 -1
- package/dist/execution/setup.mjs +1 -1
- package/dist/execution/setup.mjs.map +1 -1
- package/dist/expectation/async.cjs +78 -45
- package/dist/expectation/async.cjs.map +1 -1
- package/dist/expectation/async.d.ts +66 -51
- package/dist/expectation/async.mjs +79 -42
- package/dist/expectation/async.mjs.map +1 -1
- package/dist/expectation/diff.cjs.map +1 -1
- package/dist/expectation/diff.mjs +6 -1
- package/dist/expectation/diff.mjs.map +1 -1
- package/dist/expectation/expect.cjs +11 -165
- package/dist/expectation/expect.cjs.map +2 -2
- package/dist/expectation/expect.d.ts +10 -112
- package/dist/expectation/expect.mjs +12 -207
- package/dist/expectation/expect.mjs.map +2 -2
- package/dist/expectation/expectations.cjs +549 -0
- package/dist/expectation/expectations.cjs.map +6 -0
- package/dist/expectation/expectations.d.ts +454 -0
- package/dist/expectation/expectations.mjs +530 -0
- package/dist/expectation/expectations.mjs.map +6 -0
- package/dist/expectation/include.cjs +43 -41
- package/dist/expectation/include.cjs.map +1 -1
- package/dist/expectation/include.d.ts +3 -19
- package/dist/expectation/include.mjs +43 -41
- package/dist/expectation/include.mjs.map +1 -1
- package/dist/expectation/matchers.cjs +350 -0
- package/dist/expectation/matchers.cjs.map +6 -0
- package/dist/expectation/matchers.d.ts +375 -0
- package/dist/expectation/matchers.mjs +328 -0
- package/dist/expectation/matchers.mjs.map +6 -0
- package/dist/expectation/print.cjs.map +1 -1
- package/dist/expectation/print.d.ts +2 -2
- package/dist/expectation/print.mjs.map +1 -1
- package/dist/expectation/types.cjs +17 -23
- package/dist/expectation/types.cjs.map +1 -1
- package/dist/expectation/types.d.ts +7 -51
- package/dist/expectation/types.mjs +17 -22
- package/dist/expectation/types.mjs.map +1 -1
- package/dist/globals.d.ts +2 -2
- package/dist/index.cjs +5 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.mjs +11 -12
- package/dist/index.mjs.map +1 -1
- package/dist/test.cjs +33 -5
- package/dist/test.cjs.map +1 -1
- package/dist/test.d.ts +2 -2
- package/dist/test.mjs +34 -6
- package/dist/test.mjs.map +1 -1
- package/package.json +2 -2
- package/src/cli.mts +1 -1
- package/src/execution/executor.ts +1 -3
- package/src/execution/setup.ts +1 -3
- package/src/expectation/async.ts +145 -145
- package/src/expectation/diff.ts +7 -3
- package/src/expectation/expect.ts +22 -362
- package/src/expectation/expectations.ts +971 -0
- package/src/expectation/include.ts +59 -75
- package/src/expectation/matchers.ts +698 -0
- package/src/expectation/print.ts +8 -4
- package/src/expectation/types.ts +22 -94
- package/src/globals.ts +2 -2
- package/src/index.ts +17 -10
- package/src/test.ts +33 -10
- package/dist/expectation/basic.cjs +0 -188
- package/dist/expectation/basic.cjs.map +0 -6
- package/dist/expectation/basic.d.ts +0 -90
- package/dist/expectation/basic.mjs +0 -156
- package/dist/expectation/basic.mjs.map +0 -6
- package/dist/expectation/throwing.cjs +0 -58
- package/dist/expectation/throwing.cjs.map +0 -6
- package/dist/expectation/throwing.d.ts +0 -36
- package/dist/expectation/throwing.mjs +0 -32
- package/dist/expectation/throwing.mjs.map +0 -6
- package/dist/expectation/trivial.cjs +0 -96
- package/dist/expectation/trivial.cjs.map +0 -6
- package/dist/expectation/trivial.d.ts +0 -13
- package/dist/expectation/trivial.mjs +0 -61
- package/dist/expectation/trivial.mjs.map +0 -6
- package/src/expectation/basic.ts +0 -413
- package/src/expectation/throwing.ts +0 -106
- package/src/expectation/trivial.ts +0 -107
package/dist/test.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/test.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,yBAA+B;AAE/B,kBAA6B;AAC7B,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["log"]
|
|
6
6
|
}
|
package/dist/test.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference path="index.d.ts" />
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
2
|
+
import { type Files } from '@plugjs/plug/files';
|
|
3
|
+
import { type Context, type PipeParameters, type Plug } from '@plugjs/plug/pipe';
|
|
4
4
|
/** Writes some info about the current {@link Files} being passed around. */
|
|
5
5
|
export declare class Test implements Plug<void> {
|
|
6
6
|
private readonly _options;
|
package/dist/test.mjs
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// test.ts
|
|
2
2
|
import { AssertionError } from "node:assert";
|
|
3
3
|
import { BuildFailure } from "@plugjs/plug";
|
|
4
|
-
import { $blu, $grn, $gry, $ms, $red, $wht, $ylw, log, ERROR, NOTICE, WARN } from "@plugjs/plug/logging";
|
|
5
4
|
import { assert } from "@plugjs/plug/asserts";
|
|
6
|
-
import {
|
|
5
|
+
import { $blu, $grn, $gry, $ms, $red, $wht, $ylw, ERROR, NOTICE, WARN, log } from "@plugjs/plug/logging";
|
|
6
|
+
import * as setup from "./execution/setup.mjs";
|
|
7
|
+
import { Suite, skip } from "./execution/executable.mjs";
|
|
7
8
|
import { runSuite } from "./execution/executor.mjs";
|
|
9
|
+
import { diff } from "./expectation/diff.mjs";
|
|
8
10
|
import { expect } from "./expectation/expect.mjs";
|
|
9
|
-
import { ExpectationError, stringifyObjectType } from "./expectation/types.mjs";
|
|
10
11
|
import { printDiff } from "./expectation/print.mjs";
|
|
11
|
-
import {
|
|
12
|
-
import * as setup from "./execution/setup.mjs";
|
|
12
|
+
import { ExpectationError, stringifyObjectType, stringifyValue } from "./expectation/types.mjs";
|
|
13
13
|
var _pending = "\u22EF";
|
|
14
14
|
var _success = "\u2714";
|
|
15
15
|
var _failure = "\u2718";
|
|
@@ -139,6 +139,7 @@ function dumpError(log2, error, genericErrorDiffs) {
|
|
|
139
139
|
if (error instanceof ExpectationError) {
|
|
140
140
|
log2.enter(ERROR, `${$gry("Expectation Error:")} ${$red(error.message)}`);
|
|
141
141
|
try {
|
|
142
|
+
dumpProps(log2, 17, error);
|
|
142
143
|
dumpStack(log2, error);
|
|
143
144
|
if (error.diff)
|
|
144
145
|
printDiff(log2, error.diff);
|
|
@@ -150,6 +151,7 @@ function dumpError(log2, error, genericErrorDiffs) {
|
|
|
150
151
|
const [message = "Unknown Error", ...lines] = error.message.split("\n");
|
|
151
152
|
log2.enter(ERROR, `${$gry("Assertion Error:")} ${$red(message)}`);
|
|
152
153
|
try {
|
|
154
|
+
dumpProps(log2, 15, error);
|
|
153
155
|
dumpStack(log2, error);
|
|
154
156
|
if (genericErrorDiffs) {
|
|
155
157
|
if (!error.generatedMessage)
|
|
@@ -168,9 +170,11 @@ function dumpError(log2, error, genericErrorDiffs) {
|
|
|
168
170
|
}
|
|
169
171
|
} else if (error instanceof Error) {
|
|
170
172
|
const message = error.message || "Unknown Error";
|
|
171
|
-
const
|
|
173
|
+
const string = stringifyObjectType(error);
|
|
174
|
+
const type = string === "[AssertionError]" ? "Assertion Error" : string;
|
|
172
175
|
log2.enter(ERROR, `${$gry(type)}: ${$red(message)}`);
|
|
173
176
|
try {
|
|
177
|
+
dumpProps(log2, type.length, error);
|
|
174
178
|
dumpStack(log2, error);
|
|
175
179
|
if (genericErrorDiffs && ("actual" in error || "expected" in error)) {
|
|
176
180
|
printDiff(log2, diff(error.actual, error.expected));
|
|
@@ -183,6 +187,30 @@ function dumpError(log2, error, genericErrorDiffs) {
|
|
|
183
187
|
log2.error($gry("Uknown error:"), error);
|
|
184
188
|
}
|
|
185
189
|
}
|
|
190
|
+
function dumpProps(log2, pad, error) {
|
|
191
|
+
Object.keys(error).filter((k) => ![
|
|
192
|
+
"diff",
|
|
193
|
+
// expectations error,
|
|
194
|
+
"actual",
|
|
195
|
+
// assertion error, chai
|
|
196
|
+
"expected",
|
|
197
|
+
// assertion error, chai,
|
|
198
|
+
"generatedMessage",
|
|
199
|
+
// assertion error,
|
|
200
|
+
"message",
|
|
201
|
+
// error
|
|
202
|
+
"showDiff",
|
|
203
|
+
// chai
|
|
204
|
+
"stack"
|
|
205
|
+
// error
|
|
206
|
+
].includes(k)).forEach((k) => {
|
|
207
|
+
const value = error[k];
|
|
208
|
+
if (k === "code" && value === "ERR_ASSERTION")
|
|
209
|
+
return;
|
|
210
|
+
const details = typeof value === "string" ? value : stringifyValue(value);
|
|
211
|
+
log2.error($gry(`${k}:`.padStart(pad - 1)), $ylw(details));
|
|
212
|
+
});
|
|
213
|
+
}
|
|
186
214
|
function dumpStack(log2, error) {
|
|
187
215
|
if (!error.stack)
|
|
188
216
|
return log2.error("<no stack trace>");
|
package/dist/test.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/test.ts"],
|
|
4
|
-
"mappings": ";AAGA,SAAS,sBAAsB;AAE/B,SAAS,oBAAoB;AAC7B,SAAS,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["log"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plugjs/expect5",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"chai": "^4.3.7"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@plugjs/plug": "0.4.
|
|
50
|
+
"@plugjs/plug": "0.4.6"
|
|
51
51
|
},
|
|
52
52
|
"files": [
|
|
53
53
|
"*.md",
|
package/src/cli.mts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import assert from 'node:assert'
|
|
2
2
|
import { EventEmitter } from 'node:events'
|
|
3
3
|
|
|
4
|
-
import { Spec, Suite,
|
|
5
|
-
|
|
6
|
-
import type { Executor } from './executable'
|
|
4
|
+
import { Hook, Spec, Suite, type Executor } from './executable'
|
|
7
5
|
|
|
8
6
|
/* ========================================================================== */
|
|
9
7
|
|
package/src/execution/setup.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import type { Call } from './executable'
|
|
1
|
+
import { Hook, Spec, Suite, getCurrentSuite, type Call } from './executable'
|
|
4
2
|
|
|
5
3
|
export type SuiteSetup = (name: string, call: Call, timeout?: number) => void
|
|
6
4
|
export type SuiteFunction = SuiteSetup & {
|
package/src/expectation/async.ts
CHANGED
|
@@ -1,151 +1,151 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
Expectations,
|
|
3
|
+
type AssertionFunction,
|
|
4
|
+
type AssertedType,
|
|
5
|
+
type InferMatchers,
|
|
6
|
+
} from './expectations'
|
|
2
7
|
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
AssertedType,
|
|
6
|
-
AssertionFunction,
|
|
7
|
-
Constructor,
|
|
8
|
-
ExpectationsContext,
|
|
9
|
-
} from './types'
|
|
8
|
+
import type { Constructor } from './types'
|
|
10
9
|
|
|
11
10
|
/**
|
|
12
|
-
*
|
|
13
|
-
* _then-able_ {@link PromiseLike}.
|
|
11
|
+
* Extension to {@link Expectations} adding support for {@link Promise}s.
|
|
14
12
|
*
|
|
15
|
-
*
|
|
16
|
-
* {@link
|
|
17
|
-
*
|
|
18
|
-
* ensure that the value being expected is a _then-able_ {@link PromiseLike}.
|
|
13
|
+
* These expectations are _separate_ from the main {@link Expectations}, as we
|
|
14
|
+
* can't use them in {@link AssertionFunction}s, without ending up with
|
|
15
|
+
* _unhandled rejections_ in the Node.js process.
|
|
19
16
|
*/
|
|
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
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
17
|
+
export class AsyncExpectations<T = unknown> extends Expectations<T> {
|
|
18
|
+
/**
|
|
19
|
+
* Create an {@link AsyncExpectations} instance associated with the specified
|
|
20
|
+
* value and error remarks.
|
|
21
|
+
*/
|
|
22
|
+
constructor(value: T, remarks: string | undefined) {
|
|
23
|
+
super(value, remarks)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* ------------------------------------------------------------------------ */
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Expects the value to be a _rejected_ {@link PromiseLike}, and (if
|
|
30
|
+
* specified) further asserts the rejection reason with an
|
|
31
|
+
* {@link AssertionFunction}.
|
|
32
|
+
*
|
|
33
|
+
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
34
|
+
*/
|
|
35
|
+
toBeRejected(
|
|
36
|
+
assertion?: AssertionFunction,
|
|
37
|
+
): Promise<Expectations<PromiseLike<Awaited<T>>>> {
|
|
38
|
+
return Promise.resolve()
|
|
39
|
+
.then(() => {
|
|
40
|
+
this.toHaveProperty('then', (assert) => assert.toBeA('function'))
|
|
41
|
+
return Promise.allSettled([ Promise.resolve(this.value) ])
|
|
42
|
+
})
|
|
43
|
+
.then(([ settlement ]) => {
|
|
44
|
+
if (settlement.status === 'rejected') {
|
|
45
|
+
if (assertion) assertion(new Expectations(settlement.reason, this.remarks))
|
|
46
|
+
return this as Expectations<any>
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
this._fail('to be rejected')
|
|
50
|
+
})
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* ------------------------------------------------------------------------ */
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Expects the value to be a {@link PromiseLike} _rejected_ with an
|
|
57
|
+
* {@link Error} _strictly equal_ to the one specified.
|
|
58
|
+
*
|
|
59
|
+
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
60
|
+
*/
|
|
61
|
+
toBeRejectedWith(
|
|
62
|
+
expected: Error,
|
|
63
|
+
): Promise<Expectations<PromiseLike<Awaited<T>>>> {
|
|
64
|
+
return this.toBeRejected((assert) => assert.toStrictlyEqual(expected))
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* ------------------------------------------------------------------------ */
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Expect the value to be a _rejected_ {@link PromiseLike}, and further
|
|
71
|
+
* asserts the rejection reason to be an {@link Error}.
|
|
72
|
+
*
|
|
73
|
+
* If specified, the {@link Error}'s own message will be further expected to
|
|
74
|
+
* either match the specified {@link RegExp}, or equal to the specified
|
|
75
|
+
* `string`.
|
|
76
|
+
*
|
|
77
|
+
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
78
|
+
*/
|
|
79
|
+
toBeRejectedWithError(
|
|
80
|
+
message?: string | RegExp
|
|
81
|
+
): Promise<Expectations<PromiseLike<Awaited<T>>>>
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Expect the value to be a _rejected_ {@link PromiseLike}, and further
|
|
85
|
+
* asserts the rejection reason to be an instance of the specifed
|
|
86
|
+
* {@link Error} {@link Constructor}.
|
|
87
|
+
*
|
|
88
|
+
* If specified, the {@link Error}'s own message will be further expected to
|
|
89
|
+
* either match the specified {@link RegExp}, or equal to the specified
|
|
90
|
+
* `string`.
|
|
91
|
+
*
|
|
92
|
+
* Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
|
|
93
|
+
*/
|
|
94
|
+
toBeRejectedWithError(
|
|
95
|
+
constructor: Constructor<Error>,
|
|
96
|
+
message?: string | RegExp,
|
|
97
|
+
): Promise<Expectations<PromiseLike<Awaited<T>>>>
|
|
98
|
+
|
|
99
|
+
toBeRejectedWithError(
|
|
100
|
+
constructorOrMessage?: string | RegExp | Constructor,
|
|
101
|
+
maybeMessage?: string | RegExp,
|
|
102
|
+
): Promise<Expectations> {
|
|
103
|
+
const [ constructor, message ] =
|
|
104
|
+
typeof constructorOrMessage === 'function' ?
|
|
105
|
+
[ constructorOrMessage, maybeMessage ] :
|
|
106
|
+
[ Error, constructorOrMessage ]
|
|
107
|
+
|
|
108
|
+
return this.toBeRejected((assert) => assert.toBeError(constructor, message))
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* ------------------------------------------------------------------------ */
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Expects the value to be a _resolved_ {@link PromiseLike}, and (if
|
|
115
|
+
* specified) further asserts the resolved result with an
|
|
116
|
+
* {@link AssertionFunction}.
|
|
117
|
+
*
|
|
118
|
+
* Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
|
|
119
|
+
*/
|
|
120
|
+
toBeResolved<Assert extends AssertionFunction<Awaited<T>>>(
|
|
121
|
+
assertion?: Assert,
|
|
122
|
+
): Promise<Expectations<PromiseLike<AssertedType<Awaited<T>, Assert>>>> {
|
|
123
|
+
return Promise.resolve()
|
|
124
|
+
.then(() => {
|
|
125
|
+
this.toHaveProperty('then', (assert) => assert.toBeA('function'))
|
|
126
|
+
return Promise.allSettled([ Promise.resolve(this.value) ])
|
|
127
|
+
})
|
|
128
|
+
.then(([ settlement ]) => {
|
|
129
|
+
if (settlement.status === 'fulfilled') {
|
|
130
|
+
if (assertion) assertion(new Expectations(settlement.value, this.remarks))
|
|
131
|
+
return this as Expectations<any>
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
this._fail('to be resolved')
|
|
135
|
+
})
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/* ------------------------------------------------------------------------ */
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Expects the value to be a {@link PromiseLike} _resolved_ with a value
|
|
142
|
+
* _deeply equal_ to the one specified.
|
|
143
|
+
*
|
|
144
|
+
* Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
|
|
145
|
+
*/
|
|
146
|
+
toBeResolvedWith<Type>(
|
|
147
|
+
expected: Type,
|
|
148
|
+
): Promise<Expectations<PromiseLike<InferMatchers<Type>>>> {
|
|
149
|
+
return this.toBeResolved((assert) => assert.toEqual(expected)) as any
|
|
150
|
+
}
|
|
95
151
|
}
|
|
96
|
-
|
|
97
|
-
/* === TO BE REJECTED WITH ERROR ============================================ */
|
|
98
|
-
|
|
99
|
-
/** Expect the value to be a {@link Promise} _rejected_ by an {@link Error}. */
|
|
100
|
-
function toBeRejectedWithError<T>(this: T, ): ExpectationsPromise<T>
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Expect the value to be a {@link Promise} _rejected_ by an {@link Error}
|
|
104
|
-
* with the specified _message_.
|
|
105
|
-
*/
|
|
106
|
-
function toBeRejectedWithError<T>(this: T, message: string): ExpectationsPromise<T>
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Expect the value to be a {@link Promise} _rejected_ by an {@link Error}
|
|
110
|
-
* with its _message_ matching the specified {@link RegExp}.
|
|
111
|
-
*/
|
|
112
|
-
function toBeRejectedWithError<T>(this: T, message: RegExp): ExpectationsPromise<T>
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* Expect the value to be a {@link Promise} _rejected_ by an {@link Error}
|
|
116
|
-
* of the specified _type_.
|
|
117
|
-
*/
|
|
118
|
-
function toBeRejectedWithError<T>(this: T, constructor: Constructor<Error>): ExpectationsPromise<T>
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Expect the value to be a {@link Promise} _rejected_ by an {@link Error}
|
|
122
|
-
* of the specified _type_ and with the specified _message_.
|
|
123
|
-
*/
|
|
124
|
-
function toBeRejectedWithError<T>(this: T, constructor: Constructor<Error>, message: string): ExpectationsPromise<T>
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Expect the value to be a {@link Promise} _rejected_ by an {@link Error}
|
|
128
|
-
* of the specified _type_ and with the specified _message_.
|
|
129
|
-
*/
|
|
130
|
-
function toBeRejectedWithError<T>(this: T, constructor: Constructor<Error>, message: RegExp): ExpectationsPromise<T>
|
|
131
|
-
|
|
132
|
-
/* Overloaded function implementation */
|
|
133
|
-
function toBeRejectedWithError(
|
|
134
|
-
this: ExpectationsContext,
|
|
135
|
-
...args:
|
|
136
|
-
| []
|
|
137
|
-
| [ string ]
|
|
138
|
-
| [ RegExp ]
|
|
139
|
-
| [ Constructor<Error> ]
|
|
140
|
-
| [ Constructor<Error>, string ]
|
|
141
|
-
| [ Constructor<Error>, RegExp ]
|
|
142
|
-
): Promise<Expectations> {
|
|
143
|
-
return this.negated.toBeRejected((assert) =>
|
|
144
|
-
// @ts-ignore // can't reconcile the types with overloads...
|
|
145
|
-
assert.toBeError(...args))
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/* === EXPORTS ============================================================== */
|
|
149
|
-
|
|
150
|
-
/* coverage ignore next */
|
|
151
|
-
export { toBeResolved, toBeRejected, toBeRejectedWithError }
|
package/src/expectation/diff.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
/* eslint-disable no-fallthrough */
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import {
|
|
3
|
+
ExpectationError,
|
|
4
|
+
isMatcher,
|
|
5
|
+
stringifyConstructor,
|
|
6
|
+
stringifyValue,
|
|
7
|
+
type Constructor,
|
|
8
|
+
} from './types'
|
|
5
9
|
|
|
6
10
|
export interface BaseDiff {
|
|
7
11
|
diff: boolean,
|