- Fix
.size
to work with should/as-function
- Update type adaptors to allow to use Set as iterable everywhere
- Fix weird bug in
.containDeep
when given object is string (see #157)
- Revert default export in TS definition (added in 13.1.0)
- Added missing return type for
.rejecteWith
in typescript definition
- 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
- Add missing UMD bundle for browser
- Removed
.enumerable
and.enumerables
- Fixed
.match
ing onDate
s - Added TypeScript definitions
- Update
should-equal
to 2.x - Update entry points to do the same thing (global should entry)
- Fix
.match(regex)
for not supported cases
- Added
.only
modifier for.keys
to check also size - Soft deprecate
.enumerable(s)
- Added workaround for runtimes where error's stack populated eagerly
- Update modules
- Update modules
- 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 inMap
/Set
e.g - Added
.value(key, value)
to assert if key-value object has suchvalue
with thiskey
- 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
- Possible breaking change/bugfix in should-format when in objects used keys that looks like a numbers
- Small test fixes for function expressions without names in Chrome
- Fix browser global export
- Set should.config values to be more obvious. Pls check brecking 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
- Add support for Symbols in .eql
- Fix for
should-equal
to do not call .toString when checking circular usage
- Fix browser script to again be UMD bundle
- .true() and .false() can accept optional message to be used in assertion Error
- Add more useful messages to promise assertions
- Fix bug with .match when called primitive to match object
- Various linting issues
- Fix bug with new option, thanks @VinGarcia
- Add option to should.equal to treat -0 and +0 as equals
- Fix browser build to do not loose window.Should
- Add .Date() assertion to test if given object is Date instance
- Update should-format to fix bug in formatting arrow functions
- Fix throwing TypeError in .match
- Move should-promised to main repo
- Expose window.should as should function and not a getter
- Update format package to fix node 0.12 Symbol formatting
- Added .aboveOrEqual and .belowOrEqual for numbers (<= and >=)
- Added .oneOf and .equalOneOf to check equality of one of values
- Added 'browser' field to package.json
- Missing doc for .deepEqual
- Fix .match and dependent assertions to check property in object-object matching
- Add alias .deepEqual for .eql
- Bug in browser script and build
- Fixes in should-type for dom nodes, host object and promises
- 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 inpections.
- Replace rest of usage after 6.0.2
- Replace in all internal assertions
should
usage to non getter form
- Remove dummy debug messages
- From .containDeep* removed .indexOf checks for strings, now it is just equality checks (see #55)
- Fix for .not.throws for generators
- Added
.matchAny
, like.matchEach
but withsome
semantics
- Initial support of es6 generators, iterables, iterators and symbols
- .throwError now support generator functions
- Fix bug in .propertyByPath
- Export utils via should.util
- 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 perfomance bottlenecks for constructing messages for big objects
- Added .propertyWithDescriptor
- Fix perfomance degradation on large objects
- Fix end cases for .containDeep and .containDeepOrdered
- Added small check for .noConflict
- Fix end cases for .containDeep and .containDeepOrdered
- Make assertion properties configurable
- Bump deps
- Set showDiff only if the same types
- Wrap everywhere returned assertion with Proxy if available.
- Fixed null properties in .containDeep and .containDeepOrdered
- Fixed leaked _eql
- Added config flag .useOldDeepEqual to use old .eql implementation
- Added .enumerables
- Bump dependencies to get more accurate format of promise
- Added a lot of jsdocs
- Remove breaking change with should-equal that check also object prototypes. Instead document how get both behaviours in .eql docs.
- bump deps
- 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
.throw()
check if given object is a function
- Remove node's version of .eql
- Added reason why .eql failed
- Move inspection from .formattedObj to be in .getMessage - to make inspection as late as possible.
- Remove node util.inspect and use instead own inspection module with type detection and browser types compatibility
- 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
- Make all assertions enumerable in Assertion.prototype
- Fix wrong/strange behaviour of .containDeep with equal keys. Now it check to contain element once.
- Added util.formatProp to format properties more accurate
- Missing name in browser script
- 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
- Fix for should.format
- Added aliases for es reserved words
- Fix bug with ownProperty alias
- Fix bug with not function alias
- Added .enumerable(name, val)
- 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
- .Error now do not throw assertion error for custom errors.
- Fix TypeError in .containEql
- Fix for adding .inspect for JQuery object only in case when it is exist
- Fix for HTMLElement in DOM less environments
- Added jquery based browser extension
- Fix: .lengthOf()
- 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
- Move date formatting out of should.inspect
- Override .inspect for Date's to convert them to ISOString
- Add '#of' as getter for chaining.
- Exclude browser script for .npmignore.
- Fix wrong path in .npmignore.
- 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
- fix doc for .keys. Closes #108.
- add #endWith()
- add .startWith (#119)
- fix should.be.instanceOf() failure on Date
- add .showDiff
- Make instanceOf and throwError be aliased like others [alFReD-NSH]
- Fix should[.not].exist not having stack trace #84 [alFReD-NSH]
- Added #approximately(value, delta, description) for doing assertions on results of operations with numbers. [titarenko]
- add .type for eql()s assert
- add enclosing of failure message functions. Closes #81
- add mocha .actual / .expected string support for all assertion values
- add
.throw(Constructor)
support [snakamura]
- Added object inclusion support back
- Added homepage to package.json
- Fixed .equal() with dates. Closes #63
- package: add "repository" section [TooTallNate]
- use valueOf() to get the reference the object [TooTallNate]
- Added
err.actual
anderr.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
- Added better
.json
- Added better
.html
- 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]
- Fixed .header() for realzzz
- Fixed: chain .header() to retain negation
- 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
- Fixed tests for 0.5.x
- Fixed sys warning
- configurable
- Added assertion for inclusion of an object:
foo.should.include.object({ foo: 'bar' })
- Fixed .status(code). Closes #18
- Added
res.should.have.status(code)
method - Added
res.should.have.header(field, val)
method
- Added
should.exist(obj)
[aseemk] - Added
should.not.exist(obj)
[aseemk]
- Added
.ok
to assert truthfulness - Added
.arguments
- Fixed double required bug. [thanks dominictarr]
- Added
true
/false
assertions
- Added chaining support
- Initial release