mirror of
https://github.com/overleaf/overleaf.git
synced 2025-02-16 23:14:36 +00:00
Refactor to make _get_range testable.
This commit is contained in:
parent
97cdc243d3
commit
387e96ab67
2 changed files with 29 additions and 11 deletions
|
@ -8,14 +8,7 @@ parseRange = require('range-parser')
|
|||
oneDayInSeconds = 60 * 60 * 24
|
||||
maxSizeInBytes = 1024 * 1024 * 1024 # 1GB
|
||||
|
||||
|
||||
get_range = (header) ->
|
||||
parsed = parseRange(maxSizeInBytes, header)
|
||||
range_type = parsed.type
|
||||
range = parsed[0]
|
||||
{start: range.start, end: range.end}
|
||||
|
||||
module.exports =
|
||||
module.exports = FileController =
|
||||
|
||||
getFile: (req, res)->
|
||||
{key, bucket} = req
|
||||
|
@ -25,12 +18,10 @@ module.exports =
|
|||
bucket: bucket,
|
||||
format: format,
|
||||
style: style,
|
||||
start: null,
|
||||
end: null
|
||||
}
|
||||
metrics.inc "getFile"
|
||||
if req.headers.range?
|
||||
range = get_range(req.headers.range)
|
||||
range = FileController._get_range(req.headers.range)
|
||||
opts.start = range.start
|
||||
opts.end = range.end
|
||||
logger.log key:key, bucket:bucket, format:format, style:style, "reciving request to get file"
|
||||
|
@ -76,3 +67,11 @@ module.exports =
|
|||
res.send 500
|
||||
else
|
||||
res.send 204
|
||||
|
||||
_get_range: (header) ->
|
||||
parsed = parseRange(maxSizeInBytes, header)
|
||||
if parsed == -1 or parsed == -2 or parsed.type != 'bytes'
|
||||
null
|
||||
else
|
||||
range = parsed[0]
|
||||
{start: range.start, end: range.end}
|
||||
|
|
|
@ -133,3 +133,22 @@ describe "FileController", ->
|
|||
code.should.equal 500
|
||||
done()
|
||||
@controller.deleteFile @req, @res
|
||||
|
||||
describe "_get_range", ->
|
||||
|
||||
it "should parse a valid Range header", (done) ->
|
||||
result = @controller._get_range('bytes=0-200')
|
||||
expect(result).to.not.equal null
|
||||
expect(result.start).to.equal 0
|
||||
expect(result.end).to.equal 200
|
||||
done()
|
||||
|
||||
it "should return null for an invalid Range header", (done) ->
|
||||
result = @controller._get_range('wat')
|
||||
expect(result).to.equal null
|
||||
done()
|
||||
|
||||
it "should return null for any type other than 'bytes'", (done) ->
|
||||
result = @controller._get_range('carrots=0-200')
|
||||
expect(result).to.equal null
|
||||
done()
|
||||
|
|
Loading…
Reference in a new issue