Skip to content

Commit

Permalink
Only pass strings to HttpRequest#setHeader (#709)
Browse files Browse the repository at this point in the history
* setHeader value arg should be string

* Explicit casting of header values, number to string

* Fix syntax

* Fix lint

---------

Co-authored-by: Marius Kleidl <marius@transloadit.com>
  • Loading branch information
DraganDanicic and Acconut authored Sep 9, 2024
1 parent bf4fe1c commit 1cef03e
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 57 deletions.
8 changes: 4 additions & 4 deletions lib/upload.js
Original file line number Diff line number Diff line change
Expand Up @@ -579,9 +579,9 @@ class BaseUpload {
const req = this._openRequest('POST', this.options.endpoint)

if (this.options.uploadLengthDeferred) {
req.setHeader('Upload-Defer-Length', 1)
req.setHeader('Upload-Defer-Length', '1')
} else {
req.setHeader('Upload-Length', this._size)
req.setHeader('Upload-Length', `${this._size}`)
}

// Add metadata if values have been added
Expand Down Expand Up @@ -754,7 +754,7 @@ class BaseUpload {
req = this._openRequest('PATCH', this.url)
}

req.setHeader('Upload-Offset', this._offset)
req.setHeader('Upload-Offset', `${this._offset}`)
const promise = this._addChunkToRequest(req)

promise
Expand Down Expand Up @@ -810,7 +810,7 @@ class BaseUpload {
// upload size and can tell the tus server.
if (this.options.uploadLengthDeferred && done) {
this._size = this._offset + valueSize
req.setHeader('Upload-Length', this._size)
req.setHeader('Upload-Length', `${this._size}`)
}

// The specified uploadSize might not match the actual amount of data that a source
Expand Down
32 changes: 16 additions & 16 deletions test/spec/test-browser-specific.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads/resuming')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(3)
expect(req.requestHeaders['Upload-Offset']).toBe('3')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(11 - 3)

Expand Down Expand Up @@ -196,7 +196,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads/storedUrl')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(3)
expect(req.requestHeaders['Upload-Offset']).toBe('3')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(11 - 3)

Expand Down Expand Up @@ -291,7 +291,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Upload-Length']).toBe(undefined)
expect(req.requestHeaders['Upload-Defer-Length']).toBe(1)
expect(req.requestHeaders['Upload-Defer-Length']).toBe('1')

req.respondWith({
status: 201,
Expand All @@ -303,7 +303,7 @@ describe('tus', () => {
req = await testStack.nextRequest()
expect(req.url).toBe('http://tus.io/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Upload-Offset']).toBe(0)
expect(req.requestHeaders['Upload-Offset']).toBe('0')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.length).toBe(11)

Expand All @@ -320,8 +320,8 @@ describe('tus', () => {
req = await testStack.nextRequest()
expect(req.url).toBe('http://tus.io/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Upload-Offset']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Offset']).toBe('11')
expect(req.requestHeaders['Upload-Length']).toBe('11')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body).toBe(null)

Expand Down Expand Up @@ -369,7 +369,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Upload-Length']).toBe(undefined)
expect(req.requestHeaders['Upload-Defer-Length']).toBe(1)
expect(req.requestHeaders['Upload-Defer-Length']).toBe('1')

req.respondWith({
status: 201,
Expand All @@ -381,7 +381,7 @@ describe('tus', () => {
req = await testStack.nextRequest()
expect(req.url).toBe('http://tus.io/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Upload-Offset']).toBe(0)
expect(req.requestHeaders['Upload-Offset']).toBe('0')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.length).toBe(6)

Expand All @@ -399,7 +399,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(6)
expect(req.requestHeaders['Upload-Offset']).toBe('6')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.length).toBe(5)

Expand All @@ -413,8 +413,8 @@ describe('tus', () => {
req = await testStack.nextRequest()
expect(req.url).toBe('http://tus.io/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Upload-Offset']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Offset']).toBe('11')
expect(req.requestHeaders['Upload-Length']).toBe('11')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body).toBe(null)

Expand Down Expand Up @@ -479,7 +479,7 @@ describe('tus', () => {
req = await testStack.nextRequest()
expect(req.url).toBe('http://tus.io/files/foo')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe('11')

req.respondWith({
status: 204,
Expand Down Expand Up @@ -551,7 +551,7 @@ describe('tus', () => {
req = await testStack.nextRequest()
expect(req.url).toBe('http://tus.io/files/foo')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe('11')

req.respondWith({
status: 204,
Expand Down Expand Up @@ -645,7 +645,7 @@ describe('tus', () => {
req = await testStack.nextRequest()
expect(req.url).toBe('http://tus.io/files/foo')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Upload-Length']).toBe(18)
expect(req.requestHeaders['Upload-Length']).toBe('18')

req.respondWith({
status: 204,
Expand Down Expand Up @@ -765,7 +765,7 @@ describe('tus', () => {
req = await testStack.nextRequest()
expect(req.url).toBe('http://tus.io/uploads')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe('11')

req.respondWith({
status: 201,
Expand All @@ -778,7 +778,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(0)
expect(req.requestHeaders['Upload-Offset']).toBe('0')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(11)

Expand Down
24 changes: 12 additions & 12 deletions test/spec/test-common.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ describe('tus', () => {
expect(req.method).toBe('POST')
expect(req.requestHeaders.Custom).toBe('blargh')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe('11')
expect(req.requestHeaders['Upload-Metadata']).toBe(
'foo aGVsbG8=,bar d29ybGQ=,nonlatin c8WCb8WEY2U=,number MTAw',
)
Expand All @@ -75,7 +75,7 @@ describe('tus', () => {
expect(req.method).toBe('PATCH')
expect(req.requestHeaders.Custom).toBe('blargh')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(0)
expect(req.requestHeaders['Upload-Offset']).toBe('0')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(11)

Expand Down Expand Up @@ -117,7 +117,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe('11')

// The upload URL should be cleared when tus-js.client tries to create a new upload.
expect(upload.url).toBe(null)
Expand Down Expand Up @@ -145,7 +145,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe('11')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(11)

Expand Down Expand Up @@ -189,7 +189,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe('11')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(6)

Expand All @@ -212,7 +212,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(6)
expect(req.requestHeaders['Upload-Offset']).toBe('6')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(5)

Expand Down Expand Up @@ -419,7 +419,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe('11')

req.respondWith({
status: 201,
Expand All @@ -432,7 +432,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(0)
expect(req.requestHeaders['Upload-Offset']).toBe('0')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(7)

Expand All @@ -447,7 +447,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(7)
expect(req.requestHeaders['Upload-Offset']).toBe('7')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(4)

Expand Down Expand Up @@ -517,7 +517,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Length']).toBe(0)
expect(req.requestHeaders['Upload-Length']).toBe('0')

req.respondWith({
status: 201,
Expand Down Expand Up @@ -604,7 +604,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/files/upload')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(3)
expect(req.requestHeaders['Upload-Offset']).toBe('3')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(11 - 3)

Expand Down Expand Up @@ -716,7 +716,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/files/upload')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(3)
expect(req.requestHeaders['Upload-Offset']).toBe('3')
expect(req.requestHeaders['X-HTTP-Method-Override']).toBe('PATCH')

req.respondWith({
Expand Down
20 changes: 10 additions & 10 deletions test/spec/test-node-specific.js
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ describe('tus', () => {
expect(req.url).toBe('https://tus.io/uploads')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Length']).toBe(5)
expect(req.requestHeaders['Upload-Length']).toBe('5')
expect(req.requestHeaders['Upload-Concat']).toBe('partial')

req.respondWith({
Expand All @@ -192,7 +192,7 @@ describe('tus', () => {
expect(req.url).toBe('https://tus.io/uploads/upload1')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(0)
expect(req.requestHeaders['Upload-Offset']).toBe('0')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(5)

Expand All @@ -207,7 +207,7 @@ describe('tus', () => {
expect(req.url).toBe('https://tus.io/uploads')
expect(req.method).toBe('POST')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Length']).toBe(6)
expect(req.requestHeaders['Upload-Length']).toBe('6')
expect(req.requestHeaders['Upload-Concat']).toBe('partial')

req.respondWith({
Expand All @@ -221,7 +221,7 @@ describe('tus', () => {
expect(req.url).toBe('https://tus.io/uploads/upload2')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(0)
expect(req.requestHeaders['Upload-Offset']).toBe('0')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(6)

Expand Down Expand Up @@ -367,7 +367,7 @@ describe('tus', () => {
expect(req.url).toBe('http://tus.io/uploads/resuming')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Tus-Resumable']).toBe('1.0.0')
expect(req.requestHeaders['Upload-Offset']).toBe(3)
expect(req.requestHeaders['Upload-Offset']).toBe('3')
expect(req.requestHeaders['Content-Type']).toBe('application/offset+octet-stream')
expect(req.body.size).toBe(11 - 3)

Expand Down Expand Up @@ -530,9 +530,9 @@ async function expectHelloWorldUpload(input, options) {
expect(req.method).toBe('POST')
if (options.uploadLengthDeferred) {
expect(req.requestHeaders['Upload-Length']).toBe(undefined)
expect(req.requestHeaders['Upload-Defer-Length']).toBe(1)
expect(req.requestHeaders['Upload-Defer-Length']).toBe('1')
} else {
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe('11')
expect(req.requestHeaders['Upload-Defer-Length']).toBe(undefined)
}

Expand All @@ -546,7 +546,7 @@ async function expectHelloWorldUpload(input, options) {
req = await options.httpStack.nextRequest()
expect(req.url).toBe('/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Upload-Offset']).toBe(0)
expect(req.requestHeaders['Upload-Offset']).toBe('0')
expect(await getBodySize(req.body)).toBe(7)

req.respondWith({
Expand All @@ -559,10 +559,10 @@ async function expectHelloWorldUpload(input, options) {
req = await options.httpStack.nextRequest()
expect(req.url).toBe('/uploads/blargh')
expect(req.method).toBe('PATCH')
expect(req.requestHeaders['Upload-Offset']).toBe(7)
expect(req.requestHeaders['Upload-Offset']).toBe('7')

if (options.uploadLengthDeferred) {
expect(req.requestHeaders['Upload-Length']).toBe(11)
expect(req.requestHeaders['Upload-Length']).toBe('11')
}

expect(await getBodySize(req.body)).toBe(4)
Expand Down
Loading

0 comments on commit 1cef03e

Please sign in to comment.