From 0654bccbf9f8e9e221c4f333301f7cf88a3ed650 Mon Sep 17 00:00:00 2001 From: Jamie Mason Date: Wed, 18 Jan 2017 20:47:22 +0000 Subject: [PATCH] feat(jest): add compatibility with jest --- README.md | 8 +- dist/jasmine-matchers.js | 665 ++++++++++++++++++++++--------------- package.json | 10 +- src/index.js | 4 +- test/toBeValidDate.spec.js | 8 +- 5 files changed, 427 insertions(+), 268 deletions(-) diff --git a/README.md b/README.md index 5827946..aa7922d 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,12 @@ [![Code Climate](https://img.shields.io/codeclimate/github/JamieMason/Jasmine-Matchers.svg?style=flat-square)](https://codeclimate.com/github/JamieMason/Jasmine-Matchers) [![Analytics](https://ga-beacon.appspot.com/UA-45466560-5/jasmine-matchers?flat&useReferer)](https://github.com/igrigorik/ga-beacon) -A huge library of test assertion matchers for a range of common use-cases, to improve the readability of tests written using the [Jasmine testing framework](http://jasmine.github.io/) from [Pivotal Labs](http://pivotallabs.com/). +|**What**|A huge library of test matchers for a range of common use-cases, compatible with all versions of [Jasmine](http://jasmine.github.io/) and [Jest](http://facebook.github.io/jest/).| +|---|:---| +|**Why**|Custom Matchers make tests easier to read and produce relevant and useful messages when they fail.| +|**How**|By avoiding vague messages such as _"expected false to be true"_ in favour of useful cues such as _"expected 3 to be even number"_ and avoiding implementation noise such as `expect(cycleWheels % 2 === 0).toEqual(true)` in favour of simply stating that you `expect(cycleWheels).toBeEvenNumber()`.| -1. **Make failing tests easier to debug** by avoiding vague messages such as _"expected false to be true"_ in favour of useful cues such as _"expected 3 to be even number"_. -2. **Make tests easier to read** by avoiding implementation noise such as `expect(cycleWheels % 2 === 0).toEqual(true)` in favour of simply stating that you `expect(cycleWheels).toBeEvenNumber()`. +> Jasmine Matchers is written using the [add-matchers](https://github.com/JamieMason/add-matchers) library. If you have some useful matchers of your own that you could share with other Jest and Jasmine users, please give it a try. ## Sponsors diff --git a/dist/jasmine-matchers.js b/dist/jasmine-matchers.js index 720f2b7..247a08e 100644 --- a/dist/jasmine-matchers.js +++ b/dist/jasmine-matchers.js @@ -1,255 +1,400 @@ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= otherNumber; }; -},{"./toBeNumber":42}],33:[function(require,module,exports){ +},{"./toBeNumber":45}],36:[function(require,module,exports){ // modules var toBeString = require('./toBeString'); @@ -711,7 +856,7 @@ module.exports = function toBeHtmlString(actual) { return toBeString(actual) && actual.search(/<("[^"]*"|'[^']*'|[^'">])*>/) !== -1; }; -},{"./toBeString":48}],34:[function(require,module,exports){ +},{"./toBeString":51}],37:[function(require,module,exports){ // modules var any = require('./lib/any'); var toBeString = require('./toBeString'); @@ -746,7 +891,7 @@ function expand(pattern) { .split('nn').join('([0-9]{2})'); } -},{"./lib/any":10,"./toBeString":48}],35:[function(require,module,exports){ +},{"./lib/any":13,"./toBeString":51}],38:[function(require,module,exports){ // public module.exports = function toBeJsonString(actual) { try { @@ -756,7 +901,7 @@ module.exports = function toBeJsonString(actual) { } }; -},{}],36:[function(require,module,exports){ +},{}],39:[function(require,module,exports){ // modules var toBeNumber = require('./toBeNumber'); @@ -765,7 +910,7 @@ module.exports = function toBeLessThanOrEqualTo(otherNumber, actual) { return toBeNumber(actual) && actual <= otherNumber; }; -},{"./toBeNumber":42}],37:[function(require,module,exports){ +},{"./toBeNumber":45}],40:[function(require,module,exports){ // modules var toBeString = require('./toBeString'); @@ -774,7 +919,7 @@ module.exports = function toBeLongerThan(otherString, actual) { return toBeString(actual) && toBeString(otherString) && actual.length > otherString.length; }; -},{"./toBeString":48}],38:[function(require,module,exports){ +},{"./toBeString":51}],41:[function(require,module,exports){ // modules var toBeNumber = require('./toBeNumber'); @@ -783,7 +928,7 @@ module.exports = function toBeNear(number, epsilon, actual) { return toBeNumber(actual) && actual >= number - epsilon && actual <= number + epsilon; }; -},{"./toBeNumber":42}],39:[function(require,module,exports){ +},{"./toBeNumber":45}],42:[function(require,module,exports){ // modules var is = require('./lib/is'); @@ -792,7 +937,7 @@ module.exports = function toBeNonEmptyArray(actual) { return is(actual, 'Array') && actual.length > 0; }; -},{"./lib/is":12}],40:[function(require,module,exports){ +},{"./lib/is":15}],43:[function(require,module,exports){ // modules var is = require('./lib/is'); var keys = require('./lib/keys'); @@ -802,7 +947,7 @@ module.exports = function toBeNonEmptyObject(actual) { return is(actual, 'Object') && keys(actual).length > 0; }; -},{"./lib/is":12,"./lib/keys":13}],41:[function(require,module,exports){ +},{"./lib/is":15,"./lib/keys":16}],44:[function(require,module,exports){ // modules var toBeString = require('./toBeString'); @@ -811,7 +956,7 @@ module.exports = function toBeNonEmptyString(actual) { return toBeString(actual) && actual.length > 0; }; -},{"./toBeString":48}],42:[function(require,module,exports){ +},{"./toBeString":51}],45:[function(require,module,exports){ // modules var is = require('./lib/is'); @@ -820,7 +965,7 @@ module.exports = function toBeNumber(actual) { return !isNaN(parseFloat(actual)) && !is(actual, 'String'); }; -},{"./lib/is":12}],43:[function(require,module,exports){ +},{"./lib/is":15}],46:[function(require,module,exports){ // modules var is = require('./lib/is'); @@ -829,7 +974,7 @@ module.exports = function toBeObject(actual) { return is(actual, 'Object'); }; -},{"./lib/is":12}],44:[function(require,module,exports){ +},{"./lib/is":15}],47:[function(require,module,exports){ // modules var toBeNumber = require('./toBeNumber'); @@ -838,13 +983,13 @@ module.exports = function toBeOddNumber(actual) { return toBeNumber(actual) && actual % 2 !== 0; }; -},{"./toBeNumber":42}],45:[function(require,module,exports){ +},{"./toBeNumber":45}],48:[function(require,module,exports){ // public module.exports = function toBeRegExp(actual) { return actual instanceof RegExp; }; -},{}],46:[function(require,module,exports){ +},{}],49:[function(require,module,exports){ // modules var toBeString = require('./toBeString'); @@ -853,7 +998,7 @@ module.exports = function toBeSameLengthAs(otherString, actual) { return toBeString(actual) && toBeString(otherString) && actual.length === otherString.length; }; -},{"./toBeString":48}],47:[function(require,module,exports){ +},{"./toBeString":51}],50:[function(require,module,exports){ // modules var toBeString = require('./toBeString'); @@ -862,7 +1007,7 @@ module.exports = function toBeShorterThan(otherString, actual) { return toBeString(actual) && toBeString(otherString) && actual.length < otherString.length; }; -},{"./toBeString":48}],48:[function(require,module,exports){ +},{"./toBeString":51}],51:[function(require,module,exports){ // modules var is = require('./lib/is'); @@ -871,7 +1016,7 @@ module.exports = function toBeString(actual) { return is(actual, 'String'); }; -},{"./lib/is":12}],49:[function(require,module,exports){ +},{"./lib/is":15}],52:[function(require,module,exports){ // modules var is = require('./lib/is'); @@ -880,13 +1025,13 @@ module.exports = function toBeTrue(actual) { return actual === true || (is(actual, 'Boolean') && actual.valueOf() === true); }; -},{"./lib/is":12}],50:[function(require,module,exports){ +},{"./lib/is":15}],53:[function(require,module,exports){ // public module.exports = function toBeValidDate(actual) { return Object.prototype.toString.call(actual) === '[object Date]' && !isNaN(actual.getTime()); }; -},{}],51:[function(require,module,exports){ +},{}],54:[function(require,module,exports){ // modules var toBeString = require('./toBeString'); @@ -895,7 +1040,7 @@ module.exports = function toBeWhitespace(actual) { return toBeString(actual) && actual.search(/\S/) === -1; }; -},{"./toBeString":48}],52:[function(require,module,exports){ +},{"./toBeString":51}],55:[function(require,module,exports){ // modules var toBeNumber = require('./toBeNumber'); @@ -906,7 +1051,7 @@ module.exports = function toBeWholeNumber(actual) { ); }; -},{"./toBeNumber":42}],53:[function(require,module,exports){ +},{"./toBeNumber":45}],56:[function(require,module,exports){ // modules var toBeNumber = require('./toBeNumber'); @@ -915,7 +1060,7 @@ module.exports = function toBeWithinRange(floor, ceiling, actual) { return toBeNumber(actual) && actual >= floor && actual <= ceiling; }; -},{"./toBeNumber":42}],54:[function(require,module,exports){ +},{"./toBeNumber":45}],57:[function(require,module,exports){ // modules var toBeNonEmptyString = require('./toBeNonEmptyString'); @@ -927,7 +1072,7 @@ module.exports = function toEndWith(subString, actual) { return actual.slice(actual.length - subString.length, actual.length) === subString; }; -},{"./toBeNonEmptyString":41}],55:[function(require,module,exports){ +},{"./toBeNonEmptyString":44}],58:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeArray = require('./toBeArray'); @@ -937,7 +1082,7 @@ module.exports = function toHaveArray(key, actual) { return toBeObject(actual) && toBeArray(actual[key]); }; -},{"./toBeArray":16,"./toBeObject":43}],56:[function(require,module,exports){ +},{"./toBeArray":19,"./toBeObject":46}],59:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeArrayOfBooleans = require('./toBeArrayOfBooleans'); @@ -947,7 +1092,7 @@ module.exports = function toHaveArrayOfBooleans(key, actual) { return toBeObject(actual) && toBeArrayOfBooleans(actual[key]); }; -},{"./toBeArrayOfBooleans":17,"./toBeObject":43}],57:[function(require,module,exports){ +},{"./toBeArrayOfBooleans":20,"./toBeObject":46}],60:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeArrayOfNumbers = require('./toBeArrayOfNumbers'); @@ -957,7 +1102,7 @@ module.exports = function toHaveArrayOfNumbers(key, actual) { return toBeObject(actual) && toBeArrayOfNumbers(actual[key]); }; -},{"./toBeArrayOfNumbers":18,"./toBeObject":43}],58:[function(require,module,exports){ +},{"./toBeArrayOfNumbers":21,"./toBeObject":46}],61:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeArrayOfObjects = require('./toBeArrayOfObjects'); @@ -967,7 +1112,7 @@ module.exports = function toHaveArrayOfObjects(key, actual) { return toBeObject(actual) && toBeArrayOfObjects(actual[key]); }; -},{"./toBeArrayOfObjects":19,"./toBeObject":43}],59:[function(require,module,exports){ +},{"./toBeArrayOfObjects":22,"./toBeObject":46}],62:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeArrayOfSize = require('./toBeArrayOfSize'); @@ -977,7 +1122,7 @@ module.exports = function toHaveArrayOfSize(key, size, actual) { return toBeObject(actual) && toBeArrayOfSize(size, actual[key]); }; -},{"./toBeArrayOfSize":20,"./toBeObject":43}],60:[function(require,module,exports){ +},{"./toBeArrayOfSize":23,"./toBeObject":46}],63:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeArrayOfStrings = require('./toBeArrayOfStrings'); @@ -987,7 +1132,7 @@ module.exports = function toHaveArrayOfStrings(key, actual) { return toBeObject(actual) && toBeArrayOfStrings(actual[key]); }; -},{"./toBeArrayOfStrings":21,"./toBeObject":43}],61:[function(require,module,exports){ +},{"./toBeArrayOfStrings":24,"./toBeObject":46}],64:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeBoolean = require('./toBeBoolean'); @@ -997,7 +1142,7 @@ module.exports = function toHaveBoolean(key, actual) { return toBeObject(actual) && toBeBoolean(actual[key]); }; -},{"./toBeBoolean":23,"./toBeObject":43}],62:[function(require,module,exports){ +},{"./toBeBoolean":26,"./toBeObject":46}],65:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeCalculable = require('./toBeCalculable'); @@ -1007,7 +1152,7 @@ module.exports = function toHaveCalculable(key, actual) { return toBeObject(actual) && toBeCalculable(actual[key]); }; -},{"./toBeCalculable":24,"./toBeObject":43}],63:[function(require,module,exports){ +},{"./toBeCalculable":27,"./toBeObject":46}],66:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeDate = require('./toBeDate'); @@ -1017,7 +1162,7 @@ module.exports = function toHaveDate(key, actual) { return toBeObject(actual) && toBeDate(actual[key]); }; -},{"./toBeDate":25,"./toBeObject":43}],64:[function(require,module,exports){ +},{"./toBeDate":28,"./toBeObject":46}],67:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeAfter = require('./toBeAfter'); @@ -1027,7 +1172,7 @@ module.exports = function toHaveDateAfter(key, date, actual) { return toBeObject(actual) && toBeAfter(date, actual[key]); }; -},{"./toBeAfter":15,"./toBeObject":43}],65:[function(require,module,exports){ +},{"./toBeAfter":18,"./toBeObject":46}],68:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeBefore = require('./toBeBefore'); @@ -1037,7 +1182,7 @@ module.exports = function toHaveDateBefore(key, date, actual) { return toBeObject(actual) && toBeBefore(date, actual[key]); }; -},{"./toBeBefore":22,"./toBeObject":43}],66:[function(require,module,exports){ +},{"./toBeBefore":25,"./toBeObject":46}],69:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeEmptyArray = require('./toBeEmptyArray'); @@ -1047,7 +1192,7 @@ module.exports = function toHaveEmptyArray(key, actual) { return toBeObject(actual) && toBeEmptyArray(actual[key]); }; -},{"./toBeEmptyArray":26,"./toBeObject":43}],67:[function(require,module,exports){ +},{"./toBeEmptyArray":29,"./toBeObject":46}],70:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeEmptyObject = require('./toBeEmptyObject'); @@ -1057,7 +1202,7 @@ module.exports = function toHaveEmptyObject(key, actual) { return toBeObject(actual) && toBeEmptyObject(actual[key]); }; -},{"./toBeEmptyObject":27,"./toBeObject":43}],68:[function(require,module,exports){ +},{"./toBeEmptyObject":30,"./toBeObject":46}],71:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeEmptyString = require('./toBeEmptyString'); @@ -1067,7 +1212,7 @@ module.exports = function toHaveEmptyString(key, actual) { return toBeObject(actual) && toBeEmptyString(actual[key]); }; -},{"./toBeEmptyString":28,"./toBeObject":43}],69:[function(require,module,exports){ +},{"./toBeEmptyString":31,"./toBeObject":46}],72:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeEvenNumber = require('./toBeEvenNumber'); @@ -1077,7 +1222,7 @@ module.exports = function toHaveEvenNumber(key, actual) { return toBeObject(actual) && toBeEvenNumber(actual[key]); }; -},{"./toBeEvenNumber":29,"./toBeObject":43}],70:[function(require,module,exports){ +},{"./toBeEvenNumber":32,"./toBeObject":46}],73:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeFalse = require('./toBeFalse'); @@ -1087,7 +1232,7 @@ module.exports = function toHaveFalse(key, actual) { return toBeObject(actual) && toBeFalse(actual[key]); }; -},{"./toBeFalse":30,"./toBeObject":43}],71:[function(require,module,exports){ +},{"./toBeFalse":33,"./toBeObject":46}],74:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeHtmlString = require('./toBeHtmlString'); @@ -1097,7 +1242,7 @@ module.exports = function toHaveHtmlString(key, actual) { return toBeObject(actual) && toBeHtmlString(actual[key]); }; -},{"./toBeHtmlString":33,"./toBeObject":43}],72:[function(require,module,exports){ +},{"./toBeHtmlString":36,"./toBeObject":46}],75:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeIso8601 = require('./toBeIso8601'); @@ -1109,7 +1254,7 @@ function toHaveIso8601(key, actual) { return toBeObject(actual) && toBeIso8601(actual[key]); } -},{"./toBeIso8601":34,"./toBeObject":43}],73:[function(require,module,exports){ +},{"./toBeIso8601":37,"./toBeObject":46}],76:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeJsonString = require('./toBeJsonString'); @@ -1119,7 +1264,7 @@ module.exports = function toHaveJsonString(key, actual) { return toBeObject(actual) && toBeJsonString(actual[key]); }; -},{"./toBeJsonString":35,"./toBeObject":43}],74:[function(require,module,exports){ +},{"./toBeJsonString":38,"./toBeObject":46}],77:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeString = require('./toBeString'); @@ -1129,7 +1274,7 @@ module.exports = function toHaveMember(key, actual) { return toBeString(key) && toBeObject(actual) && key in actual; }; -},{"./toBeObject":43,"./toBeString":48}],75:[function(require,module,exports){ +},{"./toBeObject":46,"./toBeString":51}],78:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeFunction = require('./toBeFunction'); @@ -1139,7 +1284,7 @@ module.exports = function toHaveMethod(key, actual) { return toBeObject(actual) && toBeFunction(actual[key]); }; -},{"./toBeFunction":31,"./toBeObject":43}],76:[function(require,module,exports){ +},{"./toBeFunction":34,"./toBeObject":46}],79:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeNonEmptyArray = require('./toBeNonEmptyArray'); @@ -1149,7 +1294,7 @@ module.exports = function toHaveNonEmptyArray(key, actual) { return toBeObject(actual) && toBeNonEmptyArray(actual[key]); }; -},{"./toBeNonEmptyArray":39,"./toBeObject":43}],77:[function(require,module,exports){ +},{"./toBeNonEmptyArray":42,"./toBeObject":46}],80:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeNonEmptyObject = require('./toBeNonEmptyObject'); @@ -1159,7 +1304,7 @@ module.exports = function toHaveNonEmptyObject(key, actual) { return toBeObject(actual) && toBeNonEmptyObject(actual[key]); }; -},{"./toBeNonEmptyObject":40,"./toBeObject":43}],78:[function(require,module,exports){ +},{"./toBeNonEmptyObject":43,"./toBeObject":46}],81:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeNonEmptyString = require('./toBeNonEmptyString'); @@ -1169,7 +1314,7 @@ module.exports = function toHaveNonEmptyString(key, actual) { return toBeObject(actual) && toBeNonEmptyString(actual[key]); }; -},{"./toBeNonEmptyString":41,"./toBeObject":43}],79:[function(require,module,exports){ +},{"./toBeNonEmptyString":44,"./toBeObject":46}],82:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeNumber = require('./toBeNumber'); @@ -1179,7 +1324,7 @@ module.exports = function toHaveNumber(key, actual) { return toBeObject(actual) && toBeNumber(actual[key]); }; -},{"./toBeNumber":42,"./toBeObject":43}],80:[function(require,module,exports){ +},{"./toBeNumber":45,"./toBeObject":46}],83:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeWithinRange = require('./toBeWithinRange'); @@ -1189,7 +1334,7 @@ module.exports = function toHaveNumberWithinRange(key, floor, ceiling, actual) { return toBeObject(actual) && toBeWithinRange(floor, ceiling, actual[key]); }; -},{"./toBeObject":43,"./toBeWithinRange":53}],81:[function(require,module,exports){ +},{"./toBeObject":46,"./toBeWithinRange":56}],84:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); @@ -1198,7 +1343,7 @@ module.exports = function toHaveObject(key, actual) { return toBeObject(actual) && toBeObject(actual[key]); }; -},{"./toBeObject":43}],82:[function(require,module,exports){ +},{"./toBeObject":46}],85:[function(require,module,exports){ var toBeObject = require('./toBeObject'); var toBeOddNumber = require('./toBeOddNumber'); @@ -1207,7 +1352,7 @@ module.exports = function toHaveOddNumber(key, actual) { return toBeObject(actual) && toBeOddNumber(actual[key]); }; -},{"./toBeObject":43,"./toBeOddNumber":44}],83:[function(require,module,exports){ +},{"./toBeObject":46,"./toBeOddNumber":47}],86:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeString = require('./toBeString'); @@ -1217,7 +1362,7 @@ module.exports = function toHaveString(key, actual) { return toBeObject(actual) && toBeString(actual[key]); }; -},{"./toBeObject":43,"./toBeString":48}],84:[function(require,module,exports){ +},{"./toBeObject":46,"./toBeString":51}],87:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeLongerThan = require('./toBeLongerThan'); @@ -1227,7 +1372,7 @@ module.exports = function toHaveStringLongerThan(key, other, actual) { return toBeObject(actual) && toBeLongerThan(other, actual[key]); }; -},{"./toBeLongerThan":37,"./toBeObject":43}],85:[function(require,module,exports){ +},{"./toBeLongerThan":40,"./toBeObject":46}],88:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeSameLengthAs = require('./toBeSameLengthAs'); @@ -1237,7 +1382,7 @@ module.exports = function toHaveStringSameLengthAs(key, other, actual) { return toBeObject(actual) && toBeSameLengthAs(other, actual[key]); }; -},{"./toBeObject":43,"./toBeSameLengthAs":46}],86:[function(require,module,exports){ +},{"./toBeObject":46,"./toBeSameLengthAs":49}],89:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeShorterThan = require('./toBeShorterThan'); @@ -1247,7 +1392,7 @@ module.exports = function toHaveStringShorterThan(key, other, actual) { return toBeObject(actual) && toBeShorterThan(other, actual[key]); }; -},{"./toBeObject":43,"./toBeShorterThan":47}],87:[function(require,module,exports){ +},{"./toBeObject":46,"./toBeShorterThan":50}],90:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeTrue = require('./toBeTrue'); @@ -1257,7 +1402,7 @@ module.exports = function toHaveTrue(key, actual) { return toBeObject(actual) && toBeTrue(actual[key]); }; -},{"./toBeObject":43,"./toBeTrue":49}],88:[function(require,module,exports){ +},{"./toBeObject":46,"./toBeTrue":52}],91:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeWhitespace = require('./toBeWhitespace'); @@ -1267,7 +1412,7 @@ module.exports = function toHaveWhitespaceString(key, actual) { return toBeObject(actual) && toBeWhitespace(actual[key]); }; -},{"./toBeObject":43,"./toBeWhitespace":51}],89:[function(require,module,exports){ +},{"./toBeObject":46,"./toBeWhitespace":54}],92:[function(require,module,exports){ // modules var toBeObject = require('./toBeObject'); var toBeWholeNumber = require('./toBeWholeNumber'); @@ -1277,7 +1422,7 @@ module.exports = function toHaveWholeNumber(key, actual) { return toBeObject(actual) && toBeWholeNumber(actual[key]); }; -},{"./toBeObject":43,"./toBeWholeNumber":52}],90:[function(require,module,exports){ +},{"./toBeObject":46,"./toBeWholeNumber":55}],93:[function(require,module,exports){ // modules var toBeNonEmptyString = require('./toBeNonEmptyString'); @@ -1289,7 +1434,7 @@ module.exports = function toStartWith(subString, actual) { return actual.slice(0, subString.length) === subString; }; -},{"./toBeNonEmptyString":41}],91:[function(require,module,exports){ +},{"./toBeNonEmptyString":44}],94:[function(require,module,exports){ // public module.exports = function toThrowAnyError(actual) { try { @@ -1300,7 +1445,7 @@ module.exports = function toThrowAnyError(actual) { } }; -},{}],92:[function(require,module,exports){ +},{}],95:[function(require,module,exports){ // public module.exports = function toThrowErrorOfType(type, actual) { try { @@ -1311,4 +1456,4 @@ module.exports = function toThrowErrorOfType(type, actual) { } }; -},{}]},{},[9]); +},{}]},{},[12]); diff --git a/package.json b/package.json index 79dd9d4..cffbb4e 100644 --- a/package.json +++ b/package.json @@ -23,13 +23,14 @@ "Vilmos Ioo (https://github.com/vilmosioo)" ], "dependencies": { - "jasmine-matchers-loader": "0.1.0" + "add-matchers": "0.4.0" }, "devDependencies": { "browserify": "13.3.0", "codeclimate-test-reporter": "0.4.0", "gulp": "3.9.1", "jasmine-core": "2.5.2", + "jest": "18.1.0", "karma": "1.4.0", "karma-browserstack-launcher": "1.1.1", "karma-chrome-launcher": "2.0.0", @@ -43,6 +44,12 @@ "xo": "0.17.1" }, "homepage": "https://github.com/JamieMason/Jasmine-Matchers", + "jest": { + "setupTestFrameworkScriptFile": "/index.js", + "testPathDirs": [ + "/test" + ] + }, "keywords": [ "BDD", "TDD", @@ -66,6 +73,7 @@ "build": "gulp browserify", "lint": "xo --fix", "test": "npm run lint && npm run browserstack-android && npm run browserstack-ios && npm run browserstack-ie && npm run browserstack-safari && npm run browserstack-opera && npm run browserstack-firefox && npm run browserstack-chrome", + "test:jest": "jest", "test:local": "karma start karma/base.conf.js --browsers Chrome", "watch": "gulp watch" }, diff --git a/src/index.js b/src/index.js index 3db7611..f23cb1c 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ // 3rd party modules -var loader = require('jasmine-matchers-loader'); +var addMatchers = require('add-matchers'); // modules var api = require('./api'); @@ -9,5 +9,5 @@ var asymmetricMatchers = require('./asymmetricMatchers'); module.exports = api.matcher; // implementation -loader.add(api.matcher); +addMatchers(api.matcher); global.any = asymmetricMatchers; diff --git a/test/toBeValidDate.spec.js b/test/toBeValidDate.spec.js index b0f3a22..b57bafe 100644 --- a/test/toBeValidDate.spec.js +++ b/test/toBeValidDate.spec.js @@ -13,8 +13,12 @@ describe('toBeValidDate', function () { it('should deny', function () { expect(null).not.toBeValidDate(); expect(function () {}).not.toBeValidDate(); - expect(new Date('')).not.toBeValidDate(); - expect(new Date('invalid')).not.toBeValidDate(); + try { + expect(new Date('')).not.toBeValidDate(); + expect(new Date('invalid')).not.toBeValidDate(); + } catch (err) { + // ignore "RangeError: Invalid time value" seen only in node.js + } }); }); });