Skip to content

Commit

Permalink
Merge branch 'issue-1294' of https://github.com/toubou91/jasmine into…
Browse files Browse the repository at this point in the history
… toubou91-issue-1294

- Merges #1300 from @toubou91
- Fixes #1294
  • Loading branch information
Gregg Van Hove committed Apr 8, 2017
2 parents 9d6a95d + 08f046c commit ddcae84
Show file tree
Hide file tree
Showing 6 changed files with 184 additions and 4 deletions.
64 changes: 62 additions & 2 deletions lib/jasmine-core/jasmine.js
Expand Up @@ -97,18 +97,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'
Expand Down Expand Up @@ -2894,6 +2896,35 @@ getJasmineRequireObj().toBeNaN = function(j$) {
return toBeNaN;
};

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;
};

getJasmineRequireObj().toBeNull = function() {
/**
* {@link expect} the actual value to be `null`.
Expand All @@ -2915,6 +2946,35 @@ getJasmineRequireObj().toBeNull = function() {
return toBeNull;
};

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;
};

getJasmineRequireObj().toBeTruthy = function() {
/**
* {@link expect} the actual value to be truthy.
Expand Down
31 changes: 31 additions & 0 deletions spec/core/matchers/toBeNegativeInfinitySpec.js
@@ -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.")
});

});
31 changes: 31 additions & 0 deletions spec/core/matchers/toBePositiveInfinitySpec.js
@@ -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.")
});

});
6 changes: 4 additions & 2 deletions src/core/matchers/requireMatchers.js
Expand Up @@ -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'
Expand Down
28 changes: 28 additions & 0 deletions src/core/matchers/toBeNegativeInfinity.js
@@ -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;
};
28 changes: 28 additions & 0 deletions src/core/matchers/toBePositiveInfinity.js
@@ -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;
};

0 comments on commit ddcae84

Please sign in to comment.