Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 8x 7x 7x 2x 3x 1x 17x 13x 13x 13x 13x 13x 6x 6x 6x 7x 17x 17x 17x 17x 17x 17x 17x 2x 2x 17x | function deepEqual (expected, actual) {
if (!expected || !actual) return false
Iif (typeof expected !== typeof actual) return false
if (typeof expected !== 'object') return expected === actual
return Object.keys(expected).length === Object.keys(actual).length &&
Object.keys(expected).every(key => deepEqual(expected[key], actual[key]))
}
exports.spy = (spiedFn) => {
const fn = (...args) => {
fn.called = true
fn.notCalled = false
fn.args.push(args)
fn.callCount = fn.args.length
if (typeof spiedFn === 'function') {
let spiedReturn = spiedFn(...args)
fn.returns.push(spiedReturn)
return spiedReturn
}
return null
}
fn.called = false
fn.notCalled = true
fn.callCount = 0
fn.args = []
fn.returns = []
fn.returned = (expected) => fn.returns.some(returned => deepEqual(expected, returned))
fn.calledWith = (...expected) => {
return fn.args.some(args => {
return expected.every((expectedArg, i) => expectedArg === args[i])
})
}
return fn
}
|