| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent eecd327 commit 3c88b76
15 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -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 | |
| Back | FazBrowse Home | New Git URL |
0 commit comments