acceptence tests pass inside docker container (apart from sync)

This commit is contained in:
Henry Oswald
2018-02-16 11:36:32 +00:00
parent 017ba3a4ec
commit a2a8b70b74
16 changed files with 351 additions and 310 deletions

View File

@@ -1,9 +1,10 @@
Client = require "./helpers/Client"
request = require "request"
require("chai").should()
ClsiApp = require "./helpers/ClsiApp"
describe "Broken LaTeX file", ->
before ->
before (done)->
@broken_request =
resources: [
path: "main.tex"
@@ -24,6 +25,7 @@ describe "Broken LaTeX file", ->
\\end{document}
'''
]
ClsiApp.ensureRunning done
describe "on first run", ->
before (done) ->
@@ -31,6 +33,7 @@ describe "Broken LaTeX file", ->
Client.compile @project_id, @broken_request, (@error, @res, @body) => done()
it "should return a failure status", ->
console.log(@error, @res, @body)
@body.compile.status.should.equal "failure"
describe "on second run", ->

View File

@@ -1,9 +1,10 @@
Client = require "./helpers/Client"
request = require "request"
require("chai").should()
ClsiApp = require "./helpers/ClsiApp"
describe "Deleting Old Files", ->
before ->
before (done)->
@request =
resources: [
path: "main.tex"
@@ -14,7 +15,8 @@ describe "Deleting Old Files", ->
\\end{document}
'''
]
ClsiApp.ensureRunning done
describe "on first run", ->
before (done) ->
@project_id = Client.randomId()

View File

@@ -3,6 +3,7 @@ request = require "request"
require("chai").should()
fs = require "fs"
ChildProcess = require "child_process"
ClsiApp = require "./helpers/ClsiApp"
fixturePath = (path) -> __dirname + "/../fixtures/" + path
@@ -86,7 +87,9 @@ Client.runServer(4242, fixturePath("examples"))
describe "Example Documents", ->
before (done) ->
ChildProcess.exec("rm test/acceptance/fixtures/tmp/*").on "exit", () -> done()
ChildProcess.exec("rm test/acceptance/fixtures/tmp/*").on "exit", () ->
ClsiApp.ensureRunning done
for example_dir in fs.readdirSync fixturePath("examples")
do (example_dir) ->

View File

@@ -1,6 +1,7 @@
Client = require "./helpers/Client"
request = require "request"
require("chai").should()
ClsiApp = require "./helpers/ClsiApp"
describe "Simple LaTeX file", ->
before (done) ->
@@ -15,7 +16,8 @@ describe "Simple LaTeX file", ->
\\end{document}
'''
]
Client.compile @project_id, @request, (@error, @res, @body) => done()
ClsiApp.ensureRunning =>
Client.compile @project_id, @request, (@error, @res, @body) => done()
it "should return the PDF", ->
pdf = Client.getOutputFile(@body, "pdf")

View File

@@ -2,6 +2,7 @@ Client = require "./helpers/Client"
request = require "request"
require("chai").should()
expect = require("chai").expect
ClsiApp = require "./helpers/ClsiApp"
describe "Syncing", ->
before (done) ->
@@ -16,7 +17,8 @@ describe "Syncing", ->
'''
]
@project_id = Client.randomId()
Client.compile @project_id, @request, (@error, @res, @body) => done()
ClsiApp.ensureRunning =>
Client.compile @project_id, @request, (@error, @res, @body) => done()
describe "from code to pdf", ->
it "should return the correct location", (done) ->

View File

@@ -1,6 +1,8 @@
Client = require "./helpers/Client"
request = require "request"
require("chai").should()
ClsiApp = require "./helpers/ClsiApp"
describe "Timed out compile", ->
before (done) ->
@@ -18,7 +20,8 @@ describe "Timed out compile", ->
'''
]
@project_id = Client.randomId()
Client.compile @project_id, @request, (@error, @res, @body) => done()
ClsiApp.ensureRunning =>
Client.compile @project_id, @request, (@error, @res, @body) => done()
it "should return a timeout error", ->
@body.compile.error.should.equal "container timed out"

View File

@@ -2,6 +2,7 @@ Client = require "./helpers/Client"
request = require "request"
require("chai").should()
sinon = require "sinon"
ClsiApp = require "./helpers/ClsiApp"
host = "localhost"
@@ -46,7 +47,8 @@ describe "Url Caching", ->
}]
sinon.spy Server, "getFile"
Client.compile @project_id, @request, (@error, @res, @body) => done()
ClsiApp.ensureRunning =>
Client.compile @project_id, @request, (@error, @res, @body) => done()
afterEach ->
Server.getFile.restore()

View File

@@ -4,6 +4,7 @@ require("chai").should()
expect = require("chai").expect
path = require("path")
fs = require("fs")
ClsiApp = require "./helpers/ClsiApp"
describe "Syncing", ->
before (done) ->
@@ -13,7 +14,8 @@ describe "Syncing", ->
content: fs.readFileSync(path.join(__dirname,"../fixtures/naugty_strings.txt"),"utf-8")
]
@project_id = Client.randomId()
Client.compile @project_id, @request, (@error, @res, @body) => done()
ClsiApp.ensureRunning =>
Client.compile @project_id, @request, (@error, @res, @body) => done()
describe "wordcount file", ->
it "should return wordcount info", (done) ->

View File

@@ -0,0 +1,24 @@
app = require('../../../../app')
require("logger-sharelatex").logger.level("error")
logger = require("logger-sharelatex")
Settings = require("settings-sharelatex")
module.exports =
running: false
initing: false
callbacks: []
ensureRunning: (callback = (error) ->) ->
if @running
return callback()
else if @initing
@callbacks.push callback
else
@initing = true
@callbacks.push callback
app.listen Settings.internal?.clsi?.port, "localhost", (error) =>
throw error if error?
@running = true
logger.log("clsi running in dev mode")
for callback in @callbacks
callback()