333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
# 13.2.3 / 2018-07-30
 
* `.only.keys` throws when no `Object.prototype.should`
 
# 13.2.2 / 2018-07-26
 
* Updates for TS definition
 
# 13.2.1 / 2018-01-12
 
* Fix `.size` to work with should/as-function
 
# 13.2.0 / 2017-12-27
 
* Update type adaptors to allow to use Set as iterable everywhere
 
# 13.1.3 / 2017-10-28
 
* Fix weird bug in `.containDeep` when given object is string (see \#157)
 
# 13.1.2 / 2017-10-10
 
* Revert default export in TS definition (added in 13.1.0)
 
# 13.1.1 / 2017-10-07
 
* Added missing return type for `.rejectedWith` in typescript definition
 
# 13.1.0 / 2017-09-20
 
* Added `.resolved` as alias to `.fulfilled`
* Added `.resolvedWith` as alias to `.fulfilledWith`
* All zero argument assertion will throw `TypeError` if any arg passed
* Fix default export for TS definition
 
# 13.0.1 / 2017-09-06
 
* Add missing UMD bundle for browser
 
# 13.0.0 / 2017-09-05
 
* Removed `.enumerable` and `.enumerables`
* Fixed `.match`ing on `Date`s
* Added TypeScript definitions
 
# 12.0.0 / 2017-08-28
 
* Update `should-equal` to 2.x
* Update entry points to do the same thing (global should entry)
 
# 11.2.1 / 2017-03-09
 
* Fix `.match(regex)` for not supported cases
 
# 11.2.0 / 2017-01-27
 
* Added `.only` modifier for `.keys` to check also size
* Soft deprecate `.enumerable(s)`
 
# 11.1.2 / 2016-12-10
 
* Added workaround for runtimes where error's stack populated eagerly
 
# 11.1.1 / 2016-10-10
 
* Update modules
 
# 11.1.0 / 2016-08-14
 
* Update modules
 
# 11.0.0 / 2016-08-10
 
* Extracted parts from code for traversing different data types in similar ways.
  This allows for easily extending the library to almost any collection class.
  Now should.js supports `Set`/`Map`/`WeakSet`/`WeakMap` everywhere.
* `.empty()` now uses new type adaptors
* Breaking change in `.keys()`/`.key()`: now only checks for passed keys (also uses type adaptors) - it can check for keys in `Map`/`Set` e.g
* Added `.value(key, value)` to assert if key-value object has such `value` with this `key`
* Added `.size()` to get size of collection; also works with type adaptors
* `.containEql` uses type adaptors and can check something contained within a collection or sub-part of a key-value object
 
# 10.0.0 / 2016-07-18
 
* Possible breaking change/bugfix in should-format when in objects used keys that looks like a numbers
 
# 9.0.2 / 2016-06-10
 
* Small test fixes for function expressions without names in Chrome
 
# 9.0.1 / 2016-06-09
 
* Fix browser global export
 
# 9.0.0 / 2016-05-30
 
* Set should.config values to be more obvious. Pls check breaking changes page for exact values.
* Add support for SIMD data types.
* Fixed minor bugs in .eql
* Allow to show all equality check fails in .eql
 
# 8.4.0 / 2016-05-21
 
* Add support for Symbols in .eql
 
# 8.3.2 / 2016-05-18
 
* Fix for `should-equal` to do not call .toString when checking circular usage
 
# 8.3.1 / 2016-04-15
 
* Fix browser script to again be UMD bundle
 
# 8.3.0 / 2016-03-23
 
* .true() and .false() can accept optional message to be used in assertion Error
* Add more useful messages to promise assertions
 
# 8.2.2 / 2016-02-09
 
* Fix bug with .match when called primitive to match object
* Various linting issues
 
# 8.2.1 / 2016-01-27
 
* Fix bug with new option, thanks @VinGarcia
 
# 8.2.0 / 2016-01-24
 
* Add option to should.equal to treat -0 and +0 as equals
 
# 8.1.1 / 2016-01-10
 
* Fix browser build to do not loose window.Should
 
# 8.1.0 / 2016-01-10
 
* Add .Date() assertion to test if given object is Date instance
 
# 8.0.2 / 2015-12-18
 
* Update should-format to fix bug in formatting arrow functions
 
# 8.0.1 / 2015-12-11
 
* Fix throwing TypeError in .match
 
# 8.0.0 / 2015-12-08
 
* Move should-promised to main repo
* Expose window.should as should function and not a getter
 
# 7.1.1 / 2015-10-20
 
* Update format package to fix node 0.12 Symbol formatting
 
# 7.1.0 / 2015-08-28
 
* Added .aboveOrEqual and .belowOrEqual for numbers (<= and >=)
* Added .oneOf and .equalOneOf to check equality of one of values
* Added 'browser' field to package.json
 
# 7.0.4 / 2015-08-14
 
* Missing doc for .deepEqual
* Fix .match and dependent assertions to check property in object-object matching
 
# 7.0.3 / 2015-08-09
 
* Add alias .deepEqual for .eql
 
# 7.0.2 / 2015-07-09
 
* Bug in browser script and build
 
# 7.0.1 / 2015-06-18
 
* Fixes in should-type for dom nodes, host object and promises
 
# 7.0.0 / 2015-06-18
 
* Added support to `.eql` es6 set, map and symbol (`should-type`, `should-format`, `should-equal`)
* **Breaking Change** More accurate work with types (dom nodes, typed-arrays).
* **Breaking Change** Change result of should-type to be more accurate and consistent.
* Fixed should-equal options checks
* Fixed should-format typed arrays (more then 8 bits)
* Added aliases: .matchEach => .matchSome, .matchAny => .matchEvery (to be similar to array methods). See #65.
* **Breaking Change (possibly)** .matchEach and .matchAny now uses internally .match. See #65.
* **Breaking Change** No more getter assertions. No all assertions are functions.
* **Breaking Change** No more proxy returning, to check property names.
* **Breaking Change** `should-format` now looks more like chrome developer tools inspections.
 
# 6.0.3 / 2015-05-18
 
* Replace rest of usage after 6.0.2
 
# 6.0.2 / 2015-05-18
 
* Replace in all internal assertions `should` usage to non getter form
 
# 6.0.1 / 2015-04-15
 
* Remove dummy debug messages
 
# 6.0.0 / 2015-04-15
 
* From .containDeep\* removed .indexOf checks for strings, now it is just equality checks (see #55)
* Fix for .not.throws for generators
 
# 5.2.0 / 2015-03-12
 
* Added `.matchAny`, like `.matchEach` but with `some` semantics
 
# 5.1.0 / 2015-03-05
 
* Initial support of es6 generators, iterables, iterators and symbols
* .throwError now support generator functions
* Fix bug in .propertyByPath
 
# 5.0.1 / 2015-02-21
 
* Export utils via should.util
 
# 5.0.0 / 2015-02-10
 
* Remove old .eql implementation
* Refactor nested errors
* Added separate reporting message for false negative results like 10.should.not.equal(10)
* Make error.message lazy fix old performance bottlenecks for constructing messages for big objects
* Added .propertyWithDescriptor
 
# 4.6.5 / 2015-02-05
 
* Fix performance degradation on large objects
 
# 4.6.4 / 2015-02-05
 
* Fix end cases for .containDeep and .containDeepOrdered
 
# 4.6.3 / 2015-02-01
 
* Added small check for .noConflict
* Fix end cases for .containDeep and .containDeepOrdered
 
# 4.6.2 / 2015-01-28
 
* Make assertion properties configurable
 
# 4.6.1 / 2015-01-18
 
* Bump deps
* Set showDiff only if the same types
 
# 4.6.0 / 2015-01-13
 
* Wrap everywhere returned assertion with Proxy if available.
 
# 4.5.2 / 2015-01-13
 
* Fixed null properties in .containDeep and .containDeepOrdered
 
# 4.5.1 / 2015-01-13
 
* Fixed leaked \_eql
 
# 4.5.0 / 2015-01-11
 
* Added config flag .useOldDeepEqual to use old .eql implementation
 
# 4.4.4 / 2015-01-08
 
* Added .enumerables
 
# 4.4.3 / 2015-01-08
 
* Bump dependencies to get more accurate format of promise
* Added a lot of jsdocs
 
# 4.4.2 / 2014-12-27
 
* Remove breaking change with should-equal that check also object prototypes. Instead document how get both behaviours in .eql docs.
 
# 4.4.1 / 2014-12-13
 
* bump deps
 
# 4.4.0 / 2014-12-12
 
* assert methods reimplemented via assertion, deepEqual done via should-equal. To avoid possible confusion between should.deepEqual and a.should.eql(b)
* Possible fix for error tests
 
# 4.3.1 / 2014-12-08
 
* `.throw()` check if given object is a function
 
# 4.3.0 / 2014-11-10
 
* Remove node's version of .eql
* Added reason why .eql failed
 
# 4.2.1 / 2014-11-07
 
* Move inspection from .formattedObj to be in .getMessage - to make inspection as late as possible.
 
# 4.2.0 / 2014-11-06
 
* Remove node util.inspect and use instead own inspection module with type detection and browser types compatibility
 
# 4.1.0 / 2014-10-19
 
* As inspect function was moved to repo, refine how it show Dates (added millis via custom format)
* Added warnings for potential shoot in the leg: eql non strict and should unwrapping primitive wrappers
* Added possibility to disable any warnings via environment variable SHOULDJS_WARN and should.warn = false
* Added new deep equality check function
* Nested assertions can contribute to parent assertions own messages
 
# 4.0.4 / 2014-06-09
 
* Make all assertions enumerable in Assertion.prototype
 
# 4.0.3 / 2014-06-09
 
* Fix wrong/strange behaviour of .containDeep with equal keys. Now it check to contain element once.
* Added util.formatProp to format properties more accurate
 
# 4.0.1 / 2014-06-04
 
* Missing name in browser script
 
# 4.0.0 / 2014-05-29
 
* Breaking change: Move non core assertions out
* Added casting in properties assertions to String for all property names
* Added .propertyByPath assertion
* Breaking change: Remove deprecated .includeEql and .include
* Breaking change: .containDeep now do not check order for 2 arrays case
* Added .containDeepOrdered for old .containDeep
* Added support of array-like objects
* Added to .throw matching by error properties with .match
 
# 3.3.2 / 2014-05-23
 
* Fix for should.format
 
# 3.3.1 / 2014-04-16
 
* Added aliases for es reserved words
* Fix bug with ownProperty alias
* Fix bug with not function alias
 
# 3.3.0 / 2014-04-07
 
* Added .enumerable(name, val)
 
# 3.2.0 / 2014-03-29
 
* Added first version of .any modifier that affect assertions with multiple parameters
* .header now have more nice message
* assertion can now override how to show object
 
# 3.1.4 / 2014-03-18
 
* .Error now do not throw assertion error for custom errors.
 
# 3.1.3 / 2014-02-25
 
* Fix TypeError in .containEql
 
# 3.1.2 / 2014-01-28
 
* Fix for adding .inspect for JQuery object only in case when it is exist
 
# 3.1.1 / 2014-01-28
 
* Fix for HTMLElement in DOM less environments
 
# 3.1.0 / 2014-01-23
 
* Added jquery based browser extension
 
# 3.0.1 / 2014-01-17
 
* Fix: .lengthOf()
 
# 3.0.0 / 2014-01-17
 
* Split everything to smaller files
* Added huge extension to .match and .matchEach. Thanks @alsotang for initial code and idea.
* Added .containDeep and .containEql
* Separate build for browser and node.js
* Basic plugin system
* Breaking change: .Object now do not fail on arrays
* Breaking change: Additional messages now replaces generated and do not added
* Breaking change: .keys now check as is - no keys in args means no keys in object
* Deprecated: assert extension
* Deprecated: .include and .includeEql
* Now all assertions define only positive cases, should.js take care about negations and chains
 
# 2.1.1 / 2013-12-05
 
* Move date formatting out of should.inspect
 
# 2.1.0 / 2013-11-11
 
* Override .inspect for Date's to convert them to ISOString
 
# 2.0.2 / 2013-10-21
 
* Add '#of' as getter for chaining.
* Exclude browser script for .npmignore.
 
# 2.0.1 / 2013-10-10
 
* Fix wrong path in .npmignore.
 
# 2.0.0 / 2013-10-10
 
* breaking change: #a now getter like #an. Was replaced with #type(str)
* breaking change: #empty does not check length for objects. Now it check if object do not have own properties.
* #properties check if object have some properties
* util.inspect now exposed as should.inspect
* assertions for NaN, Infinity, Array, Object, String, Boolean, Number, Error, Function
* #equal got alias #exactly
 
# 1.3.0 / 2013-09-13
 
* fix doc for .keys. Closes #108.
* add #endWith()
* add .startWith (#119)
 
# 1.2.2 / 2013-02-19
 
* fix should.be.instanceOf() failure on Date
 
# 1.2.1 / 2012-11-02
 
* add .showDiff
* Make instanceOf and throwError be aliased like others [alFReD-NSH]
* Fix should[.not].exist not having stack trace #84 [alFReD-NSH]
 
# 1.2.0 / 2012-09-21
 
* Added #approximately(value, delta, description) for doing assertions on results of operations with numbers. [titarenko]
 
# 1.1.1 / 2012-09-19
 
* add .type for eql()s assert
 
# 1.1.0 / 2012-07-30
 
* add enclosing of failure message functions. Closes #81
* add mocha .actual / .expected string support for all assertion values
 
# 0.7.0 / 2012-07-17
 
* add `.throw(Constructor)` support [snakamura]
 
# 0.6.3 / 2012-04-26
 
* Added object inclusion support back
 
# 0.6.2 / 2012-04-26
 
* Added homepage to package.json
* Fixed .equal() with dates. Closes #63
 
# 0.6.1 / 2012-04-10
 
* package: add "repository" section [TooTallNate]
* use valueOf() to get the reference the object [TooTallNate]
 
# 0.6.0 / 2012-03-01
 
* Added `err.actual` and `err.expected` for .{eql,equal}()
* Added 'return this;' to 'get json' and 'get html' in order to provide chaining for should.be.json and should.be.html
 
# 0.5.1 / 2012-01-13
 
* Added better `.json`
* Added better `.html`
 
# 0.5.0 / 2012-01-12
 
* Added string matching to `.throw()` [serby]
* Added regexp matching to `.throw()` [serby]
* Added `.includeEql()` [RubenVerborgh]
* Added `.should.be.html`
* Added `.should.be.json`
* Added optional description args to most matchers [Mike Swift]
 
# 0.4.2 / 2011-12-17
 
* Fixed .header() for realzzz
 
# 0.4.1 / 2011-12-16
 
* Fixed: chain .header() to retain negation
 
# 0.4.0 / 2011-12-16
 
* Added `.should.throw()`
* Added `.include()` support for strings
* Added `.include()` support for arrays
* Removed `keys()` `.include` modifier support
* Removed `.object()`
* Removed `.string()`
* Removed `.contain()`
* Removed `.respondTo()` rubyism
* expresso -> mocha
 
# 0.3.2 / 2011-10-24
 
* Fixed tests for 0.5.x
* Fixed sys warning
 
# 0.3.1 / 2011-08-22
 
* configurable
 
# 0.3.0 / 2011-08-20
 
* Added assertion for inclusion of an object: `foo.should.include.object({ foo: 'bar' })`
 
# 0.2.1 / 2011-05-13
 
* Fixed .status(code). Closes #18
 
# 0.2.0 / 2011-04-17
 
* Added `res.should.have.status(code)` method
* Added `res.should.have.header(field, val)` method
 
# 0.1.0 / 2011-04-06
 
* Added `should.exist(obj)` [aseemk]
* Added `should.not.exist(obj)` [aseemk]
 
# 0.0.4 / 2010-11-24
 
* Added `.ok` to assert truthfulness
* Added `.arguments`
* Fixed double required bug. [thanks dominictarr]
 
# 0.0.3 / 2010-11-19
 
* Added `true` / `false` assertions
 
# 0.0.2 / 2010-11-19
 
* Added chaining support
 
# 0.0.1 / 2010-11-19
 
* Initial release