forked from MithrilJS/mithril.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmithril.sync.js
56 lines (44 loc) · 1.35 KB
/
mithril.sync.js
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
describe("m.sync()", function () {
"use strict"
it("exists", function () {
expect(m.sync).to.be.a("function")
})
it("joins multiple promises in order to an array", function () {
var value
var deferred1 = m.deferred()
var deferred2 = m.deferred()
m.sync([deferred1.promise, deferred2.promise])
.then(function (data) { value = data })
deferred1.resolve("test")
deferred2.resolve("foo")
expect(value).to.eql(["test", "foo"])
})
it("joins multiple promises out of order to an array", function () {
var value
var deferred1 = m.deferred()
var deferred2 = m.deferred()
m.sync([deferred1.promise, deferred2.promise])
.then(function (data) { value = data })
deferred2.resolve("foo")
deferred1.resolve("test")
expect(value).to.eql(["test", "foo"])
})
// FIXME: bad behavior?
it("rejects to an array if one promise rejects", function () {
var value
var deferred = m.deferred()
m.sync([deferred.promise]).catch(function (data) { value = data })
deferred.reject("fail")
expect(value).to.eql(["fail"])
})
it("resolves immediately if given an empty array", function () {
var value = 1
m.sync([]).then(function () { value = 2 })
expect(value).to.equal(2)
})
it("resolves to an empty array if given an empty array", function () {
var value
m.sync([]).then(function (data) { value = data })
expect(value).to.eql([])
})
})