UNPKG

13.9 kBJavaScriptView Raw
1"use strict";
2var rxjs_1 = require('rxjs');
3var mockAsync_1 = require('./mockAsync');
4var fakeAsync_1 = require('./fakeAsync');
5describe('mockAsync', function () {
6 it('should create a request that resolves when flushed', fakeAsync_1.rlFakeAsync(function () {
7 var mockedObservable = mockAsync_1.mock.request({ value: 10 });
8 mockedObservable()
9 .subscribe(function (result) {
10 expect(result.value).to.equal(10);
11 });
12 mockedObservable.flush();
13 }));
14 it('should create a request that resolves with dynamic content when flushed', fakeAsync_1.rlFakeAsync(function () {
15 var mockedObservable = mockAsync_1.mock.request(function (value1, value2) {
16 return { value: value1 + value2 };
17 });
18 mockedObservable(5, 3)
19 .subscribe(function (result) {
20 expect(result.value).to.equal(8);
21 });
22 mockedObservable.flush();
23 }));
24 it('should create a request that is rejected', fakeAsync_1.rlFakeAsync(function () {
25 var mockedObservable = mockAsync_1.mock.rejectedRequest(new Error('an error'));
26 mockedObservable()
27 .subscribe(function () {
28 assert.fail(null, null, 'Request should be rejected, not resolved');
29 }, function (error) {
30 expect(error.message).to.equal('an error');
31 });
32 mockedObservable.flush();
33 }));
34 it('should create a request and set it to be rejected', fakeAsync_1.rlFakeAsync(function () {
35 var mockedObservable = mockAsync_1.mock.request({ value: 3 });
36 mockedObservable.reject(new Error('error message'));
37 mockedObservable()
38 .subscribe(function () {
39 assert.fail(null, null, 'Observable should be rejected, not resolved');
40 }, function (error) {
41 expect(error.message).to.equal('error message');
42 });
43 mockedObservable.flush();
44 }));
45 it('should be able to reuse mocked requests', fakeAsync_1.rlFakeAsync(function () {
46 var mockedObservable = mockAsync_1.mock.request({ value: 3 }, true);
47 mockedObservable()
48 .subscribe(function (result1) {
49 expect(result1.value).to.equal(3);
50 mockedObservable()
51 .subscribe(function (result2) {
52 expect(result2.value).to.equal(3);
53 });
54 mockedObservable.flush();
55 });
56 mockedObservable.flush();
57 }));
58 it('should allow unique parameters with successive calls', fakeAsync_1.rlFakeAsync(function () {
59 var mockedObservable = mockAsync_1.mock.request(function (value1, value2) {
60 return { value: value1 + value2 };
61 }, true);
62 mockedObservable(5, 3)
63 .subscribe(function (result) {
64 expect(result.value).to.equal(8);
65 mockedObservable(8, 2)
66 .subscribe(function (result) {
67 expect(result.value).to.equal(10);
68 });
69 mockedObservable.flush();
70 });
71 mockedObservable.flush();
72 }));
73 it('should reuse a pending request when sharing', function () {
74 var mockedObservable = mockAsync_1.mock.request({ value: 3 }, true);
75 expect(mockedObservable()).to.equal(mockedObservable());
76 });
77 it('should not reuse a pending request by default or not sharing', function () {
78 var mockedObservable = mockAsync_1.mock.request({ value: 3 });
79 expect(mockedObservable()).to.not.equal(mockedObservable());
80 mockedObservable = mockAsync_1.mock.request({ value: 3 }, false);
81 expect(mockedObservable()).to.not.equal(mockedObservable());
82 });
83 it('should flush all requests on an unshared mock request', fakeAsync_1.rlFakeAsync(function () {
84 var mockedObservable = mockAsync_1.mock.request(function (result) { return result; });
85 rxjs_1.Observable.forkJoin([
86 mockedObservable(5),
87 mockedObservable(10),
88 ]).subscribe(function (_a) {
89 var result1 = _a[0], result2 = _a[1];
90 expect(result1).to.equal(5);
91 expect(result2).to.equal(10);
92 });
93 mockedObservable.flush();
94 }));
95 it('should spy on the request function', function () {
96 var mockedObservable = mockAsync_1.mock.request({ value: 3 });
97 mockedObservable(6);
98 sinon.assert.calledOnce(mockedObservable);
99 sinon.assert.calledWith(mockedObservable, 6);
100 });
101 it('should flush all request on an object', fakeAsync_1.rlFakeAsync(function () {
102 var service = {
103 request1: mockAsync_1.mock.request({ value: 3 }),
104 request2: mockAsync_1.mock.request({ value: 4 }),
105 };
106 rxjs_1.Observable.forkJoin([
107 service.request1(),
108 service.request2(),
109 ]).subscribe(function (_a) {
110 var result1 = _a[0], result2 = _a[1];
111 expect(result1.value).to.equal(3);
112 expect(result2.value).to.equal(4);
113 });
114 mockAsync_1.mock.flushAll(service);
115 }));
116 it('should work with Observable.from and Observable.forkJoin', fakeAsync_1.rlFakeAsync(function () {
117 var mockedObservables = [
118 mockAsync_1.mock.request(5),
119 mockAsync_1.mock.request(10),
120 ];
121 var whens = mockedObservables.map(function (mocked) { return rxjs_1.Observable.from(mocked()); });
122 rxjs_1.Observable.forkJoin(whens).subscribe(function (_a) {
123 var result1 = _a[0], result2 = _a[1];
124 expect(result1).to.equal(5);
125 expect(result2).to.equal(10);
126 });
127 mockAsync_1.mock.flushAll(mockedObservables);
128 }));
129 it('should work with toPromise', fakeAsync_1.rlFakeAsync(function () {
130 var mockedObservable = mockAsync_1.mock.request({ value: 10 });
131 mockedObservable()
132 .toPromise()
133 .then(function (result) {
134 expect(result.value).to.equal(10);
135 });
136 mockedObservable.flush();
137 }));
138});
139//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ja0FzeW5jLnRlc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibW9ja0FzeW5jLnRlc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxxQkFBMkIsTUFBTSxDQUFDLENBQUE7QUFFbEMsMEJBQXFDLGFBQWEsQ0FBQyxDQUFBO0FBQ25ELDBCQUE0QixhQUFhLENBQUMsQ0FBQTtBQVcxQyxRQUFRLENBQUMsV0FBVyxFQUFFO0lBQ3JCLEVBQUUsQ0FBQyxvREFBb0QsRUFBRSx1QkFBVyxDQUFDO1FBQ3BFLElBQUksZ0JBQWdCLEdBQThCLGdCQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUUsZ0JBQWdCLEVBQUU7YUFDaEIsU0FBUyxDQUFDLFVBQUMsTUFBaUI7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO1FBRUosZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVKLEVBQUUsQ0FBQyx5RUFBeUUsRUFBRSx1QkFBVyxDQUFDO1FBQ3pGLElBQUksZ0JBQWdCLEdBQThCLGdCQUFJLENBQUMsT0FBTyxDQUFDLFVBQUMsTUFBYyxFQUFFLE1BQWM7WUFDN0YsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVILGdCQUFnQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDcEIsU0FBUyxDQUFDLFVBQUMsTUFBaUI7WUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUosZ0JBQWdCLENBQUMs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
\No newline at end of file