return pathname from PersistenceManager

This commit is contained in:
Hayden Faulds 2017-09-29 10:34:28 +01:00
parent 02d3d1bd17
commit 05b93a629a
2 changed files with 10 additions and 8 deletions

View file

@ -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

View file

@ -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