mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-29 22:41:35 -05:00
3df0fe82ce
[web] batchedUpdate: use explicit sorting to find first record to update GitOrigin-RevId: 6f57b92a4e5907f307618bd98642b4874018e9fa
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
const { spawnSync } = require('child_process')
|
|
const { expect } = require('chai')
|
|
const { db, ObjectId } = require('../../../app/src/infrastructure/mongodb')
|
|
|
|
describe('BatchedUpdateTests', function () {
|
|
it('can handle non linear insert order', async function () {
|
|
await db.systemmessages.insertOne({
|
|
content: '1',
|
|
_id: new ObjectId('500000000000000000000000'),
|
|
})
|
|
await db.systemmessages.insertOne({
|
|
content: '2',
|
|
_id: new ObjectId('400000000000000000000000'),
|
|
})
|
|
await db.systemmessages.insertOne({
|
|
content: '3',
|
|
_id: new ObjectId('600000000000000000000000'),
|
|
})
|
|
await db.systemmessages.insertOne({
|
|
content: '4',
|
|
_id: new ObjectId('300000000000000000000000'),
|
|
})
|
|
|
|
spawnSync(process.argv0, [
|
|
'-e',
|
|
'require("./scripts/helpers/batchedUpdate").batchedUpdateWithResultHandling("systemmessages", { content: { $ne: "42" }}, { $set: { content: "42" } })',
|
|
])
|
|
|
|
await expect(
|
|
db.systemmessages.find({}).project({ content: 1, _id: 0 }).toArray()
|
|
).to.eventually.deep.equal([
|
|
{ content: '42' },
|
|
{ content: '42' },
|
|
{ content: '42' },
|
|
{ content: '42' },
|
|
])
|
|
})
|
|
})
|