[misc] exportProject: collect and send user ids of updates in trailer

This commit is contained in:
Jakob Ackermann
2021-02-25 09:52:54 +00:00
parent f411049b82
commit ed70b99d8a
5 changed files with 49 additions and 18 deletions
@@ -50,6 +50,7 @@ describe('Archiving updates', function () {
this.now = Date.now()
this.to = this.now
this.user_id = ObjectId().toString()
this.user_id_2 = ObjectId().toString()
this.doc_id = ObjectId().toString()
this.project_id = ObjectId().toString()
@@ -92,7 +93,7 @@ describe('Archiving updates', function () {
op: [{ i: 'b', p: 0 }],
meta: {
ts: this.now + (i - 2048) * this.hours + 10 * this.minutes,
user_id: this.user_id
user_id: this.user_id_2
},
v: 2 * i + 2
})
@@ -144,13 +145,17 @@ describe('Archiving updates', function () {
function testExportFeature() {
describe('exporting the project', function () {
before('fetch export', function (done) {
TrackChangesClient.exportProject(this.project_id, (error, updates) => {
if (error) {
return done(error)
TrackChangesClient.exportProject(
this.project_id,
(error, updates, userIds) => {
if (error) {
return done(error)
}
this.exportedUpdates = updates
this.exportedUserIds = userIds
done()
}
this.exportedUpdates = updates
done()
})
)
})
it('should include all the imported updates, with ids, sorted by timestamp', function () {
@@ -175,6 +180,10 @@ describe('Archiving updates', function () {
return exportedUpdate
})
expect(this.exportedUpdates).to.deep.equal(expectedExportedUpdates)
expect(this.exportedUserIds).to.deep.equal([
this.user_id,
this.user_id_2
])
})
})
}
@@ -11,17 +11,22 @@ describe('ExportProject', function () {
describe('when there are no updates', function () {
before('fetch export', function (done) {
TrackChangesClient.exportProject(ObjectId(), (error, updates) => {
if (error) {
return done(error)
TrackChangesClient.exportProject(
ObjectId(),
(error, updates, userIds) => {
if (error) {
return done(error)
}
this.exportedUpdates = updates
this.exportedUserIds = userIds
done()
}
this.exportedUpdates = updates
done()
})
)
})
it('should export an empty array', function () {
expect(this.exportedUpdates).to.deep.equal([])
expect(this.exportedUserIds).to.deep.equal([])
})
})
@@ -171,7 +171,7 @@ module.exports = TrackChangesClient = {
(error, response, updates) => {
if (error) return callback(error)
response.statusCode.should.equal(200)
callback(null, updates)
callback(null, updates, JSON.parse(response.trailers['x-user-ids']))
}
)
},