mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #14235 from overleaf/ii-history-project-diff
Project history diff fix GitOrigin-RevId: 42d55425873aa610560a03609c01e55606894940
This commit is contained in:
parent
975ea16317
commit
6db48cdaa3
2 changed files with 19 additions and 23 deletions
|
@ -71,25 +71,11 @@ function _getInitialFiles(chunk, fromVersion) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function _applyAddFileToDiff(diff, operation) {
|
function _applyAddFileToDiff(diff, operation) {
|
||||||
const change = diff[operation.pathname]
|
return (diff[operation.pathname] = {
|
||||||
if (change != null) {
|
pathname: operation.pathname,
|
||||||
// already exists, likely a delete so just cancel that and put the file back to unchanged
|
operation: 'added',
|
||||||
if (change.operation !== 'removed') {
|
editable: operation.file.isEditable(),
|
||||||
const err = new Errors.InconsistentChunkError(
|
})
|
||||||
'trying to add file that already exists',
|
|
||||||
{ diff, operation }
|
|
||||||
)
|
|
||||||
throw err
|
|
||||||
}
|
|
||||||
delete diff[operation.pathname].operation
|
|
||||||
return delete diff[operation.pathname].deletedAtV
|
|
||||||
} else {
|
|
||||||
return (diff[operation.pathname] = {
|
|
||||||
pathname: operation.pathname,
|
|
||||||
operation: 'added',
|
|
||||||
editable: operation.file.isEditable(),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _applyEditFileToDiff(diff, operation) {
|
function _applyEditFileToDiff(diff, operation) {
|
||||||
|
|
|
@ -409,7 +409,7 @@ describe('FileTree Diffs', function () {
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should handle deleting the re-adding a file', function (done) {
|
it('should handle deleting then re-adding a file', function (done) {
|
||||||
MockHistoryStore()
|
MockHistoryStore()
|
||||||
.get(`/api/projects/${this.historyId}/versions/5/history`)
|
.get(`/api/projects/${this.historyId}/versions/5/history`)
|
||||||
.reply(200, {
|
.reply(200, {
|
||||||
|
@ -465,7 +465,8 @@ describe('FileTree Diffs', function () {
|
||||||
diff: [
|
diff: [
|
||||||
{
|
{
|
||||||
pathname: 'one.tex',
|
pathname: 'one.tex',
|
||||||
editable: true,
|
operation: 'added',
|
||||||
|
editable: null,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
@ -655,7 +656,7 @@ describe('FileTree Diffs', function () {
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should return 422 with a chunk with an invalid add', function (done) {
|
it('should return 200 with a chunk with an invalid add', function (done) {
|
||||||
MockHistoryStore()
|
MockHistoryStore()
|
||||||
.get(`/api/projects/${this.historyId}/versions/6/history`)
|
.get(`/api/projects/${this.historyId}/versions/6/history`)
|
||||||
.reply(200, {
|
.reply(200, {
|
||||||
|
@ -697,7 +698,16 @@ describe('FileTree Diffs', function () {
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
expect(statusCode).to.equal(422)
|
expect(diff).to.deep.equal({
|
||||||
|
diff: [
|
||||||
|
{
|
||||||
|
pathname: 'foo.tex',
|
||||||
|
operation: 'added',
|
||||||
|
editable: null,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
})
|
||||||
|
expect(statusCode).to.equal(200)
|
||||||
return done()
|
return done()
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue