@@ -149,6 +149,8 @@ added: v0.1.21
149
149
* ` operator ` {string} The ` operator ` property on the error instance.
150
150
* ` stackStartFn ` {Function} If provided, the generated stack trace omits
151
151
frames before this function.
152
+ * ` diff ` {string} If set to ` 'full' ` , shows the full diff in assertion errors. Defaults to ` 'simple' ` .
153
+ Accepted values: ` 'simple' ` , ` 'full' ` .
152
154
153
155
A subclass of {Error} that indicates the failure of an assertion.
154
156
@@ -215,6 +217,51 @@ try {
215
217
}
216
218
```
217
219
220
+ ## Class: ` assert.Assert `
221
+
222
+ <!-- YAML
223
+ added: REPLACEME
224
+ -->
225
+
226
+ The ` Assert ` class allows creating independent assertion instances with custom options.
227
+
228
+ ### ` new assert.Assert([options]) `
229
+
230
+ * ` options ` {Object}
231
+ * ` diff ` {string} If set to ` 'full' ` , shows the full diff in assertion errors. Defaults to ` 'simple' ` .
232
+ Accepted values: ` 'simple' ` , ` 'full' ` .
233
+ * ` strict ` {boolean} If set to ` true ` , non-strict methods behave like their
234
+ corresponding strict methods. Defaults to ` true ` .
235
+
236
+ Creates a new assertion instance. The ` diff ` option controls the verbosity of diffs in assertion error messages.
237
+
238
+ ``` js
239
+ const { Assert } = require (' node:assert' );
240
+ const assertInstance = new Assert ({ diff: ' full' });
241
+ assertInstance .deepStrictEqual ({ a: 1 }, { a: 2 });
242
+ // Shows a full diff in the error message.
243
+ ```
244
+
245
+ ** Important** : When destructuring assertion methods from an ` Assert ` instance,
246
+ the methods lose their connection to the instance's configuration options (such as ` diff ` and ` strict ` settings).
247
+ The destructured methods will fall back to default behavior instead.
248
+
249
+ ``` js
250
+ const myAssert = new Assert ({ diff: ' full' });
251
+
252
+ // This works as expected - uses 'full' diff
253
+ myAssert .strictEqual ({ a: 1 }, { b: { c: 1 } });
254
+
255
+ // This loses the 'full' diff setting - falls back to default 'simple' diff
256
+ const { strictEqual } = myAssert;
257
+ strictEqual ({ a: 1 }, { b: { c: 1 } });
258
+ ```
259
+
260
+ When destructured, methods lose access to the instance's ` this ` context and revert to default assertion behavior
261
+ (diff: 'simple', non-strict mode).
262
+ To maintain custom options when using destructured methods, avoid
263
+ destructuring and call methods directly on the instance.
264
+
218
265
## Class: ` assert.CallTracker `
219
266
220
267
<!-- YAML
0 commit comments