Firebase Update
This commit is contained in:
172
express-server/node_modules/stubs/test.js
generated
vendored
Normal file
172
express-server/node_modules/stubs/test.js
generated
vendored
Normal file
@ -0,0 +1,172 @@
|
||||
'use strict'
|
||||
|
||||
var assert = require('assert')
|
||||
var stubs = require('./')
|
||||
var tess = require('tess')
|
||||
|
||||
tess('init', function(it) {
|
||||
it('is a function', function() {
|
||||
assert.equal(typeof stubs, 'function')
|
||||
})
|
||||
|
||||
it('throws without obj || method', function() {
|
||||
assert.throws(function() {
|
||||
stubs()
|
||||
}, /must provide/)
|
||||
|
||||
assert.throws(function() {
|
||||
stubs({})
|
||||
}, /must provide/)
|
||||
})
|
||||
})
|
||||
|
||||
tess('stubs', function(it) {
|
||||
it('stubs a method with a noop', function() {
|
||||
var originalCalled = false
|
||||
|
||||
var obj = {}
|
||||
obj.method = function() {
|
||||
originalCalled = true
|
||||
}
|
||||
|
||||
stubs(obj, 'method')
|
||||
|
||||
obj.method()
|
||||
|
||||
assert(!originalCalled)
|
||||
})
|
||||
|
||||
it('accepts an override', function() {
|
||||
var originalCalled = false
|
||||
|
||||
var obj = {}
|
||||
obj.method = function() {
|
||||
originalCalled = true
|
||||
}
|
||||
|
||||
var replacementCalled = false
|
||||
stubs(obj, 'method', function() {
|
||||
replacementCalled = true
|
||||
})
|
||||
|
||||
obj.method()
|
||||
assert(!originalCalled)
|
||||
assert(replacementCalled)
|
||||
})
|
||||
|
||||
it('returns value of overridden method call', function() {
|
||||
var overriddenUniqueVal = {}
|
||||
|
||||
var obj = {}
|
||||
obj.method = function() {}
|
||||
|
||||
stubs(obj, 'method', { callthrough: true }, function() {
|
||||
return overriddenUniqueVal
|
||||
})
|
||||
|
||||
assert.strictEqual(obj.method(), overriddenUniqueVal)
|
||||
})
|
||||
|
||||
it('calls through to original method', function() {
|
||||
var originalCalled = false
|
||||
|
||||
var obj = {}
|
||||
obj.method = function() {
|
||||
originalCalled = true
|
||||
}
|
||||
|
||||
var replacementCalled = false
|
||||
stubs(obj, 'method', { callthrough: true }, function() {
|
||||
replacementCalled = true
|
||||
})
|
||||
|
||||
obj.method()
|
||||
assert(originalCalled)
|
||||
assert(replacementCalled)
|
||||
})
|
||||
|
||||
it('returns value of original method call', function() {
|
||||
var uniqueVal = Date.now()
|
||||
|
||||
var obj = {}
|
||||
obj.method = function() {
|
||||
return uniqueVal
|
||||
}
|
||||
|
||||
stubs(obj, 'method', { callthrough: true }, function() {})
|
||||
|
||||
assert.equal(obj.method(), uniqueVal)
|
||||
})
|
||||
|
||||
it('returns calls override and returns original value', function() {
|
||||
var uniqueVal = {}
|
||||
var overrideWasCalled = false
|
||||
|
||||
var obj = {}
|
||||
obj.method = function() {
|
||||
return uniqueVal
|
||||
}
|
||||
|
||||
stubs(obj, 'method', { callthrough: true }, function() {
|
||||
// does not return anything
|
||||
overrideWasCalled = true
|
||||
})
|
||||
|
||||
assert.strictEqual(obj.method(), uniqueVal)
|
||||
assert.strictEqual(overrideWasCalled, true)
|
||||
})
|
||||
|
||||
it('returns value of overridden method call', function() {
|
||||
var uniqueVal = {}
|
||||
var overriddenUniqueVal = {}
|
||||
|
||||
var obj = {}
|
||||
obj.method = function() {
|
||||
return uniqueVal
|
||||
}
|
||||
|
||||
stubs(obj, 'method', { callthrough: true }, function() {
|
||||
return overriddenUniqueVal
|
||||
})
|
||||
|
||||
assert.strictEqual(obj.method(), overriddenUniqueVal)
|
||||
})
|
||||
|
||||
it('stops calling stub after n calls', function() {
|
||||
var timesToCall = 5
|
||||
var timesCalled = 0
|
||||
|
||||
var obj = {}
|
||||
obj.method = function() {
|
||||
assert.equal(timesCalled, timesToCall)
|
||||
}
|
||||
|
||||
stubs(obj, 'method', { calls: timesToCall }, function() {
|
||||
timesCalled++
|
||||
})
|
||||
|
||||
obj.method() // 1 (stub)
|
||||
obj.method() // 2 (stub)
|
||||
obj.method() // 3 (stub)
|
||||
obj.method() // 4 (stub)
|
||||
obj.method() // 5 (stub)
|
||||
obj.method() // 6 (original)
|
||||
})
|
||||
|
||||
it('calls stub in original context of obj', function() {
|
||||
var secret = 'brownies'
|
||||
|
||||
function Class() {
|
||||
this.method = function() {}
|
||||
this.secret = secret
|
||||
}
|
||||
|
||||
var cl = new Class()
|
||||
|
||||
stubs(cl, 'method', function() {
|
||||
assert.equal(this.secret, secret)
|
||||
})
|
||||
|
||||
cl.method()
|
||||
})
|
||||
})
|
Reference in New Issue
Block a user