Flush project before getting all project labels

This commit is contained in:
Shane Kilkelly 2017-06-13 11:15:26 +01:00
parent bd6133aadb
commit a3dbb16e50
2 changed files with 7 additions and 6 deletions

View file

@ -8,6 +8,9 @@ module.exports = LabelsHandler =
/\\label\{([^\}\n\\]{0,80})\}/g /\\label\{([^\}\n\\]{0,80})\}/g
getAllLabelsForProject: (projectId, callback=(err, projectLabels)->) -> getAllLabelsForProject: (projectId, callback=(err, projectLabels)->) ->
DocumentUpdaterHandler.flushProjectToMongo projectId, (err) ->
if err?
return callback(err)
ProjectEntityHandler.getAllDocs projectId, (err, docs) -> ProjectEntityHandler.getAllDocs projectId, (err, docs) ->
if err? if err?
return callback(err) return callback(err)
@ -15,9 +18,6 @@ module.exports = LabelsHandler =
callback(null, projectLabels) callback(null, projectLabels)
getLabelsForDoc: (projectId, docId, callback=(err, docLabels)->) -> getLabelsForDoc: (projectId, docId, callback=(err, docLabels)->) ->
# Flush doc first, because this action is often performed while
# a document is being edited by the client. By contrast,
# `getAllLabelsForProject` is called only when a project/editor is loaded
DocumentUpdaterHandler.flushDocToMongo projectId, docId, (err) -> DocumentUpdaterHandler.flushDocToMongo projectId, docId, (err) ->
if err? if err?
return callback(err) return callback(err)

View file

@ -105,6 +105,7 @@ describe 'LabelsHandler', ->
'doc_one': {lines: ['\\label{aaa}']} 'doc_one': {lines: ['\\label{aaa}']}
} }
@fakeLabels = ['aaa'] @fakeLabels = ['aaa']
@DocumentUpdaterHandler.flushProjectToMongo = sinon.stub().callsArgWith(1, null)
@ProjectEntityHandler.getAllDocs = sinon.stub().callsArgWith(1, null, @fakeDocs) @ProjectEntityHandler.getAllDocs = sinon.stub().callsArgWith(1, null, @fakeDocs)
@LabelsHandler.extractLabelsFromProjectDocs = sinon.stub().returns(@fakeLabels) @LabelsHandler.extractLabelsFromProjectDocs = sinon.stub().returns(@fakeLabels)
@call = (callback) => @call = (callback) =>