From 05b93a629a276ef42b43833a58a66bbf8ada8d2c Mon Sep 17 00:00:00 2001 From: Hayden Faulds Date: Fri, 29 Sep 2017 10:34:28 +0100 Subject: [PATCH] return pathname from PersistenceManager --- .../app/coffee/PersistenceManager.coffee | 4 ++-- .../PersistenceManagerTests.coffee | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/services/document-updater/app/coffee/PersistenceManager.coffee b/services/document-updater/app/coffee/PersistenceManager.coffee index 1e168f5495..974dec5a2c 100644 --- a/services/document-updater/app/coffee/PersistenceManager.coffee +++ b/services/document-updater/app/coffee/PersistenceManager.coffee @@ -13,7 +13,7 @@ request = (require("requestretry")).defaults({ MAX_HTTP_REQUEST_LENGTH = 5000 # 5 seconds module.exports = PersistenceManager = - getDoc: (project_id, doc_id, _callback = (error, lines, version, ranges) ->) -> + getDoc: (project_id, doc_id, _callback = (error, lines, version, ranges, pathname) ->) -> timer = new Metrics.Timer("persistenceManager.getDoc") callback = (args...) -> timer.done() @@ -42,7 +42,7 @@ module.exports = PersistenceManager = return callback(new Error("web API response had no doc lines")) if !body.version? or not body.version instanceof Number return callback(new Error("web API response had no valid doc version")) - return callback null, body.lines, body.version, body.ranges + return callback null, body.lines, body.version, body.ranges, body.pathname else if res.statusCode == 404 return callback(new Errors.NotFoundError("doc not not found: #{url}")) else diff --git a/services/document-updater/test/unit/coffee/PersistenceManager/PersistenceManagerTests.coffee b/services/document-updater/test/unit/coffee/PersistenceManager/PersistenceManagerTests.coffee index d6fa519b4c..925274ac2f 100644 --- a/services/document-updater/test/unit/coffee/PersistenceManager/PersistenceManagerTests.coffee +++ b/services/document-updater/test/unit/coffee/PersistenceManager/PersistenceManagerTests.coffee @@ -22,6 +22,7 @@ describe "PersistenceManager", -> @version = 42 @callback = sinon.stub() @ranges = { comments: "mock", entries: "mock" } + @pathname = '/a/b/c.tex' @Settings.apis = web: url: @url = "www.example.com" @@ -29,13 +30,14 @@ describe "PersistenceManager", -> pass: @pass = "password" describe "getDoc", -> - + describe "with a successful response from the web api", -> beforeEach -> @request.callsArgWith(1, null, {statusCode: 200}, JSON.stringify({ lines: @lines, version: @version, ranges: @ranges + pathname: @pathname, })) @PersistenceManager.getDoc(@project_id, @doc_id, @callback) @@ -56,7 +58,7 @@ describe "PersistenceManager", -> .should.equal true it "should call the callback with the doc lines, version and ranges", -> - @callback.calledWith(null, @lines, @version, @ranges).should.equal true + @callback.calledWith(null, @lines, @version, @ranges, @pathname).should.equal true it "should time the execution", -> @Metrics.Timer::done.called.should.equal true @@ -76,7 +78,7 @@ describe "PersistenceManager", -> beforeEach -> @request.callsArgWith(1, null, {statusCode: 404}, "") @PersistenceManager.getDoc(@project_id, @doc_id, @callback) - + it "should return a NotFoundError", -> @callback.calledWith(new Errors.NotFoundError("not found")).should.equal true @@ -87,7 +89,7 @@ describe "PersistenceManager", -> beforeEach -> @request.callsArgWith(1, null, {statusCode: 500}, "") @PersistenceManager.getDoc(@project_id, @doc_id, @callback) - + it "should return an error", -> @callback.calledWith(new Error("web api error")).should.equal true @@ -155,7 +157,7 @@ describe "PersistenceManager", -> beforeEach -> @request.callsArgWith(1, null, {statusCode: 404}, "") @PersistenceManager.setDoc(@project_id, @doc_id, @lines, @version, @ranges, @callback) - + it "should return a NotFoundError", -> @callback.calledWith(new Errors.NotFoundError("not found")).should.equal true @@ -166,7 +168,7 @@ describe "PersistenceManager", -> beforeEach -> @request.callsArgWith(1, null, {statusCode: 500}, "") @PersistenceManager.setDoc(@project_id, @doc_id, @lines, @version, @ranges, @callback) - + it "should return an error", -> @callback.calledWith(new Error("web api error")).should.equal true