1 |
|
2 |
|
3 |
|
4 | "use strict";
|
5 |
|
6 | var promise = require("../js/promise");
|
7 |
|
8 | describe("promise.js", function () {
|
9 |
|
10 |
|
11 | it("- promise resolve after", function (done) {
|
12 |
|
13 | var aPromise = promise.make(function(resolve, reject) {
|
14 | setTimeout(function() {
|
15 | expect(aPromise.state).toBe('PENDING');
|
16 | resolve('success');
|
17 | expect(aPromise.thenCalled).toBe(true);
|
18 | expect(aPromise.state).toBe('FULFILLED');
|
19 | done();
|
20 | }, 1000);
|
21 | });
|
22 |
|
23 | aPromise
|
24 | .onFulfilled(function(result) {
|
25 | expect(aPromise.state).toBe('FULFILLED');
|
26 | expect(result).toBe('success');
|
27 | aPromise.thenCalled = true;
|
28 | });
|
29 | });
|
30 |
|
31 |
|
32 | it("- promise resolve before", function (done) {
|
33 |
|
34 | var aPromise = promise.make(function(resolve, reject) {
|
35 | expect(this.state).toBe('PENDING');
|
36 | resolve('success');
|
37 | expect(this.state).toBe('FULFILLED');
|
38 | });
|
39 |
|
40 | setTimeout(function() {
|
41 |
|
42 | expect(aPromise.state).toBe('FULFILLED');
|
43 | aPromise
|
44 | .onFulfilled(function(result) {
|
45 | expect(result).toBe('success');
|
46 | done();
|
47 | });
|
48 | }, 1000);
|
49 | });
|
50 |
|
51 |
|
52 | it("- promise reject after", function (done) {
|
53 |
|
54 | var aPromise = promise.make(function(resolve, reject) {
|
55 | setTimeout(function() {
|
56 | expect(aPromise.state).toBe('PENDING');
|
57 | reject('failed');
|
58 | expect(aPromise.catchCalled).toBe(true);
|
59 | expect(aPromise.state).toBe('REJECTED');
|
60 | done();
|
61 | }, 1000);
|
62 | });
|
63 |
|
64 | aPromise
|
65 | .onRejected(function(error) {
|
66 | expect(error).toBe('failed');
|
67 | aPromise.catchCalled = true;
|
68 | });
|
69 | });
|
70 |
|
71 |
|
72 | it("- promise reject before", function (done) {
|
73 |
|
74 | var aPromise = promise.make(function(resolve, reject) {
|
75 | expect(this.state).toBe('PENDING');
|
76 | reject('failed');
|
77 | expect(this.state).toBe('REJECTED');
|
78 | });
|
79 |
|
80 | setTimeout(function() {
|
81 |
|
82 | expect(aPromise.state).toBe('REJECTED');
|
83 | aPromise
|
84 | .onRejected(function(error) {
|
85 | expect(error).toBe('failed');
|
86 | done();
|
87 | });
|
88 | }, 1000);
|
89 | });
|
90 | });
|