2020-06-26 07:29:49 -04:00
|
|
|
const Client = require('./helpers/Client')
|
|
|
|
const ClsiApp = require('./helpers/ClsiApp')
|
|
|
|
const { expect } = require('chai')
|
|
|
|
|
2020-08-10 12:01:11 -04:00
|
|
|
describe('AllowedImageNames', function () {
|
|
|
|
beforeEach(function (done) {
|
2020-06-26 07:29:49 -04:00
|
|
|
this.project_id = Client.randomId()
|
|
|
|
this.request = {
|
|
|
|
options: {
|
|
|
|
imageName: undefined
|
|
|
|
},
|
|
|
|
resources: [
|
|
|
|
{
|
|
|
|
path: 'main.tex',
|
|
|
|
content: `\
|
|
|
|
\\documentclass{article}
|
|
|
|
\\begin{document}
|
|
|
|
Hello world
|
|
|
|
\\end{document}\
|
|
|
|
`
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
ClsiApp.ensureRunning(done)
|
|
|
|
})
|
|
|
|
|
2020-08-10 12:01:11 -04:00
|
|
|
describe('with a valid name', function () {
|
|
|
|
beforeEach(function (done) {
|
2020-06-26 07:29:49 -04:00
|
|
|
this.request.options.imageName = process.env.TEXLIVE_IMAGE
|
|
|
|
|
|
|
|
Client.compile(this.project_id, this.request, (error, res, body) => {
|
|
|
|
this.error = error
|
|
|
|
this.res = res
|
|
|
|
this.body = body
|
|
|
|
done(error)
|
|
|
|
})
|
|
|
|
})
|
2020-08-10 12:01:11 -04:00
|
|
|
it('should return success', function () {
|
2020-06-26 07:29:49 -04:00
|
|
|
expect(this.res.statusCode).to.equal(200)
|
|
|
|
})
|
|
|
|
|
2020-08-10 12:01:11 -04:00
|
|
|
it('should return a PDF', function () {
|
2020-06-26 07:29:49 -04:00
|
|
|
let pdf
|
|
|
|
try {
|
|
|
|
pdf = Client.getOutputFile(this.body, 'pdf')
|
|
|
|
} catch (e) {}
|
|
|
|
expect(pdf).to.exist
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
2020-08-10 12:01:11 -04:00
|
|
|
describe('with an invalid name', function () {
|
|
|
|
beforeEach(function (done) {
|
2020-06-26 07:29:49 -04:00
|
|
|
this.request.options.imageName = 'something/evil:1337'
|
|
|
|
Client.compile(this.project_id, this.request, (error, res, body) => {
|
|
|
|
this.error = error
|
|
|
|
this.res = res
|
|
|
|
this.body = body
|
|
|
|
done(error)
|
|
|
|
})
|
|
|
|
})
|
2020-08-10 12:01:11 -04:00
|
|
|
it('should return non success', function () {
|
2020-06-26 07:29:49 -04:00
|
|
|
expect(this.res.statusCode).to.not.equal(200)
|
|
|
|
})
|
|
|
|
|
2020-08-10 12:01:11 -04:00
|
|
|
it('should not return a PDF', function () {
|
2020-06-26 07:29:49 -04:00
|
|
|
let pdf
|
|
|
|
try {
|
|
|
|
pdf = Client.getOutputFile(this.body, 'pdf')
|
|
|
|
} catch (e) {}
|
|
|
|
expect(pdf).to.not.exist
|
|
|
|
})
|
|
|
|
})
|
2020-06-26 08:17:45 -04:00
|
|
|
|
2020-08-10 12:01:11 -04:00
|
|
|
describe('wordcount', function () {
|
|
|
|
beforeEach(function (done) {
|
2020-06-26 08:17:45 -04:00
|
|
|
Client.compile(this.project_id, this.request, done)
|
|
|
|
})
|
2020-08-10 12:01:11 -04:00
|
|
|
it('should error out with an invalid imageName', function () {
|
2020-06-26 08:17:45 -04:00
|
|
|
Client.wordcountWithImage(
|
|
|
|
this.project_id,
|
|
|
|
'main.tex',
|
|
|
|
'something/evil:1337',
|
|
|
|
(error, result) => {
|
|
|
|
expect(String(error)).to.include('statusCode=400')
|
|
|
|
}
|
|
|
|
)
|
|
|
|
})
|
|
|
|
|
2020-08-10 12:01:11 -04:00
|
|
|
it('should produce a texcout a valid imageName', function () {
|
2020-06-26 08:17:45 -04:00
|
|
|
Client.wordcountWithImage(
|
|
|
|
this.project_id,
|
|
|
|
'main.tex',
|
|
|
|
process.env.TEXLIVE_IMAGE,
|
|
|
|
(error, result) => {
|
|
|
|
expect(error).to.not.exist
|
|
|
|
expect(result).to.exist
|
|
|
|
expect(result.texcount).to.exist
|
|
|
|
}
|
|
|
|
)
|
|
|
|
})
|
|
|
|
})
|
2020-06-26 07:29:49 -04:00
|
|
|
})
|