@plugjs/expect5 0.4.4 → 0.4.5

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.
Files changed (90) hide show
  1. package/dist/cli.mjs +2 -2
  2. package/dist/cli.mjs.map +1 -1
  3. package/dist/execution/executor.cjs.map +1 -1
  4. package/dist/execution/executor.d.ts +1 -1
  5. package/dist/execution/executor.mjs +1 -1
  6. package/dist/execution/executor.mjs.map +1 -1
  7. package/dist/execution/setup.cjs.map +1 -1
  8. package/dist/execution/setup.d.ts +1 -1
  9. package/dist/execution/setup.mjs +1 -1
  10. package/dist/execution/setup.mjs.map +1 -1
  11. package/dist/expectation/async.cjs +58 -45
  12. package/dist/expectation/async.cjs.map +1 -1
  13. package/dist/expectation/async.d.ts +53 -52
  14. package/dist/expectation/async.mjs +59 -42
  15. package/dist/expectation/async.mjs.map +1 -1
  16. package/dist/expectation/diff.cjs.map +1 -1
  17. package/dist/expectation/diff.mjs +6 -1
  18. package/dist/expectation/diff.mjs.map +1 -1
  19. package/dist/expectation/expect.cjs +11 -165
  20. package/dist/expectation/expect.cjs.map +2 -2
  21. package/dist/expectation/expect.d.ts +10 -112
  22. package/dist/expectation/expect.mjs +12 -207
  23. package/dist/expectation/expect.mjs.map +2 -2
  24. package/dist/expectation/expectations.cjs +549 -0
  25. package/dist/expectation/expectations.cjs.map +6 -0
  26. package/dist/expectation/expectations.d.ts +454 -0
  27. package/dist/expectation/expectations.mjs +530 -0
  28. package/dist/expectation/expectations.mjs.map +6 -0
  29. package/dist/expectation/include.cjs +43 -41
  30. package/dist/expectation/include.cjs.map +1 -1
  31. package/dist/expectation/include.d.ts +3 -19
  32. package/dist/expectation/include.mjs +43 -41
  33. package/dist/expectation/include.mjs.map +1 -1
  34. package/dist/expectation/matchers.cjs +350 -0
  35. package/dist/expectation/matchers.cjs.map +6 -0
  36. package/dist/expectation/matchers.d.ts +375 -0
  37. package/dist/expectation/matchers.mjs +328 -0
  38. package/dist/expectation/matchers.mjs.map +6 -0
  39. package/dist/expectation/print.cjs.map +1 -1
  40. package/dist/expectation/print.d.ts +2 -2
  41. package/dist/expectation/print.mjs.map +1 -1
  42. package/dist/expectation/types.cjs +17 -23
  43. package/dist/expectation/types.cjs.map +1 -1
  44. package/dist/expectation/types.d.ts +7 -51
  45. package/dist/expectation/types.mjs +17 -22
  46. package/dist/expectation/types.mjs.map +1 -1
  47. package/dist/globals.d.ts +2 -2
  48. package/dist/index.cjs +5 -5
  49. package/dist/index.cjs.map +1 -1
  50. package/dist/index.d.ts +3 -4
  51. package/dist/index.mjs +11 -12
  52. package/dist/index.mjs.map +1 -1
  53. package/dist/test.cjs +34 -5
  54. package/dist/test.cjs.map +1 -1
  55. package/dist/test.d.ts +2 -2
  56. package/dist/test.mjs +35 -6
  57. package/dist/test.mjs.map +1 -1
  58. package/package.json +2 -2
  59. package/src/cli.mts +1 -1
  60. package/src/execution/executor.ts +1 -3
  61. package/src/execution/setup.ts +1 -3
  62. package/src/expectation/async.ts +116 -145
  63. package/src/expectation/diff.ts +7 -3
  64. package/src/expectation/expect.ts +22 -362
  65. package/src/expectation/expectations.ts +971 -0
  66. package/src/expectation/include.ts +59 -75
  67. package/src/expectation/matchers.ts +698 -0
  68. package/src/expectation/print.ts +8 -4
  69. package/src/expectation/types.ts +22 -94
  70. package/src/globals.ts +2 -2
  71. package/src/index.ts +17 -10
  72. package/src/test.ts +34 -10
  73. package/dist/expectation/basic.cjs +0 -188
  74. package/dist/expectation/basic.cjs.map +0 -6
  75. package/dist/expectation/basic.d.ts +0 -90
  76. package/dist/expectation/basic.mjs +0 -156
  77. package/dist/expectation/basic.mjs.map +0 -6
  78. package/dist/expectation/throwing.cjs +0 -58
  79. package/dist/expectation/throwing.cjs.map +0 -6
  80. package/dist/expectation/throwing.d.ts +0 -36
  81. package/dist/expectation/throwing.mjs +0 -32
  82. package/dist/expectation/throwing.mjs.map +0 -6
  83. package/dist/expectation/trivial.cjs +0 -96
  84. package/dist/expectation/trivial.cjs.map +0 -6
  85. package/dist/expectation/trivial.d.ts +0 -13
  86. package/dist/expectation/trivial.mjs +0 -61
  87. package/dist/expectation/trivial.mjs.map +0 -6
  88. package/src/expectation/basic.ts +0 -413
  89. package/src/expectation/throwing.ts +0 -106
  90. 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": "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",
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 { Files } from '@plugjs/plug/files';
3
- import type { Context, PipeParameters, Plug } from '@plugjs/plug/pipe';
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 { skip, Suite } from "./execution/executable.mjs";
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 { diff } from "./expectation/diff.mjs";
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 type = stringifyObjectType(error);
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,31 @@ function dumpError(log2, error, genericErrorDiffs) {
183
187
  log2.error($gry("Uknown error:"), error);
184
188
  }
185
189
  }
190
+ function dumpProps(log2, pad, error) {
191
+ const keys = 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
+ log2.error("KEYS!!!", keys);
214
+ }
186
215
  function dumpStack(log2, error) {
187
216
  if (!error.stack)
188
217
  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": "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",
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.4",
3
+ "version": "0.4.5",
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.4"
50
+ "@plugjs/plug": "0.4.5"
51
51
  },
52
52
  "files": [
53
53
  "*.md",
package/src/cli.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import { async, find, paths, pipe, logging } from '@plugjs/plug'
3
+ import { async, find, logging, paths, pipe } from '@plugjs/plug'
4
4
  import { main, yargsParser } from '@plugjs/tsrun'
5
5
 
6
6
  import { Test } from './test'
@@ -1,9 +1,7 @@
1
1
  import assert from 'node:assert'
2
2
  import { EventEmitter } from 'node:events'
3
3
 
4
- import { Spec, Suite, Hook } from './executable'
5
-
6
- import type { Executor } from './executable'
4
+ import { Hook, Spec, Suite, type Executor } from './executable'
7
5
 
8
6
  /* ========================================================================== */
9
7
 
@@ -1,6 +1,4 @@
1
- import { getCurrentSuite, Suite, Spec, Hook } from './executable'
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 & {
@@ -1,151 +1,122 @@
1
- import { ExpectationError } from './types'
1
+ import {
2
+ Expectations,
3
+ type AssertionFunction,
4
+ type AssertedType,
5
+ } from './expectations'
2
6
 
3
- import type { Expectations } from './expect'
4
- import type {
5
- AssertedType,
6
- AssertionFunction,
7
- Constructor,
8
- ExpectationsContext,
9
- } from './types'
7
+ import type { Constructor } from './types'
10
8
 
11
9
  /**
12
- * A {@link Promise} for an {@link Expectations} instance expecting a
13
- * _then-able_ {@link PromiseLike}.
10
+ * Extension to {@link Expectations} adding support for {@link Promise}s.
14
11
  *
15
- * Long story short: the {@link toBeResolved}, {@link toBeRejectedWithError} and
16
- * {@link toBeRejected} expectations are asynchronous, henceforth they return
17
- * the first {@link Promise} to an {@link Expectations} instance. They also
18
- * ensure that the value being expected is a _then-able_ {@link PromiseLike}.
12
+ * These expectations are _separate_ from the main {@link Expectations}, as we
13
+ * can't use them in {@link AssertionFunction}s, without ending up with
14
+ * _unhandled rejections_ in the Node.js process.
19
15
  */
20
- type ExpectationsPromise<E, T2 = unknown> =
21
- unknown extends T2 ?
22
- E extends Expectations<infer T1> ?
23
- Promise<Expectations<PromiseLike<Awaited<T1>>>> :
24
- Promise<Expectations<PromiseLike<unknown>>> :
25
- Promise<Expectations<PromiseLike<T2>>>
26
-
27
- /* === TO BE RESOLVED ======================================================= */
28
-
29
- /** Expects the value to be a _resolved_ {@link PromiseLike}. */
30
- function toBeResolved<T>(this: T): ExpectationsPromise<T>
31
-
32
- /**
33
- * Expects the value to be a _resolved_ {@link Promise}, and asserts the
34
- * resolved result with the specified callback.
35
- */
36
- function toBeResolved<T, A extends AssertionFunction>(
37
- this: T,
38
- assert: A,
39
- ): ExpectationsPromise<T, AssertedType<A>>
40
-
41
- /* Overloaded function implementation */
42
- function toBeResolved(
43
- this: ExpectationsContext,
44
- assert?: (resultExpectations: Expectations) => void,
45
- ): Promise<Expectations> {
46
- void assert
47
- return Promise.resolve()
48
- .then(() => {
49
- this.expects.toHaveProperty('then', (a) => a.toBeA('function'))
50
- return Promise.allSettled([ Promise.resolve(this.value) ])
51
- })
52
- .then(([ settlement ]) => {
53
- if (settlement.status === 'fulfilled') {
54
- if (this.negative) throw new ExpectationError(this, 'to be resolved')
55
- if (assert) assert(this.forValue(settlement.value))
56
- } else if (! this.negative) {
57
- throw new ExpectationError(this, 'to be resolved')
58
- }
59
-
60
- return this.expects
61
- })
62
- }
63
-
64
- /* === TO BE REJECTED ======================================================= */
65
-
66
- /** Expect the value to be a _rejected_ {@link Promise}. */
67
- function toBeRejected<T>(this: T): ExpectationsPromise<T>
68
-
69
- /**
70
- * Expect the value to be a _rejected_ {@link Promise}, and asserts the
71
- * rejection reason with the specified callback.
72
- */
73
- function toBeRejected<T>(this: T, assert: AssertionFunction): ExpectationsPromise<T>
74
-
75
- /* Overloaded function implementation */
76
- function toBeRejected(
77
- this: ExpectationsContext,
78
- assert?: AssertionFunction,
79
- ): Promise<Expectations> {
80
- return Promise.resolve()
81
- .then(() => {
82
- this.expects.toHaveProperty('then', (a) => a.toBeA('function'))
83
- return Promise.allSettled([ Promise.resolve(this.value) ])
84
- })
85
- .then(([ settlement ]) => {
86
- if (settlement.status === 'rejected') {
87
- if (this.negative) throw new ExpectationError(this, 'to be rejected')
88
- if (assert) assert(this.forValue(settlement.reason))
89
- } else if (! this.negative) {
90
- throw new ExpectationError(this, 'to be rejected')
91
- }
92
-
93
- return this.expects
94
- })
95
- }
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))
16
+ export class AsyncExpectations<T = unknown> extends Expectations<T> {
17
+ /**
18
+ * Create an {@link AsyncExpectations} instance associated with the specified
19
+ * value and error remarks.
20
+ */
21
+ constructor(value: T, remarks: string | undefined) {
22
+ super(value, remarks)
23
+ }
24
+
25
+ /* ------------------------------------------------------------------------ */
26
+
27
+ /**
28
+ * Expects the value to be a _rejected_ {@link PromiseLike}, and (if
29
+ * specified) further asserts the rejection reason with an
30
+ * {@link AssertionFunction}.
31
+ *
32
+ * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
33
+ */
34
+ toBeRejected(
35
+ assertion?: AssertionFunction,
36
+ ): Promise<Expectations<PromiseLike<Awaited<T>>>> {
37
+ return Promise.resolve()
38
+ .then(() => {
39
+ this.toHaveProperty('then', (assert) => assert.toBeA('function'))
40
+ return Promise.allSettled([ Promise.resolve(this.value) ])
41
+ })
42
+ .then(([ settlement ]) => {
43
+ if (settlement.status === 'rejected') {
44
+ if (assertion) assertion(new Expectations(settlement.reason, this.remarks))
45
+ return this as Expectations<any>
46
+ }
47
+
48
+ this._fail('to be rejected')
49
+ })
50
+ }
51
+
52
+ /* ------------------------------------------------------------------------ */
53
+
54
+ /**
55
+ * Expect the value to be a _rejected_ {@link PromiseLike}, and further
56
+ * asserts the rejection reason to be an {@link Error}.
57
+ *
58
+ * If specified, the {@link Error}'s own message will be further expected to
59
+ * either match the specified {@link RegExp}, or equal to the specified
60
+ * `string`.
61
+ *
62
+ * Negation: {@link Expectations.toBeResolved `toBeResolved(...)`}
63
+ */
64
+ toBeRejectedWithError(
65
+ message?: string | RegExp
66
+ ): Promise<Expectations<PromiseLike<Awaited<T>>>>
67
+
68
+ /**
69
+ * Expect the value to be a _rejected_ {@link PromiseLike}, and further
70
+ * asserts the rejection reason to be an instance of the specifed
71
+ * {@link Error} {@link Constructor}.
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
+ constructor: Constructor<Error>,
81
+ message?: string | RegExp,
82
+ ): Promise<Expectations<PromiseLike<T>>>
83
+
84
+ toBeRejectedWithError(
85
+ constructorOrMessage?: string | RegExp | Constructor,
86
+ maybeMessage?: string | RegExp,
87
+ ): Promise<Expectations> {
88
+ const [ constructor, message ] =
89
+ typeof constructorOrMessage === 'function' ?
90
+ [ constructorOrMessage, maybeMessage ] :
91
+ [ Error, constructorOrMessage ]
92
+
93
+ return this.toBeRejected((assert) => assert.toBeError(constructor, message))
94
+ }
95
+
96
+ /* ------------------------------------------------------------------------ */
97
+
98
+ /**
99
+ * Expects the value to be a _resolved_ {@link PromiseLike}, and (if
100
+ * specified) further asserts the resolved result with an
101
+ * {@link AssertionFunction}.
102
+ *
103
+ * Negation: {@link Expectations.toBeRejected `toBeRejected(...)`}
104
+ */
105
+ toBeResolved<Assert extends AssertionFunction<Awaited<T>>>(
106
+ assertion?: Assert,
107
+ ): Promise<Expectations<PromiseLike<AssertedType<Awaited<T>, Assert>>>> {
108
+ return Promise.resolve()
109
+ .then(() => {
110
+ this.toHaveProperty('then', (assert) => assert.toBeA('function'))
111
+ return Promise.allSettled([ Promise.resolve(this.value) ])
112
+ })
113
+ .then(([ settlement ]) => {
114
+ if (settlement.status === 'fulfilled') {
115
+ if (assertion) assertion(new Expectations(settlement.value, this.remarks))
116
+ return this as Expectations<any>
117
+ }
118
+
119
+ this._fail('to be resolved')
120
+ })
121
+ }
146
122
  }
147
-
148
- /* === EXPORTS ============================================================== */
149
-
150
- /* coverage ignore next */
151
- export { toBeResolved, toBeRejected, toBeRejectedWithError }
@@ -1,7 +1,11 @@
1
1
  /* eslint-disable no-fallthrough */
2
- import { ExpectationError, isMatcher, stringifyConstructor, stringifyValue } from './types'
3
-
4
- import type { Constructor } from './types'
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,