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();