Skip to content

Commit 8d188ed

Browse files
committed
implement callLater (& change param order)
1 parent ae5ca48 commit 8d188ed

File tree

4 files changed

+47
-4
lines changed

4 files changed

+47
-4
lines changed

src/satisfy/invoke-callbacks.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ export default function invokeCallbacks (stubbing, call) {
1010
callLater(
1111
actualCallback,
1212
callbackArgs(stubbing, stubbingArg),
13-
stubbing.options.delay,
14-
stubbing.options.defer
13+
stubbing.options.defer,
14+
stubbing.options.delay
1515
)
1616
}
1717
})

src/share/call-later.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,11 @@
1-
export default function callLater () {
1+
import _ from '../wrap/lodash'
2+
3+
export default function callLater (func, args, defer, delay) {
4+
if (delay) {
5+
_.delay(func, delay, ...args)
6+
} else if (defer) {
7+
_.defer(func, ...args)
8+
} else {
9+
func(...args)
10+
}
211
}

test/unit/satisfy/invoke-callbacks.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,6 @@ module.exports = {
7575

7676
subject(stubbing, call)
7777

78-
td.verify(callLater(realCallback, [], 42, true))
78+
td.verify(callLater(realCallback, [], true, 42))
7979
}
8080
}

test/unit/share/call-later.test.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import subject from '../../../src/share/call-later'
2+
3+
let calledWith, func
4+
module.exports = {
5+
beforeEach: () => {
6+
calledWith = undefined
7+
func = (...args) => { calledWith = args }
8+
},
9+
'invoke something synchronously': () => {
10+
subject(func, [42, 'pants'])
11+
12+
assert.deepEqual(calledWith, [42, 'pants'])
13+
},
14+
'invoke something with a defer': (done) => {
15+
subject(func, [42, 'kaka'], true)
16+
17+
setTimeout(() => {
18+
assert.deepEqual(calledWith, [42, 'kaka'])
19+
done()
20+
}, 0)
21+
},
22+
'invoke something with a delay': (done) => {
23+
subject(func, [42, 'nope'], true, 10)
24+
25+
setTimeout(() => {
26+
assert.deepEqual(calledWith, undefined)
27+
}, 9)
28+
29+
setTimeout(() => {
30+
assert.deepEqual(calledWith, [42, 'nope'])
31+
done()
32+
}, 11)
33+
}
34+
}

0 commit comments

Comments
 (0)