mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-30 12:24:25 +02:00
Merge pull request #26220 from overleaf/bg-history-redis-fix-loadAtVersion-startVersion
correct startVersion calculation in loadAtVersion GitOrigin-RevId: b81c30dcab90b137169a4bddef3c22f44a957f68
This commit is contained in:
@@ -157,6 +157,7 @@ async function loadAtVersion(projectId, version, opts = {}) {
|
||||
})
|
||||
const rawHistory = await historyStore.loadRaw(projectId, chunkRecord.id)
|
||||
const history = History.fromRaw(rawHistory)
|
||||
const startVersion = chunkRecord.endVersion - history.countChanges()
|
||||
|
||||
if (!opts.persistedOnly) {
|
||||
const nonPersistedChanges = await getChunkExtension(
|
||||
@@ -167,7 +168,7 @@ async function loadAtVersion(projectId, version, opts = {}) {
|
||||
}
|
||||
|
||||
await lazyLoadHistoryFiles(history, batchBlobStore)
|
||||
return new Chunk(history, chunkRecord.endVersion - history.countChanges())
|
||||
return new Chunk(history, startVersion)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -498,6 +498,12 @@ describe('chunkStore', function () {
|
||||
.getChanges()
|
||||
.concat(queuedChanges)
|
||||
expect(chunk.getChanges()).to.deep.equal(expectedChanges)
|
||||
expect(chunk.getStartVersion()).to.equal(
|
||||
thirdChunk.getStartVersion()
|
||||
)
|
||||
expect(chunk.getEndVersion()).to.equal(
|
||||
thirdChunk.getEndVersion() + queuedChanges.length
|
||||
)
|
||||
})
|
||||
|
||||
it('includes the queued changes when getting the latest chunk by timestamp', async function () {
|
||||
@@ -524,6 +530,10 @@ describe('chunkStore', function () {
|
||||
)
|
||||
const expectedChanges = secondChunk.getChanges()
|
||||
expect(chunk.getChanges()).to.deep.equal(expectedChanges)
|
||||
expect(chunk.getStartVersion()).to.equal(
|
||||
secondChunk.getStartVersion()
|
||||
)
|
||||
expect(chunk.getEndVersion()).to.equal(secondChunk.getEndVersion())
|
||||
})
|
||||
|
||||
it('includes the queued changes when getting the latest chunk by version', async function () {
|
||||
@@ -535,6 +545,12 @@ describe('chunkStore', function () {
|
||||
.getChanges()
|
||||
.concat(queuedChanges)
|
||||
expect(chunk.getChanges()).to.deep.equal(expectedChanges)
|
||||
expect(chunk.getStartVersion()).to.equal(
|
||||
thirdChunk.getStartVersion()
|
||||
)
|
||||
expect(chunk.getEndVersion()).to.equal(
|
||||
thirdChunk.getEndVersion() + queuedChanges.length
|
||||
)
|
||||
})
|
||||
|
||||
it("doesn't include the queued changes when getting another chunk by version", async function () {
|
||||
@@ -544,6 +560,10 @@ describe('chunkStore', function () {
|
||||
)
|
||||
const expectedChanges = secondChunk.getChanges()
|
||||
expect(chunk.getChanges()).to.deep.equal(expectedChanges)
|
||||
expect(chunk.getStartVersion()).to.equal(
|
||||
secondChunk.getStartVersion()
|
||||
)
|
||||
expect(chunk.getEndVersion()).to.equal(secondChunk.getEndVersion())
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user