diff --git a/src/ActionsObservable.js b/src/ActionsObservable.js index 6a9a065d..76d7dc49 100644 --- a/src/ActionsObservable.js +++ b/src/ActionsObservable.js @@ -1,7 +1,12 @@ import { Observable } from 'rxjs/Observable'; +import { of } from 'rxjs/observable/of'; import { filter } from 'rxjs/operator/filter'; export class ActionsObservable extends Observable { + static of(...actions) { + return new this(of(...actions)); + } + constructor(actionsSubject) { super(); this.source = actionsSubject; diff --git a/test/ActionsObservable-spec.js b/test/ActionsObservable-spec.js index 78d8c386..2af0bbc0 100644 --- a/test/ActionsObservable-spec.js +++ b/test/ActionsObservable-spec.js @@ -10,6 +10,15 @@ describe('ActionsObservable', () => { expect(ActionsObservable).to.be.a('function'); }); + it('should support ActionsObservable.of(...actions)', () => { + const output = []; + const action$ = ActionsObservable.of({ type: 'FIRST', type: 'SECOND' }); + action$.subscribe(x => output.push(x)); + + expect(action$).to.be.an.instanceof(ActionsObservable); + expect(output).to.deep.equal([{ type: 'FIRST', type: 'SECOND' }]); + }); + it('should be the type provided to a dispatched function', () => { let middleware = createEpicMiddleware(); let reducer = (state, action) => {