|
1 | 1 | import marbleTestingSignature = require('../helpers/marble-testing'); // tslint:disable-line:no-require-imports
|
2 |
| -import { timer, never } from '../../src/create'; |
| 2 | +import { timer, never, merge } from '../../src/create'; |
3 | 3 | import { TestScheduler } from '../../src/testing';
|
| 4 | +import { mergeMap } from '../../src/operators'; |
4 | 5 |
|
5 | 6 | declare const asDiagram: any;
|
6 | 7 | declare const time: typeof marbleTestingSignature.time;
|
7 | 8 | declare const expectObservable: typeof marbleTestingSignature.expectObservable;
|
| 9 | +declare const cold: typeof marbleTestingSignature.cold; |
8 | 10 | declare const rxTestScheduler: TestScheduler;
|
9 | 11 |
|
10 | 12 | /** @test {timer} */
|
@@ -89,4 +91,21 @@ describe('timer', () => {
|
89 | 91 | const values = { a: 0, b: 1, c: 2, d: 3, e: 4};
|
90 | 92 | expectObservable(source).toBe(expected, values);
|
91 | 93 | });
|
| 94 | + |
| 95 | + it('should still target the same date if a date is provided even for the ' + |
| 96 | + 'second subscription', () => { |
| 97 | + const offset = time('----| '); |
| 98 | + const t1 = cold( 'a| '); |
| 99 | + const t2 = cold( '--a| '); |
| 100 | + const expected = '----(aa|)'; |
| 101 | + |
| 102 | + const dueTime = new Date(rxTestScheduler.now() + offset); |
| 103 | + const source = timer(dueTime, null, rxTestScheduler); |
| 104 | + |
| 105 | + const testSource = merge(t1, t2).pipe( |
| 106 | + mergeMap(() => source) |
| 107 | + ); |
| 108 | + |
| 109 | + expectObservable(testSource).toBe(expected, {a: 0}); |
| 110 | + }); |
92 | 111 | });
|
0 commit comments