From 3f14c8edf4af44ce68e21ae291ae9d4112f571ba Mon Sep 17 00:00:00 2001 From: danilo neves cruz Date: Wed, 27 Mar 2019 21:40:19 +0100 Subject: [PATCH] add basic firestore.FieldPath support --- src/firestore-field-path.js | 7 +++++++ src/firestore-query.js | 2 +- src/sdk.js | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 src/firestore-field-path.js diff --git a/src/firestore-field-path.js b/src/firestore-field-path.js new file mode 100644 index 00000000..3093a3d3 --- /dev/null +++ b/src/firestore-field-path.js @@ -0,0 +1,7 @@ +'use strict'; + +function MockFirestoreFieldPath(...segments) { + this.segments = segments; +} + +module.exports = MockFirestoreFieldPath; diff --git a/src/firestore-query.js b/src/firestore-query.js index e2b275db..6bdcfc85 100644 --- a/src/firestore-query.js +++ b/src/firestore-query.js @@ -135,7 +135,7 @@ MockFirestoreQuery.prototype.where = function (property, operator, value) { _.forEach(this.data, function(data, key) { switch (operator) { case '==': - if (_.isEqual(_.get(data, property), value)) { + if (_.isEqual(_.get(data, property.segments ? property.segments : property), value)) { results[key] = _.cloneDeep(data); } break; diff --git a/src/sdk.js b/src/sdk.js index 7be54fdd..58c75fa7 100644 --- a/src/sdk.js +++ b/src/sdk.js @@ -2,6 +2,7 @@ var MockAuthentication = require('./auth'); var MockFirebase = require('./firebase'); var MockFirestore = require('./firestore'); var MockFieldValue = require('./firestore-field-value'); +var MockFieldPath = require('./firestore-field-path'); var MockMessaging = require('./messaging'); var MockStorage = require('./storage'); @@ -77,6 +78,7 @@ function MockFirebaseSdk(createDatabase, createAuth, createFirestore, createStor return createFirestore ? createFirestore() : new MockFirestore(); } MockFirebaseFirestore.FieldValue = MockFieldValue; + MockFirebaseFirestore.FieldPath = MockFieldPath; function MockFirebaseStorage() { return createStorage ? createStorage() : new MockStorage();