jasmine-expect
Advanced tools
Comparing version 1.20.0 to 1.21.0
@@ -31,2 +31,10 @@ /* | ||
priv.each = function(array, fn) { | ||
var i; | ||
var len = array.length; | ||
for (i = 0; i < len; i++) { | ||
fn.call(this, array[i], i, array); | ||
} | ||
}; | ||
priv.all = function(array, fn) { | ||
@@ -80,2 +88,11 @@ var i; | ||
/** | ||
* Convert Array-like Object to true Array | ||
* @param {Mixed[]} list | ||
* @return {Array} | ||
*/ | ||
priv.toArray = function (list) { | ||
return [].slice.call(list); | ||
}; | ||
// Arrays | ||
@@ -287,2 +304,90 @@ // --------------------------------------------------------------------------- | ||
// Members | ||
// --------------------------------------------------------------------------- | ||
/** | ||
* Assert subject is an Object containing an Array at memberName | ||
* @name toHaveArray | ||
* @param {String} memberName | ||
* @return {Boolean} | ||
*/ | ||
/** | ||
* Assert subject is an Object containing an Array of size at memberName | ||
* @name toHaveArrayOfSize | ||
* @param {String} memberName | ||
* @param {Number} size | ||
* @return {Boolean} | ||
*/ | ||
/** | ||
* Assert subject is an Object containing an Array at memberName with no members | ||
* @name toHaveEmptyArray | ||
* @param {String} memberName | ||
* @return {Boolean} | ||
*/ | ||
/** | ||
* Assert subject is an Object containing an Array at memberName with at least one member | ||
* @name toHaveNonEmptyArray | ||
* @param {String} memberName | ||
* @return {Boolean} | ||
*/ | ||
/** | ||
* Assert subject is an Object containing an Array at memberName where no member is not an Object | ||
* @name toHaveArrayOfObjects | ||
* @param {String} memberName | ||
* @return {Boolean} | ||
*/ | ||
/** | ||
* Assert subject is an Object containing an Array at memberName where no member is not a String | ||
* @name toHaveArrayOfStrings | ||
* @param {String} memberName | ||
* @return {Boolean} | ||
*/ | ||
/** | ||
* Assert subject is an Object containing an Array at memberName where no member is not a Number | ||
* @name toHaveArrayOfNumbers | ||
* @param {Number} memberName | ||
* @return {Boolean} | ||
*/ | ||
/** | ||
* Assert subject is an Object containing an Array at memberName where no member is not a Boolean | ||
* @name toHaveArrayOfBooleans | ||
* @param {Boolean} memberName | ||
* @return {Boolean} | ||
*/ | ||
/** | ||
* @param {String} matcherName | ||
* @return {Function} | ||
*/ | ||
function assertMember(matcherName) { | ||
return function() { | ||
var args = priv.toArray(arguments); | ||
var memberName = args.shift(); | ||
return matchers.toBeObject.call(this) && matchers[matcherName].apply({ | ||
actual: this.actual[memberName] | ||
}, args); | ||
}; | ||
} | ||
priv.each([ | ||
'Array', | ||
'ArrayOfSize', | ||
'EmptyArray', | ||
'NonEmptyArray', | ||
'ArrayOfObjects', | ||
'ArrayOfStrings', | ||
'ArrayOfNumbers', | ||
'ArrayOfBooleans' | ||
], function(matcherName) { | ||
matchers['toHave' + matcherName] = assertMember('toBe' + matcherName); | ||
}); | ||
// Numbers | ||
@@ -289,0 +394,0 @@ // --------------------------------------------------------------------------- |
{ | ||
"name": "jasmine-expect", | ||
"version": "1.20.0", | ||
"version": "1.21.0", | ||
"description": "35+ additional matchers for the Jasmine BDD JavaScript test library", | ||
"main": "jasmine-matchers.js", | ||
"main": "index.js", | ||
"author": "Jamie Mason (https://github.com/JamieMason)", | ||
@@ -7,0 +7,0 @@ "license": "MIT", |
@@ -27,67 +27,77 @@ # Jasmine-Matchers | ||
expect(array).toBeArray() | ||
expect(array).toBeArrayOfSize(int) | ||
expect(array).toBeEmptyArray() | ||
expect(array).toBeNonEmptyArray() | ||
expect(array).toBeArrayOfObjects() | ||
expect(array).toBeArrayOfStrings() | ||
expect(array).toBeArrayOfNumbers() | ||
expect(array).toBeArrayOfBooleans() | ||
expect(array).toBeArray(); | ||
expect(array).toBeArrayOfBooleans(); | ||
expect(array).toBeArrayOfNumbers(); | ||
expect(array).toBeArrayOfObjects(); | ||
expect(array).toBeArrayOfSize(size); | ||
expect(array).toBeArrayOfStrings(); | ||
expect(array).toBeEmptyArray(); | ||
expect(array).toBeNonEmptyArray(); | ||
## Booleans | ||
expect(boolean).toBeBoolean() | ||
expect(boolean).toBeTrue() | ||
expect(boolean).toBeFalse() | ||
expect(boolean).toBeBoolean(); | ||
expect(boolean).toBeFalse(); | ||
expect(boolean).toBeTrue(); | ||
## Browser | ||
expect(object).toBeWindow() | ||
expect(object).toBeDocument() | ||
expect(object).toBeHtmlNode() | ||
expect(object).toBeHtmlTextNode() | ||
expect(object).toBeHtmlCommentNode() | ||
expect(element).toBeHtmlCommentNode(); | ||
expect(element).toBeHtmlNode(); | ||
expect(element).toBeHtmlTextNode(); | ||
expect(object).toBeDocument(); | ||
expect(object).toBeWindow(); | ||
## Exceptions | ||
expect(fn).toThrowError() | ||
expect(fn).toThrowErrorOfType('TypeError') | ||
expect(fn).toThrowError(); | ||
expect(fn).toThrowErrorOfType(string); | ||
## Numbers | ||
expect(number).toBeNumber() | ||
expect(number).toBeEvenNumber() | ||
expect(number).toBeOddNumber() | ||
expect(mixed).toBeCalculable() | ||
expect(number).toBeEvenNumber(); | ||
expect(number).toBeNumber(); | ||
expect(number).toBeOddNumber(); | ||
expect(number).toBeWholeNumber(); | ||
expect(number).toBeWithinRange(floor, ceiling); | ||
expect(numberOrString).toBeCalculable(); | ||
## Objects | ||
expect(object).toBeObject() | ||
expect(object).toImplement() | ||
expect(function).toBeFunction() | ||
expect(object).toBeFunction(); | ||
expect(object).toBeObject(); | ||
expect(object).toHaveArray(memberName); | ||
expect(object).toHaveArrayOfBooleans(memberName); | ||
expect(object).toHaveArrayOfNumbers(memberName); | ||
expect(object).toHaveArrayOfObjects(memberName); | ||
expect(object).toHaveArrayOfSize(memberName, size); | ||
expect(object).toHaveArrayOfStrings(memberName); | ||
expect(object).toHaveEmptyArray(memberName); | ||
expect(object).toHaveNonEmptyArray(memberName); | ||
expect(object).toImplement(api); | ||
## Strings | ||
expect(string).toBeString() | ||
expect(string).toBeEmptyString() | ||
expect(string).toBeNonEmptyString() | ||
expect(string).toBeHtmlString() | ||
expect(string).toBeJsonString() | ||
expect(string).toBeWhitespace() | ||
expect(string).toStartWith(substring) | ||
expect(string).toEndWith(substring) | ||
expect(string).toBeLongerThan(string) | ||
expect(string).toBeShorterThan(string) | ||
expect(string).toBeSameLengthAs(string) | ||
expect(string).toBeEmptyString(); | ||
expect(string).toBeHtmlString(); | ||
expect(string).toBeJsonString(); | ||
expect(string).toBeLongerThan(other); | ||
expect(string).toBeNonEmptyString(); | ||
expect(string).toBeSameLengthAs(other); | ||
expect(string).toBeShorterThan(other); | ||
expect(string).toBeString(); | ||
expect(string).toBeWhitespace(); | ||
expect(string).toEndWith(expected); | ||
expect(string).toStartWith(expected); | ||
## Dates | ||
expect(date).toBeDate() | ||
expect(date).toBeBefore(date) | ||
expect(date).toBeAfter(date) | ||
expect(string).toBeIso8601() | ||
expect(date).toBeAfter(date); | ||
expect(date).toBeBefore(date); | ||
expect(date).toBeDate(); | ||
expect(string).toBeIso8601(); | ||
## Usage | ||
Just include a reference to dist/jasmine-matchers.js after your reference to Jasmine. | ||
Just include a reference to dist/jasmine-matchers.js after your reference to Jasmine, or use `require('jasmine-expect')`. | ||
@@ -94,0 +104,0 @@ ## License |
@@ -0,1 +1,9 @@ | ||
priv.each = function(array, fn) { | ||
var i; | ||
var len = array.length; | ||
for (i = 0; i < len; i++) { | ||
fn.call(this, array[i], i, array); | ||
} | ||
}; | ||
priv.all = function(array, fn) { | ||
@@ -37,2 +45,3 @@ var i; | ||
*/ | ||
priv.is = function(subject, type) { | ||
@@ -46,4 +55,15 @@ return Object.prototype.toString.call(subject) === '[object ' + type + ']'; | ||
*/ | ||
priv.isHtmlElementOfType = function(subject, type) { | ||
return subject && subject.nodeType === type; | ||
}; | ||
/** | ||
* Convert Array-like Object to true Array | ||
* @param {Mixed[]} list | ||
* @return {Array} | ||
*/ | ||
priv.toArray = function (list) { | ||
return [].slice.call(list); | ||
}; |
1608
127
60757
30