Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 210dea1

Browse files
committed
test(state): fix register return type + add unRegister spec
1 parent 0bfe46d commit 210dea1

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

libs/state/effects/src/lib/rx-effects.spec.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import { Component } from '@angular/core';
22
import { TestBed } from '@angular/core/testing';
3-
import { Observable, of, Subject, tap } from 'rxjs';
3+
import { Observable, of, Subject, tap, timer } from 'rxjs';
44
import { rxEffects, RxEffectsSetupFn } from './rx-effects';
5+
import { TestScheduler } from 'rxjs/testing';
6+
import { jestMatcher } from '@test-helpers/rx-angular';
57

68
describe(rxEffects, () => {
79
it('should register an observable', () => {
@@ -10,6 +12,19 @@ describe(rxEffects, () => {
1012
expect(spy).toHaveBeenCalledWith('src');
1113
});
1214

15+
it('should unregister a subscription', () => {
16+
expect.assertions(1);
17+
const spy = jest.fn();
18+
const scheduler = new TestScheduler(jestMatcher);
19+
20+
setupComponent(({ register }) => {
21+
const unRegister = register(timer(10, scheduler), spy);
22+
unRegister();
23+
scheduler.flush();
24+
expect(spy).not.toHaveBeenCalled();
25+
});
26+
});
27+
1328
it('should register an observable and sideEffect fn', () => {
1429
const spy = jest.fn();
1530
setupComponent(({ register }) => register(of('src'), spy));

libs/state/effects/src/lib/rx-effects.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ import {
77
import { from, Subscription } from 'rxjs';
88
import { SideEffectFnOrObserver, SideEffectObservable } from './types';
99

10-
type RxEffects = {
10+
interface RxEffects {
1111
register<T>(
1212
observable: SideEffectObservable<T>,
1313
sideEffectOrObserver?: SideEffectFnOrObserver<T>
14-
): void;
14+
): Fn;
1515
onDestroy: (fn: Fn) => Fn;
16-
};
16+
}
1717

1818
type Fn = () => void;
1919

0 commit comments

Comments
 (0)