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,16 +8,16 @@ module.exports = LabelsHandler =
/\\label\{([^\}\n\\]{0,80})\}/g
getAllLabelsForProject: (projectId, callback=(err, projectLabels)->) ->
ProjectEntityHandler.getAllDocs projectId, (err, docs) ->
DocumentUpdaterHandler.flushProjectToMongo projectId, (err) ->
if err?
return callback(err)
projectLabels = LabelsHandler.extractLabelsFromProjectDocs docs
callback(null, projectLabels)
ProjectEntityHandler.getAllDocs projectId, (err, docs) ->
if err?
return callback(err)
projectLabels = LabelsHandler.extractLabelsFromProjectDocs docs
callback(null, projectLabels)
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) ->
if err?
return callback(err)

View file

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