diff --git a/src/database/list/audit-trail.spec.ts b/src/database/list/audit-trail.spec.ts index 1a753f31a..25e78bf45 100644 --- a/src/database/list/audit-trail.spec.ts +++ b/src/database/list/audit-trail.spec.ts @@ -57,7 +57,7 @@ describe('auditTrail', () => { const { changes } = prepareAuditTrail(); changes.subscribe(actions => { const data = actions.map(a => a.payload.val()); - expect(data).toEqual(items); + expect(data).toEqual([items[items.length - 1]]); done(); }); diff --git a/src/database/list/snapshot-changes.spec.ts b/src/database/list/snapshot-changes.spec.ts index 46fcbcc02..17bc5f4f3 100644 --- a/src/database/list/snapshot-changes.spec.ts +++ b/src/database/list/snapshot-changes.spec.ts @@ -118,9 +118,7 @@ describe('snapshotChanges', () => { }); it('should handle dynamic queries that return empty sets', done => { - const ITEMS = 10; let count = 0; - let firstIndex = 0; let namefilter$ = new BehaviorSubject(null); const aref = createRef(rando()); aref.set(batch); @@ -135,7 +133,7 @@ describe('snapshotChanges', () => { namefilter$.next(-1); } // on the second round, we should have filtered out everything - if(count === 2) { + else if(count === 2) { expect(Object.keys(data).length).toEqual(0); } }).add(done); diff --git a/src/database/list/state-changes.spec.ts b/src/database/list/state-changes.spec.ts index 76681ffdd..b40bf47d0 100644 --- a/src/database/list/state-changes.spec.ts +++ b/src/database/list/state-changes.spec.ts @@ -54,7 +54,7 @@ describe('stateChanges', () => { it('should listen to all events by default', (done) => { - const { changes } = prepareStateChanges({ skip: 2 }); + const { changes } = prepareStateChanges(); changes.subscribe(action => { expect(action.key).toEqual('2'); expect(action.payload.val()).toEqual(items[items.length - 1]); diff --git a/src/database/observable/fromRef.spec.ts b/src/database/observable/fromRef.spec.ts index 5e00f7c55..9c6c4a893 100644 --- a/src/database/observable/fromRef.spec.ts +++ b/src/database/observable/fromRef.spec.ts @@ -92,17 +92,13 @@ describe('fromRef', () => { const itemRef = ref(rando()); itemRef.set(batch); const obs = fromRef(itemRef, 'child_added'); - let count = 0; const sub = obs.subscribe(change => { - count = count + 1; const { type, payload } = change; expect(type).toEqual('child_added'); expect(payload.val()).toEqual(batch[payload.key!]); - if (count === items.length) { - done(); - sub.unsubscribe(); - expect(sub.closed).toEqual(true); - } + sub.unsubscribe(); + expect(sub.closed).toEqual(true); + done(); }); }); diff --git a/src/database/observable/fromRef.ts b/src/database/observable/fromRef.ts index a71335478..669a1f8fb 100644 --- a/src/database/observable/fromRef.ts +++ b/src/database/observable/fromRef.ts @@ -1,9 +1,7 @@ import { DatabaseQuery, DatabaseSnapshot, ListenEvent, AngularFireAction } from '../interfaces'; import { Observable } from 'rxjs/Observable'; -import { observeOn } from 'rxjs/operator/observeOn'; -import { FirebaseZoneScheduler } from 'angularfire2'; import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/delay'; +import 'rxjs/add/operator/debounceTime'; import 'rxjs/add/operator/share'; interface SnapshotPrevKey { @@ -37,6 +35,6 @@ export function fromRef(ref: DatabaseQuery, event: ListenEvent, listenType = 'on // Ensures subscribe on observable is async. This handles // a quirk in the SDK where on/once callbacks can happen // synchronously. - .delay(0) + .debounceTime(0) .share(); } diff --git a/tools/build.js b/tools/build.js index 92f01a0fd..5560ea2c6 100644 --- a/tools/build.js +++ b/tools/build.js @@ -49,6 +49,7 @@ const GLOBALS = { 'rxjs/add/observable/fromPromise': 'Rx.Observable.prototype', 'rxjs/add/operator/delay': 'Rx.Observable', 'rxjs/add/operator/debounce': 'Rx.Observable', + 'rxjs/add/operator/debounceTime': 'Rx.Observable', 'rxjs/add/operator/share': 'Rx.Observable', 'rxjs/observable/fromEvent': 'Rx.Observable', 'rxjs/observable/from': 'Rx.Observable', @@ -180,7 +181,7 @@ function generateBundle(entry, { dest, globals, moduleName }) { function createFirebaseBundles(featurePaths, globals) { return Object.keys(featurePaths).map(feature => { - return generateBundle(featurePaths[feature], { + return generateBundle(featurePaths[feature], { dest: `${process.cwd()}/dist/bundles/${feature}.js`, globals, moduleName: `firebase.${feature}`