overleaf/services/web/test/smoke/coffee/SmokeTests.coffee

61 lines
2.4 KiB
CoffeeScript
Raw Normal View History

2014-08-19 05:54:33 -04:00
child = require "child_process"
fs = require "fs"
assert = require("assert")
2014-02-12 05:23:40 -05:00
chai = require("chai")
chai.should()
expect = chai.expect
Settings = require "settings-sharelatex"
port = Settings.internal?.web?.port or Settings.port or 3000
2014-08-19 07:01:30 -04:00
cookeFilePath = "/tmp/smoke-test-cookie-#{port}.txt"
2014-08-19 07:05:07 -04:00
buildUrl = (path) -> "-b #{cookeFilePath} -c #{cookeFilePath} --resolve 'smoke#{Settings.cookieDomain}:#{port}:127.0.0.1' http://smoke#{Settings.cookieDomain}:#{port}/#{path}?setLng=en"
2014-02-12 05:23:40 -05:00
describe "Opening", ->
2014-08-19 05:54:33 -04:00
2014-02-12 05:23:40 -05:00
before (done) ->
command = "curl #{buildUrl('register')}"
2014-08-19 05:54:33 -04:00
child.exec command, (err, stdout, stderr)->
if err? then done(err)
2014-08-19 05:54:33 -04:00
csrf = stdout.match("<input name=\"_csrf\" type=\"hidden\" value=\"(.*?)\">")[1]
command = """
curl -H "Content-Type: application/json" -d '{"_csrf":"#{csrf}", "email":"#{Settings.smokeTest.user}", "password":"#{Settings.smokeTest.password}"}' #{buildUrl('register')}
2014-08-19 05:54:33 -04:00
"""
child.exec command, (err, stdout, stderr)->
done(err)
2014-05-19 06:53:10 -04:00
2014-08-19 05:54:33 -04:00
after (done)->
2014-08-19 07:01:30 -04:00
fs.unlink cookeFilePath, done
2014-08-19 05:54:33 -04:00
2014-05-19 06:53:10 -04:00
2014-02-12 05:23:40 -05:00
it "a project", (done) ->
@timeout(4000)
command = """
curl -H 'X-Forwarded-Proto: https' -v #{buildUrl("project/#{Settings.smokeTest.projectId}")}
"""
child.exec command, (error, stdout, stderr)->
expect(error, "smoke test: error in getting project").to.not.exist
statusCodeMatch = !!stderr.match("200 OK")
expect(statusCodeMatch, "smoke test: response code is not 200 getting project").to.equal true
# Check that the project id is present in the javascript that loads up the project
match = !!stdout.match("window.project_id = \"#{Settings.smokeTest.projectId}\"")
expect(match, "smoke test: project page html does not have project_id").to.equal true
done()
2014-02-12 05:23:40 -05:00
2014-02-12 05:23:40 -05:00
it "the project list", (done) ->
@timeout(4000)
command = """
curl -H 'X-Forwarded-Proto: https' -v #{buildUrl("project")}
"""
child.exec command, (error, stdout, stderr)->
expect(error, "smoke test: error returned in getting project list").to.not.exist
expect(!!stderr.match("200 OK"), "smoke test: response code is not 200 getting project list").to.equal true
expect(!!stdout.match("<title>Your Projects - ShareLaTeX, Online LaTeX Editor</title>"), "smoke test: body does not have correct title").to.equal true
expect(!!stdout.match("ProjectPageController"), "smoke test: body does not have correct angular controller").to.equal true
done()
2014-02-12 05:23:40 -05:00
2014-08-19 05:54:33 -04:00