Merge branch 'master' into bg-add-compile-groups
This commit is contained in:
@@ -69,7 +69,7 @@ Hello world
|
||||
})
|
||||
})
|
||||
|
||||
return describe('from pdf to code', function() {
|
||||
describe('from pdf to code', function() {
|
||||
return it('should return the correct location', function(done) {
|
||||
return Client.syncFromPdf(
|
||||
this.project_id,
|
||||
@@ -88,4 +88,104 @@ Hello world
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
describe('when the project directory is not available', function() {
|
||||
before(function() {
|
||||
this.other_project_id = Client.randomId()
|
||||
})
|
||||
describe('from code to pdf', function() {
|
||||
it('should return a 404 response', function(done) {
|
||||
return Client.syncFromCode(
|
||||
this.other_project_id,
|
||||
'main.tex',
|
||||
3,
|
||||
5,
|
||||
(error, body) => {
|
||||
if (error != null) {
|
||||
throw error
|
||||
}
|
||||
expect(body).to.equal('Not Found')
|
||||
return done()
|
||||
}
|
||||
)
|
||||
})
|
||||
})
|
||||
describe('from pdf to code', function() {
|
||||
it('should return a 404 response', function(done) {
|
||||
return Client.syncFromPdf(
|
||||
this.other_project_id,
|
||||
1,
|
||||
100,
|
||||
200,
|
||||
(error, body) => {
|
||||
if (error != null) {
|
||||
throw error
|
||||
}
|
||||
expect(body).to.equal('Not Found')
|
||||
return done()
|
||||
}
|
||||
)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('when the synctex file is not available', function() {
|
||||
before(function(done) {
|
||||
this.broken_project_id = Client.randomId()
|
||||
const content = 'this is not valid tex' // not a valid tex file
|
||||
this.request = {
|
||||
resources: [
|
||||
{
|
||||
path: 'main.tex',
|
||||
content
|
||||
}
|
||||
]
|
||||
}
|
||||
Client.compile(
|
||||
this.broken_project_id,
|
||||
this.request,
|
||||
(error, res, body) => {
|
||||
this.error = error
|
||||
this.res = res
|
||||
this.body = body
|
||||
return done()
|
||||
}
|
||||
)
|
||||
})
|
||||
|
||||
describe('from code to pdf', function() {
|
||||
it('should return a 404 response', function(done) {
|
||||
return Client.syncFromCode(
|
||||
this.broken_project_id,
|
||||
'main.tex',
|
||||
3,
|
||||
5,
|
||||
(error, body) => {
|
||||
if (error != null) {
|
||||
throw error
|
||||
}
|
||||
expect(body).to.equal('Not Found')
|
||||
return done()
|
||||
}
|
||||
)
|
||||
})
|
||||
})
|
||||
describe('from pdf to code', function() {
|
||||
it('should return a 404 response', function(done) {
|
||||
return Client.syncFromPdf(
|
||||
this.broken_project_id,
|
||||
1,
|
||||
100,
|
||||
200,
|
||||
(error, body) => {
|
||||
if (error != null) {
|
||||
throw error
|
||||
}
|
||||
expect(body).to.equal('Not Found')
|
||||
return done()
|
||||
}
|
||||
)
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -81,13 +81,14 @@ module.exports = Client = {
|
||||
file,
|
||||
line,
|
||||
column
|
||||
}
|
||||
},
|
||||
json: true
|
||||
},
|
||||
(error, response, body) => {
|
||||
if (error != null) {
|
||||
return callback(error)
|
||||
}
|
||||
return callback(null, JSON.parse(body))
|
||||
return callback(null, body)
|
||||
}
|
||||
)
|
||||
},
|
||||
@@ -103,13 +104,14 @@ module.exports = Client = {
|
||||
page,
|
||||
h,
|
||||
v
|
||||
}
|
||||
},
|
||||
json: true
|
||||
},
|
||||
(error, response, body) => {
|
||||
if (error != null) {
|
||||
return callback(error)
|
||||
}
|
||||
return callback(null, JSON.parse(body))
|
||||
return callback(null, body)
|
||||
}
|
||||
)
|
||||
},
|
||||
|
||||
@@ -36,7 +36,6 @@ describe('DockerRunner', function() {
|
||||
'logger-sharelatex': (this.logger = {
|
||||
log: sinon.stub(),
|
||||
error: sinon.stub(),
|
||||
err: sinon.stub(),
|
||||
info: sinon.stub(),
|
||||
warn: sinon.stub()
|
||||
}),
|
||||
@@ -453,63 +452,6 @@ describe('DockerRunner', function() {
|
||||
})
|
||||
})
|
||||
|
||||
describe('when inspect always fails with EPIPE error', function() {
|
||||
beforeEach(function() {
|
||||
this.error = new Error('write EPIPE')
|
||||
this.container.inspect = sinon.stub().yields(this.error)
|
||||
this.container.start = sinon.stub().yields()
|
||||
|
||||
this.DockerRunner.startContainer(
|
||||
this.options,
|
||||
this.volumes,
|
||||
() => {},
|
||||
this.callback
|
||||
)
|
||||
})
|
||||
|
||||
it('should retry once', function() {
|
||||
sinon.assert.callOrder(
|
||||
this.container.inspect,
|
||||
this.container.inspect,
|
||||
this.callback
|
||||
)
|
||||
})
|
||||
|
||||
it('should call back with error', function() {
|
||||
sinon.assert.calledWith(this.callback, this.error)
|
||||
})
|
||||
})
|
||||
|
||||
describe('when inspect fails once with EPIPE error', function() {
|
||||
beforeEach(function() {
|
||||
this.container.inspect = sinon.stub()
|
||||
this.container.inspect.onFirstCall().yields(new Error('write EPIPE'))
|
||||
this.container.inspect.onSecondCall().yields()
|
||||
this.container.start = sinon.stub().yields()
|
||||
|
||||
this.DockerRunner.startContainer(
|
||||
this.options,
|
||||
this.volumes,
|
||||
() => {},
|
||||
this.callback
|
||||
)
|
||||
})
|
||||
|
||||
it('should retry once and start container', function() {
|
||||
sinon.assert.callOrder(
|
||||
this.container.inspect,
|
||||
this.container.inspect,
|
||||
this.DockerRunner.attachToContainer,
|
||||
this.container.start,
|
||||
this.callback
|
||||
)
|
||||
})
|
||||
|
||||
it('should call back without error', function() {
|
||||
sinon.assert.calledWith(this.callback, null)
|
||||
})
|
||||
})
|
||||
|
||||
describe('when the container does not exist', function() {
|
||||
beforeEach(function() {
|
||||
const exists = false
|
||||
|
||||
Reference in New Issue
Block a user