From 52a4b8eb95b98e8ccffc0f9cc775af9497b0d659 Mon Sep 17 00:00:00 2001 From: Byron Dover Date: Sun, 22 Jan 2017 17:02:05 -0800 Subject: [PATCH 1/2] fix(utils): Make object $key and $exists properties non-enumerable --- src/database/firebase_object_factory.spec.ts | 8 ++++---- src/database/firebase_object_observable.spec.ts | 2 +- src/utils.ts | 11 +++++++---- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/database/firebase_object_factory.spec.ts b/src/database/firebase_object_factory.spec.ts index 7d677d793..078ca6bdb 100644 --- a/src/database/firebase_object_factory.spec.ts +++ b/src/database/firebase_object_factory.spec.ts @@ -81,12 +81,12 @@ describe('FirebaseObjectFactory', () => { it('should emit unwrapped data by default', (done: any) => { - ref.set({ data: 'bar' }, () => { + const fixtureData = { data: 'bar' }; + ref.set(fixtureData, () => { subscription = observable.subscribe(unwrapped => { if (!unwrapped) return; - const expectedObject = { $key: ref.key, data: 'bar' }; - expect(unwrapped.$key).toEqual(expectedObject.$key); - expect(unwrapped.data).toEqual(expectedObject.data); + expect(unwrapped.$key).toEqual(ref.key); + expect(unwrapped).toEqual(fixtureData); expect(unwrapped.$exists()).toEqual(true); done(); }); diff --git a/src/database/firebase_object_observable.spec.ts b/src/database/firebase_object_observable.spec.ts index b963db3c7..3e390fa55 100644 --- a/src/database/firebase_object_observable.spec.ts +++ b/src/database/firebase_object_observable.spec.ts @@ -30,7 +30,7 @@ describe('FirebaseObjectObservable', () => { }); inject([FirebaseApp, AngularFire], (firebaseApp: firebase.app.App, _af: AngularFire) => { app = firebaseApp; - ref = firebase.database().ref() + ref = firebase.database().ref(); O = new FirebaseObjectObservable((observer:Observer) => { }, ref); })(); diff --git a/src/utils.ts b/src/utils.ts index 4cf14eebe..6da9518ee 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -57,10 +57,13 @@ export function unwrapMapFn (snapshot:firebase.database.DataSnapshot): AFUnwrapp $value: unwrapped }; } - unwrapped.$key = snapshot.ref.key; - unwrapped.$exists = () => { - return snapshot.exists(); - }; + Object.defineProperty(unwrapped, '$key', {value: snapshot.ref.key, enumerable: false}); + Object.defineProperty(unwrapped, '$exists', { + value: () => { + return snapshot.exists(); + }, + enumerable: false + }); return unwrapped; } From ef09ba18f3da6b6f9ebc9ade8740f29e4e4bf8ee Mon Sep 17 00:00:00 2001 From: Byron Dover Date: Mon, 23 Jan 2017 14:03:16 -0800 Subject: [PATCH 2/2] fix(utils): Minor formatting improvement --- src/utils.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/utils.ts b/src/utils.ts index 6da9518ee..a1397ff74 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -57,7 +57,10 @@ export function unwrapMapFn (snapshot:firebase.database.DataSnapshot): AFUnwrapp $value: unwrapped }; } - Object.defineProperty(unwrapped, '$key', {value: snapshot.ref.key, enumerable: false}); + Object.defineProperty(unwrapped, '$key', { + value: snapshot.ref.key, + enumerable: false + }); Object.defineProperty(unwrapped, '$exists', { value: () => { return snapshot.exists();