Skip to content

Commit 7a85bd2

Browse files
cartantdavideast
authored andcommitted
fix(database): call apply instead of call
RxJS merge takes a variable number of observables - not an array - so apply should be called instead of call. Fixed the related test, too.
1 parent 9f3c47b commit 7a85bd2

File tree

2 files changed

+18
-13
lines changed

2 files changed

+18
-13
lines changed

src/database/query_observable.spec.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ describe('observeQuery', () => {
9292

9393

9494
it('should omit only the orderBy type of the last emitted orderBy observable', () => {
95-
// TODO: Should we allow re-emitting of the orderBy method?
9695
var nextSpy = jasmine.createSpy('next');
9796
var query = {
9897
orderByKey: new Subject<boolean>(),
@@ -108,13 +107,19 @@ describe('observeQuery', () => {
108107
});
109108
nextSpy.calls.reset();
110109
query.orderByKey.next(true);
111-
expect(nextSpy).not.toHaveBeenCalled();
112-
// nextSpy.calls.reset();
113-
// query.orderByValue.next(true);
114-
// expect(nextSpy).toHaveBeenCalledWith({orderByValue: true});
115-
// nextSpy.calls.reset();
110+
expect(nextSpy).toHaveBeenCalledWith({
111+
orderByKey: true
112+
});
113+
nextSpy.calls.reset();
114+
query.orderByValue.next(true);
115+
expect(nextSpy).toHaveBeenCalledWith({
116+
orderByValue: true
117+
});
118+
nextSpy.calls.reset();
116119
query.orderByChild.next('foo');
117-
expect(nextSpy).toHaveBeenCalledWith({orderByChild: 'foo'});
120+
expect(nextSpy).toHaveBeenCalledWith({
121+
orderByChild: 'foo'
122+
});
118123
});
119124
});
120125

src/database/query_observable.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ export function observeQuery(query: Query): Observable<ScalarQuery> {
2323

2424
return Observable.create((observer: Observer<ScalarQuery>) => {
2525

26-
let obs = getOrderObservables(query) as Observable<OrderBySelection>;
27-
combineLatest.call(obs,
26+
combineLatest.call(
27+
getOrderObservables(query),
2828
getStartAtObservable(query),
2929
getEndAtObservable(query),
3030
getEqualToObservable(query),
@@ -80,7 +80,7 @@ export function observeQuery(query: Query): Observable<ScalarQuery> {
8080
});
8181
}
8282

83-
export function getOrderObservables(query: Query): Observable<OrderBySelection> | Observable<OrderBySelection | Observable<OrderBySelection>> {
83+
export function getOrderObservables(query: Query): Observable<OrderBySelection> {
8484
var observables = ['orderByChild', 'orderByKey', 'orderByValue', 'orderByPriority']
8585
.map((key: string, option: OrderByOptions) => {
8686
return ({ key, option })
@@ -93,15 +93,15 @@ export function getOrderObservables(query: Query): Observable<OrderBySelection>
9393
if (observables.length === 1) {
9494
return observables[0];
9595
} else if (observables.length > 1) {
96-
return merge.call(observables[0], observables.slice(1));
96+
return merge.apply(observables[0], observables.slice(1));
9797
} else {
9898
return new Observable<OrderBySelection>(subscriber => {
9999
subscriber.next(null);
100100
});
101101
}
102102
}
103103

104-
export function getLimitToObservables(query: Query): Observable<LimitToSelection> | Observable<LimitToSelection | Observable<LimitToSelection>> {
104+
export function getLimitToObservables(query: Query): Observable<LimitToSelection> {
105105
var observables = ['limitToFirst', 'limitToLast']
106106
.map((key: string, option: LimitToOptions) => ({ key, option }))
107107
.filter(({key, option}: { key: string, option: LimitToOptions }) => !isNil(query[key]))
@@ -110,7 +110,7 @@ export function getLimitToObservables(query: Query): Observable<LimitToSelection
110110
if (observables.length === 1) {
111111
return observables[0];
112112
} else if (observables.length > 1) {
113-
const mergedObs = merge.call(observables[0], observables.slice(1));
113+
const mergedObs = merge.apply(observables[0], observables.slice(1));
114114
return mergedObs;
115115
} else {
116116
return new Observable<LimitToSelection>(subscriber => {

0 commit comments

Comments
 (0)