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 } |