diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 2da7b27440..374525a1a6 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -13,9 +13,9 @@ "resolved": "https://registry.npmjs.org/@google-cloud/common-grpc/-/common-grpc-0.4.0.tgz" }, "@google-cloud/firestore": { - "version": "0.8.1", - "from": "@google-cloud/firestore@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-0.8.1.tgz" + "version": "0.8.2", + "from": "@google-cloud/firestore@>=0.8.2 <0.9.0", + "resolved": "https://registry.npmjs.org/@google-cloud/firestore/-/firestore-0.8.2.tgz" }, "@google-cloud/storage": { "version": "1.3.1", diff --git a/package.json b/package.json index faa411768e..ba88546c4c 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "dependencies": { "google-auth-library": "^0.10.0", "@google-cloud/storage": "^1.2.1", - "@google-cloud/firestore": "~0.8.1", + "@google-cloud/firestore": "~0.8.2", "@types/google-cloud__storage": "^1.1.1", "@types/jsonwebtoken": "^7.1.33", "@types/node": "^8.0.32", diff --git a/test/integration/firestore.js b/test/integration/firestore.js index 69a209b226..381865ff6a 100644 --- a/test/integration/firestore.js +++ b/test/integration/firestore.js @@ -91,11 +91,39 @@ function test(utils) { }); } + function testSetDocumentReference() { + const expected = { + name: 'Mountain View', + population: 77846, + }; + const source = admin.firestore().collection('cities').doc(); + const target = admin.firestore().collection('cities').doc(); + return source.set(expected) + .then(result => { + return target.set({name: 'Palo Alto', sisterCity: source}); + }) + .then(result => { + return target.get(); + }) + .then(snapshot => { + var data = snapshot.data(); + utils.assert( + _.isEqual(source.path, data.sisterCity.path), + 'firestore.DocumentReference', + 'Data read from Firestore did not match expected: ' + data); + var promises = []; + promises.push(source.delete()); + promises.push(target.delete()); + return Promise.all(promises); + }); + } + return Promise.resolve() .then(testFirestore) .then(testFieldValue) .then(testFieldPath) - .then(testGeoPoint); + .then(testGeoPoint) + .then(testSetDocumentReference); } module.exports = {