From 1d46a198ed2872830a1f521c166636a19534ecc3 Mon Sep 17 00:00:00 2001 From: Yomi Colledge Date: Wed, 14 Dec 2011 23:05:19 +0000 Subject: [PATCH] Adding jasmine-sinon to the mix --- vendor/assets/javascripts/jasmine-sinon.js | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 vendor/assets/javascripts/jasmine-sinon.js diff --git a/vendor/assets/javascripts/jasmine-sinon.js b/vendor/assets/javascripts/jasmine-sinon.js new file mode 100644 index 0000000..91ddd9b --- /dev/null +++ b/vendor/assets/javascripts/jasmine-sinon.js @@ -0,0 +1,44 @@ +/** + jasmine-sinon.js 0.1.0 +**/ +(function(global) { + + var spyMatchers = "called calledOnce calledTwice calledThrice calledBefore calledAfter calledOn alwaysCalledOn calledWith alwaysCalledWith calledWithExactly alwaysCalledWithExactly".split(" "), + i = spyMatchers.length, + spyMatcherHash = {}, + unusualMatchers = { + "returned": "toHaveReturned", + "alwaysReturned": "toHaveAlwaysReturned" + }, + + getMatcherFunction = function(sinonName) { + return function() { + var sinonProperty = this.actual[sinonName]; + return (typeof sinonProperty === 'function') ? sinonProperty.apply(this.actual, arguments) : sinonProperty; + }; + }; + + while(i--) { + var sinonName = spyMatchers[i], + matcherName = "toHaveBeen" + sinonName.charAt(0).toUpperCase() + sinonName.slice(1); + + spyMatcherHash[matcherName] = getMatcherFunction(sinonName); + }; + + for (var j in unusualMatchers) { + spyMatcherHash[unusualMatchers[j]] = getMatcherFunction(j); + } + + global.sinonJasmine = { + getMatchers: function() { + return spyMatcherHash; + } + }; + +})(window); + +beforeEach(function() { + + this.addMatchers(sinonJasmine.getMatchers()); + +});