@@ -2,7 +2,7 @@ import assert from 'node:assert/strict';
22import { createReadStream , statSync , unlinkSync , writeFileSync } from 'node:fs' ;
33import { afterEach , beforeEach , describe , it } from 'node:test' ;
44import sinon from 'sinon' ;
5- import { ErrorCode } from './errors' ;
5+ import { ErrorCode , type WebAPIFileUploadInvalidArgumentsError } from './errors' ;
66import {
77 buildChannelsWarning ,
88 buildLegacyFileTypeWarning ,
@@ -54,8 +54,8 @@ describe('file-upload', () => {
5454 assert . strictEqual ( valid . filename , res . filename ) ;
5555
5656 // calculated values
57- assert . ok ( res . data !== undefined ) ;
58- assert . ok ( res . length !== undefined ) ;
57+ assert . ok ( res . data ) ;
58+ assert . ok ( res . length ) ;
5959 } ) ;
6060 it ( 'warns if legacy filetype' , async ( ) => {
6161 const containsFileType = {
@@ -141,10 +141,10 @@ describe('file-upload', () => {
141141 assert . strictEqual ( valid . file_uploads [ 1 ] . filename , res [ 1 ] . filename ) ;
142142
143143 // calculated values
144- assert . ok ( res [ 0 ] . data !== undefined ) ;
145- assert . ok ( res [ 1 ] . data !== undefined ) ;
146- assert . ok ( res [ 0 ] . length !== undefined ) ;
147- assert . ok ( res [ 1 ] . length !== undefined ) ;
144+ assert . ok ( res [ 0 ] . data ) ;
145+ assert . ok ( res [ 1 ] . data ) ;
146+ assert . ok ( res [ 0 ] . length ) ;
147+ assert . ok ( res [ 1 ] . length ) ;
148148 } ) ;
149149 } ) ;
150150 describe ( 'getFileData' , ( ) => {
@@ -157,11 +157,12 @@ describe('file-upload', () => {
157157 // if we get here this test is failed
158158 assert . fail ( res . toString ( ) ) ;
159159 } catch ( err ) {
160+ const e = err as WebAPIFileUploadInvalidArgumentsError ;
160161 assert . strictEqual (
161- ( err as Record < string , unknown > ) . message ,
162+ e . message ,
162163 'Either a file or content field is required for valid file upload. You cannot supply both' ,
163164 ) ;
164- assert . strictEqual ( ( err as Record < string , unknown > ) . code , ErrorCode . FileUploadInvalidArgumentsError ) ;
165+ assert . strictEqual ( e . code , ErrorCode . FileUploadInvalidArgumentsError ) ;
165166 }
166167 } ) ;
167168 it ( 'handles invalid input for file or content or when both supplied' , async ( ) => {
@@ -176,11 +177,12 @@ describe('file-upload', () => {
176177 const res = await getFileData ( invalidFileUpload ) ;
177178 assert . fail ( res . toString ( ) ) ;
178179 } catch ( err ) {
180+ const e = err as WebAPIFileUploadInvalidArgumentsError ;
179181 assert . strictEqual (
180- ( err as Record < string , unknown > ) . message ,
182+ e . message ,
181183 'Either a file or content field is required for valid file upload. You cannot supply both' ,
182184 ) ;
183- assert . strictEqual ( ( err as Record < string , unknown > ) . code , ErrorCode . FileUploadInvalidArgumentsError ) ;
185+ assert . strictEqual ( e . code , ErrorCode . FileUploadInvalidArgumentsError ) ;
184186 }
185187
186188 // file supplied invalid type of valid
@@ -193,11 +195,12 @@ describe('file-upload', () => {
193195 const res = await getFileData ( invalidFileUpload2 ) ;
194196 assert . fail ( res . toString ( ) ) ;
195197 } catch ( err ) {
198+ const e = err as WebAPIFileUploadInvalidArgumentsError ;
196199 assert . strictEqual (
197- ( err as Record < string , unknown > ) . message ,
200+ e . message ,
198201 'file must be a valid string path, buffer or Readable' ,
199202 ) ;
200- assert . strictEqual ( ( err as Record < string , unknown > ) . code , ErrorCode . FileUploadInvalidArgumentsError ) ;
203+ assert . strictEqual ( e . code , ErrorCode . FileUploadInvalidArgumentsError ) ;
201204 }
202205
203206 // content supplied invalid type of field
@@ -210,8 +213,9 @@ describe('file-upload', () => {
210213 const res = await getFileData ( invalidFileUpload3 ) ;
211214 assert . fail ( res . toString ( ) ) ;
212215 } catch ( err ) {
213- assert . strictEqual ( ( err as Record < string , unknown > ) . message , 'content must be a string' ) ;
214- assert . strictEqual ( ( err as Record < string , unknown > ) . code , ErrorCode . FileUploadInvalidArgumentsError ) ;
216+ const e = err as WebAPIFileUploadInvalidArgumentsError ;
217+ assert . strictEqual ( e . message , 'content must be a string' ) ;
218+ assert . strictEqual ( e . code , ErrorCode . FileUploadInvalidArgumentsError ) ;
215219 }
216220 } ) ;
217221 it ( 'handles file as buffer' , async ( ) => {
@@ -243,11 +247,12 @@ describe('file-upload', () => {
243247 const res = await getFileData ( fileUpload ) ;
244248 assert . fail ( res . toString ( ) ) ;
245249 } catch ( err ) {
250+ const e = err as WebAPIFileUploadInvalidArgumentsError ;
246251 assert . strictEqual (
247- ( err as Record < string , unknown > ) . message ,
252+ e . message ,
248253 `Unable to resolve file data for ${ fileUpload . file } . Please supply a filepath string, or binary data Buffer or String directly.` ,
249254 ) ;
250- assert . strictEqual ( ( err as Record < string , unknown > ) . code , ErrorCode . FileUploadInvalidArgumentsError ) ;
255+ assert . strictEqual ( e . code , ErrorCode . FileUploadInvalidArgumentsError ) ;
251256 }
252257 } ) ;
253258 it ( 'handles file as ReadStream' , async ( ) => {
@@ -289,7 +294,8 @@ describe('file-upload', () => {
289294 await getFileDataAsStream ( createReadStream ( './test/fixtures/test-txt-empty.txt' ) ) ;
290295 assert . fail ( 'expected exception to be thrown but was not' ) ;
291296 } catch ( err ) {
292- assert . strictEqual ( ( err as Record < string , unknown > ) . message , 'No data in supplied file' ) ;
297+ assert . ok ( err instanceof Error ) ;
298+ assert . strictEqual ( err . message , 'No data in supplied file' ) ;
293299 }
294300 } ) ;
295301 it ( 'ensures complete file is uploaded' , async ( ) => {
0 commit comments