Files
overleaf-cep/services/web/test/acceptance/src/BodyParserErrorsTest.js
Jakob Ackermann 5e773ce950 Merge pull request #4101 from overleaf/ae-settings-module
Migrate from `settings-sharelatex` to `@overleaf/settings`

GitOrigin-RevId: 9a298ba26382180c1351683c5fddc9004418c1e6
2021-07-08 02:08:28 +00:00

88 lines
2.2 KiB
JavaScript

const Settings = require('@overleaf/settings')
const request = require('./helpers/request')
// create a string that is longer than the max allowed (as defined in Server.js)
const wayTooLongString = 'a'.repeat(Settings.max_json_request_size + 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(/I'm afraid I can't do that./)
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()
}
)
})
})
})
})