toMatch requires the expected to be a String or RegExp
- Otherwise it was using the `toString` as the RegExp, which is almost definitely _not_ what you want. Fixes #723
This commit is contained in:
@@ -2630,11 +2630,15 @@ getJasmineRequireObj().toHaveBeenCalledWith = function(j$) {
|
||||
return toHaveBeenCalledWith;
|
||||
};
|
||||
|
||||
getJasmineRequireObj().toMatch = function() {
|
||||
getJasmineRequireObj().toMatch = function(j$) {
|
||||
|
||||
function toMatch() {
|
||||
return {
|
||||
compare: function(actual, expected) {
|
||||
if (!j$.isString_(expected) && !j$.isA_('RegExp', expected)) {
|
||||
throw new Error('Expected is not a String or a RegExp');
|
||||
}
|
||||
|
||||
var regexp = new RegExp(expected);
|
||||
|
||||
return {
|
||||
|
||||
@@ -30,5 +30,13 @@ describe("toMatch", function() {
|
||||
result = matcher.compare('bar', 'foo');
|
||||
expect(result.pass).toBe(false);
|
||||
});
|
||||
|
||||
it("throws an Error when the expected is not a String or RegExp", function() {
|
||||
var matcher = j$.matchers.toMatch();
|
||||
|
||||
expect(function() {
|
||||
matcher.compare('foo', { bar: 'baz' });
|
||||
}).toThrowError('Expected is not a String or a RegExp');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
getJasmineRequireObj().toMatch = function() {
|
||||
getJasmineRequireObj().toMatch = function(j$) {
|
||||
|
||||
function toMatch() {
|
||||
return {
|
||||
compare: function(actual, expected) {
|
||||
if (!j$.isString_(expected) && !j$.isA_('RegExp', expected)) {
|
||||
throw new Error('Expected is not a String or a RegExp');
|
||||
}
|
||||
|
||||
var regexp = new RegExp(expected);
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user