Files
overleaf-cep/services/web/test/acceptance/src/mocks/MockClsiApi.js
T
Jakob Ackermann d902505ac9 Merge pull request #6317 from overleaf/jpa-send-explicit-content-type
[web] send explicit content type in responses

GitOrigin-RevId: d5aeaba57a7d2fc053fbf5adc2299fb46e435341
2022-01-18 09:03:18 +00:00

73 lines
1.8 KiB
JavaScript

const AbstractMockApi = require('./AbstractMockApi')
const {
plainTextResponse,
} = require('../../../../app/src/infrastructure/Response')
class MockClsiApi extends AbstractMockApi {
static compile(req, res) {
res.json({
compile: {
status: 'success',
error: null,
outputFiles: [
{
url: `http://clsi:3013/project/${req.params.project_id}/build/1234/output/project.pdf`,
path: 'project.pdf',
type: 'pdf',
build: 1234,
},
{
url: `http://clsi:3013/project/${req.params.project_id}/build/1234/output/project.log`,
path: 'project.log',
type: 'log',
build: 1234,
},
],
},
})
}
applyRoutes() {
this.app.post('/project/:project_id/compile', MockClsiApi.compile)
this.app.post(
'/project/:project_id/user/:user_id/compile',
MockClsiApi.compile
)
this.app.get(
'/project/:project_id/build/:build_id/output/*',
(req, res) => {
const filename = req.params[0]
if (filename === 'project.pdf') {
plainTextResponse(res, 'mock-pdf')
} else if (filename === 'project.log') {
plainTextResponse(res, 'mock-log')
} else {
res.sendStatus(404)
}
}
)
this.app.get(
'/project/:project_id/user/:user_id/build/:build_id/output/:output_path',
(req, res) => {
plainTextResponse(res, 'hello')
}
)
this.app.get('/project/:project_id/status', (req, res) => {
res.sendStatus(200)
})
}
}
module.exports = MockClsiApi
// type hint for the inherited `instance` method
/**
* @function instance
* @memberOf MockClsiApi
* @static
* @returns {MockClsiApi}
*/