1 | describe('async',function() {
|
2 | "use strict";
|
3 |
|
4 | describe('async beforeEach()',function() {
|
5 | var beforeEachReady = false;
|
6 | var itReady = false;
|
7 |
|
8 | beforeEach(function(done) {
|
9 | function ready() {
|
10 | beforeEachReady = true;
|
11 | done();
|
12 | }
|
13 | setTimeout(ready, 0);
|
14 | });
|
15 |
|
16 | it('should not call it() until beforeEach() is ready', function(done) {
|
17 | expect(beforeEachReady).toEqual(true);
|
18 | function ready() {
|
19 | itReady = true;
|
20 | done();
|
21 | }
|
22 | setTimeout(ready, 0);
|
23 | });
|
24 |
|
25 | it('should wait before previous it() is ready', function() {
|
26 | expect(itReady).toEqual(true);
|
27 | });
|
28 |
|
29 | });
|
30 |
|
31 | describe('promises', function() {
|
32 | var $q;
|
33 | var beforeEachReady = false;
|
34 | var itReady = false;
|
35 |
|
36 | beforeEach(function() {
|
37 | angular.mock.inject(["$q", function(_$q_) {
|
38 | $q = _$q_;
|
39 | }]);
|
40 | });
|
41 |
|
42 | beforeEach(function() {
|
43 | var d = $q.defer();
|
44 | function ready() {
|
45 | beforeEachReady = true;
|
46 | d.resolve();
|
47 | }
|
48 | setTimeout(ready, 0);
|
49 | return d.promise;
|
50 | });
|
51 |
|
52 | it('should wait for returned promises from beforeEach() to be resolved', function() {
|
53 | expect(beforeEachReady).toEqual(true);
|
54 | var d = $q.defer();
|
55 | function ready() {
|
56 | itReady = true;
|
57 | d.resolve();
|
58 | }
|
59 | setTimeout(ready, 0);
|
60 | return d.promise;
|
61 | });
|
62 |
|
63 | it('should wait for returned promises from it() to be resolved', function() {
|
64 | expect(itReady).toEqual(true);
|
65 | });
|
66 |
|
67 | it('should resolve promises asynchronously and not fail with a timeout', function(done) {
|
68 | var d = $q.defer();
|
69 | var p = d.promise;
|
70 | var resolved = false;
|
71 | var thenCalled = false;
|
72 | p.then(function() {
|
73 | expect(resolved).toEqual(true);
|
74 | thenCalled = true;
|
75 | done();
|
76 | });
|
77 | expect(thenCalled).toEqual(false);
|
78 | d.resolve();
|
79 | resolved = true;
|
80 | expect(thenCalled).toEqual(false);
|
81 | });
|
82 | });
|
83 | });
|