Added infinity methods, with tests

This commit is contained in:
Thodoris Bais
2017-03-27 00:04:43 +02:00
parent 7f8f2b5e7a
commit 08f046c24c
5 changed files with 122 additions and 2 deletions

View File

@@ -0,0 +1,31 @@
describe("toBeNegativeInfinity", function() {
it("fails for anything that isn't -Infinity", function() {
var matcher = jasmineUnderTest.matchers.toBeNegativeInfinity(),
result;
result = matcher.compare(1);
expect(result.pass).toBe(false);
result = matcher.compare(Number.NaN);
expect(result.pass).toBe(false);
result = matcher.compare(null);
expect(result.pass).toBe(false);
});
it("has a custom message on failure", function() {
var matcher = jasmineUnderTest.matchers.toBeNegativeInfinity(),
result = matcher.compare(0);
expect(result.message()).toEqual("Expected 0 not to be -Infinity.")
});
it("succeeds for -Infinity", function() {
var matcher = jasmineUnderTest.matchers.toBeNegativeInfinity(),
result = matcher.compare(Number.NEGATIVE_INFINITY);
expect(result.pass).toBe(true);
expect(result.message).toEqual("Expected actual to be -Infinity.")
});
});

View File

@@ -0,0 +1,31 @@
describe("toBePositiveInfinity", function() {
it("fails for anything that isn't Infinity", function() {
var matcher = jasmineUnderTest.matchers.toBePositiveInfinity(),
result;
result = matcher.compare(1);
expect(result.pass).toBe(false);
result = matcher.compare(Number.NaN);
expect(result.pass).toBe(false);
result = matcher.compare(null);
expect(result.pass).toBe(false);
});
it("has a custom message on failure", function() {
var matcher = jasmineUnderTest.matchers.toBePositiveInfinity(),
result = matcher.compare(0);
expect(result.message()).toEqual("Expected 0 not to be Infinity.")
});
it("succeeds for Infinity", function() {
var matcher = jasmineUnderTest.matchers.toBePositiveInfinity(),
result = matcher.compare(Number.POSITIVE_INFINITY);
expect(result.pass).toBe(true);
expect(result.message).toEqual("Expected actual to be Infinity.")
});
});

View File

@@ -6,18 +6,20 @@ getJasmineRequireObj().requireMatchers = function(jRequire, j$) {
'toBeFalsy',
'toBeGreaterThan',
'toBeGreaterThanOrEqual',
'toBeLessThanOrEqual',
'toBeLessThan',
'toBeLessThanOrEqual',
'toBeNaN',
'toBeNegativeInfinity',
'toBeNull',
'toBePositiveInfinity',
'toBeTruthy',
'toBeUndefined',
'toContain',
'toEqual',
'toHaveBeenCalled',
'toHaveBeenCalledBefore',
'toHaveBeenCalledWith',
'toHaveBeenCalledTimes',
'toHaveBeenCalledWith',
'toMatch',
'toThrow',
'toThrowError'

View File

@@ -0,0 +1,28 @@
getJasmineRequireObj().toBeNegativeInfinity = function(j$) {
/**
* {@link expect} the actual value to be `-Infinity` (-infinity).
* @function
* @name matchers#toBeNegativeInfinity
* @example
* expect(thing).toBeNegativeInfinity();
*/
function toBeNegativeInfinity() {
return {
compare: function(actual) {
var result = {
pass: (actual === Number.NEGATIVE_INFINITY)
};
if (result.pass) {
result.message = 'Expected actual to be -Infinity.';
} else {
result.message = function() { return 'Expected ' + j$.pp(actual) + ' not to be -Infinity.'; };
}
return result;
}
};
}
return toBeNegativeInfinity;
};

View File

@@ -0,0 +1,28 @@
getJasmineRequireObj().toBePositiveInfinity = function(j$) {
/**
* {@link expect} the actual value to be `Infinity` (infinity).
* @function
* @name matchers#toBePositiveInfinity
* @example
* expect(thing).toBePositiveInfinity();
*/
function toBePositiveInfinity() {
return {
compare: function(actual) {
var result = {
pass: (actual === Number.POSITIVE_INFINITY)
};
if (result.pass) {
result.message = 'Expected actual to be Infinity.';
} else {
result.message = function() { return 'Expected ' + j$.pp(actual) + ' not to be Infinity.'; };
}
return result;
}
};
}
return toBePositiveInfinity;
};