overleaf/services/web/test/acceptance/src/BodyParserErrorsTest.js
Timothée Alby fbbb39b0c0 Merge pull request #2620 from overleaf/ta-body-parser-errors
Convert Errors with Status Code To HTTP Errors

GitOrigin-RevId: 4c7abf4f9164c1a907fbf38c6e440409a616e047
2020-03-10 04:14:38 +00:00

87 lines
2.2 KiB
JavaScript

const Settings = require('settings-sharelatex')
const request = require('./helpers/request')
// create a string that is longer than the max allowed (as defined in Server.js)
const wayTooLongString = 'a'.repeat(2 * Settings.max_doc_length + 64 * 1024 + 1)
describe('BodyParserErrors', function() {
describe('when request is too large', function() {
describe('json', function() {
it('return 413', function(done) {
request.post(
{
url: '/login',
body: { password: wayTooLongString },
json: true
},
(error, response, body) => {
if (error) {
return done(error)
}
response.statusCode.should.equal(413)
body.should.deep.equal({})
done()
}
)
})
})
describe('urlencoded', function() {
it('return 413', function(done) {
request.post(
{
url: '/login',
form: { password: wayTooLongString }
},
(error, response, body) => {
if (error) {
return done(error)
}
response.statusCode.should.equal(413)
body.should.match(/Something went wrong, sorry/)
done()
}
)
})
})
})
describe('when request is not too large', function() {
describe('json', function() {
it('return normal status code', function(done) {
request.post(
{
url: '/login',
body: { password: 'foo' },
json: true
},
(error, response, body) => {
if (error) {
return done(error)
}
response.statusCode.should.equal(403)
done()
}
)
})
})
describe('urlencoded', function() {
it('return normal status code', function(done) {
request.post(
{
url: '/login',
form: { password: 'foo' }
},
(error, response, body) => {
if (error) {
return done(error)
}
response.statusCode.should.equal(403)
done()
}
)
})
})
})
})