Skip to content

Commit

Permalink
Add onComplete
Browse files Browse the repository at this point in the history
  • Loading branch information
compulim committed Jul 2, 2019
1 parent 0920cf4 commit bfcf4a7
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 1 deletion.
19 changes: 19 additions & 0 deletions packages/core/src/__tests__/observeOnce.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import observeOnce from '../sagas/effects/observeOnce';
describe('observeOnce', () => {
let inputOutput;
let observable;
let onComplete;
let onError;
let onNext;
let unsubscribe;
Expand All @@ -16,6 +17,7 @@ describe('observeOnce', () => {
subscribe: jest.fn((...args) => {
onNext = args[0];
onError = args[1];
onComplete = args[2];

return {
unsubscribe
Expand Down Expand Up @@ -62,6 +64,23 @@ describe('observeOnce', () => {
expect(unsubscribe).toHaveBeenCalledTimes(1);
}

resolve();
} catch (err) {
reject(err);
}
});
}));

test('should unsubscribe after complete', () =>
new Promise((resolve, reject) => {
runSaga(inputOutput, function*() {
try {
const [result] = yield all([observeOnce(observable), call(() => onComplete())]);

expect(observable.subscribe).toHaveBeenCalledTimes(1);
expect(result).toBeUndefined();
expect(unsubscribe).toHaveBeenCalledTimes(1);

resolve();
} catch (err) {
reject(err);
Expand Down
2 changes: 1 addition & 1 deletion packages/core/src/sagas/effects/observeOnce.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export default function observeOnceEffect(observable) {
return yield call(
() =>
new Promise((resolve, reject) => {
subscription = observable.subscribe(resolve, reject);
subscription = observable.subscribe(resolve, reject, resolve);
})
);
} finally {
Expand Down

0 comments on commit bfcf4a7

Please sign in to comment.