mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-03 01:24:38 -05:00
88 lines
2.2 KiB
JavaScript
88 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()
|
||
|
}
|
||
|
)
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|