1 | import { Observable } from 'rxjs/Observable';
|
2 | import { Subject } from 'rxjs/Subject';
|
3 | import { mergeWidgetBackends } from './mergeWidgetBackends';
|
4 |
|
5 | test('returns observable', () => {
|
6 | const backends = mergeWidgetBackends({});
|
7 | expect(backends).toBeInstanceOf(Observable);
|
8 | });
|
9 |
|
10 | test('merges data from all backends', () => {
|
11 | const backendA = new Subject();
|
12 | const backendB = new Subject();
|
13 | const subscriber = jest.fn();
|
14 |
|
15 | const backends = mergeWidgetBackends({
|
16 | board: {
|
17 | widgets: [
|
18 | { backend: backendA },
|
19 | { backend: backendB },
|
20 | ],
|
21 | },
|
22 | });
|
23 |
|
24 | backends.subscribe(subscriber);
|
25 |
|
26 | backendA.next(1);
|
27 | backendB.next(2);
|
28 |
|
29 | expect(subscriber).toHaveBeenCalledTimes(2);
|
30 | });
|
31 |
|
32 | test('works with boards without widgets', () => {
|
33 | const backends = mergeWidgetBackends({
|
34 | board: {},
|
35 | });
|
36 | expect(backends).toBeInstanceOf(Observable);
|
37 | });
|