UNPKG

@hirez_io/auto-spies-core

Version:

Create automatic spies from classes in tests, also for promises and observables, used as a common code for jasmine-auto-spies and jest-auto-spies

38 lines (32 loc) 915 B
import { Observable, ReplaySubject } from 'rxjs'; import { ValueConfig } from '..'; import { mergeSubjectWithDefaultValues } from './merge-subject-with-default-values'; export function createObservableWithValues<T>( valuesConfigs: ValueConfig<T>[] ): Observable<T>; export function createObservableWithValues<T>( valuesConfigs: ValueConfig<T>[], config: { returnSubject: true } ): { values$: Observable<T>; subject: ReplaySubject<T>; }; export function createObservableWithValues<T>( valuesConfigs: ValueConfig<T>[], config?: { returnSubject: boolean } ): | Observable<T> | { values$: Observable<T>; subject: ReplaySubject<T>; } { const subject: ReplaySubject<T> = new ReplaySubject(1); const values$ = mergeSubjectWithDefaultValues(subject, valuesConfigs); if (config && config.returnSubject) { return { values$, subject, }; } return values$; }