Skip to content

Commit 4563e8f

Browse files
committed
Use serverClock in WriteResult
1 parent e77ea3e commit 4563e8f

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

src/firestore-document.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ MockFirestoreDocument.prototype.create = function (data, callback) {
111111
var base = self._getData();
112112
err = err || self._validateDoesNotExist(base);
113113
if (err === null) {
114-
var time = Timestamp.fromDate(new Date());
114+
var time = Timestamp.fromMillis(utils.getServerTime());
115115
var result = new WriteResult(time);
116116
self._dataChanged(data);
117117
resolve(result);

src/timestamp.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@ function Timestamp(seconds, nanoseconds) {
66
}
77

88
Timestamp.fromDate = function(date) {
9-
var sec = Math.floor(date.getTime() / 1000);
10-
var ns = (date.getTime() % 1000) * 1000 * 1000;
9+
return Timestamp.fromMillis(date.getTime());
10+
};
11+
12+
Timestamp.fromMillis = function(ms) {
13+
var sec = Math.floor(ms / 1000);
14+
var ns = (ms % 1000) * 1000 * 1000;
1115
return new Timestamp(sec, ns);
1216
};
1317

test/unit/firestore-document.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ chai.use(require('sinon-chai'));
1010
var expect = chai.expect;
1111
var _ = require('../../src/lodash');
1212
var Firestore = require('../../').MockFirestore;
13+
var Firebase = require('../../').MockFirebase;
1314

1415
describe('MockFirestoreDocument', function () {
1516

@@ -94,10 +95,14 @@ describe('MockFirestoreDocument', function () {
9495

9596
describe('#create', function () {
9697
it('creates a new doc', function (done) {
98+
Firebase.setClock(function() {
99+
return 1234567890123;
100+
});
97101
var createDoc = db.doc('createDoc');
98102

99103
createDoc.create({prop: 'title'}).then(function (result) {
100104
expect(result).to.have.property('writeTime');
105+
expect(result.writeTime.seconds).to.equal(1234567890);
101106
}).catch(done);
102107

103108
createDoc.get().then(function (snap) {

test/unit/timestamp.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ describe('Timestamp', function () {
1313
expect(timestamp.nanoseconds).to.equal(123000000);
1414
});
1515
});
16+
describe('fromMillis', function () {
17+
it('should convert from milliseconds', function () {
18+
var timestamp = Timestamp.fromMillis(1234567890123);
19+
expect(timestamp.seconds).to.equal(1234567890);
20+
expect(timestamp.nanoseconds).to.equal(123000000);
21+
});
22+
});
1623
describe('#toDate', function () {
1724
it('should convert to date', function () {
1825
var ts = new Timestamp(1234567890, 123456789);

0 commit comments

Comments
 (0)