11import  {  expect  }  from  'chai' ; 
22import  {  BinaryReader  }  from  "../src" ; 
3- import  {  getBufferOfLength  }  from  "./common" ; 
3+ import  {  getBufferOfLength ,  getInvalidNumberValues  }  from  "./common" ; 
4+ import  {  expectInvalidArgument  }  from  './asserts' ; 
45
56describe ( "BinaryReader, negative common tests" ,  ( )  =>  { 
67describe ( 'Constructor' ,  ( )  =>  { 
78it ( "Throw exception when receiving invalid constructor" ,  ( )  =>  { 
8- // @ts -expect-error: Negative scenario checking 
9- expect ( ( )  =>  new  BinaryReader ( null ) ) . to . throw ( ) ; 
9+ const  invalidValues  =  [ 
10+ null , 
11+ undefined , 
12+ { } , 
13+ [ ] , 
14+ false , 
15+ true , 
16+ 0 , 
17+ "" , 
18+ "0" , 
19+ function  ( )  {  } 
20+ ] ; 
21+ 
22+ for  ( const  value  of  invalidValues )  { 
23+ expectInvalidArgument ( 
24+ // @ts -expect-error: Negative scenario checking 
25+ ( )  =>  new  BinaryReader ( value ) , 
26+ "`stream` must be either an instance of ArrayBuffer or Uint8Array" , 
27+ 'stream' , 
28+ value 
29+ ) ; 
30+ } 
1031// @ts -expect-error: Negative scenario checking 
1132expect ( ( )  =>  new  BinaryReader ( undefined ) ) . to . throw ( ) ; 
1233// @ts -expect-error: Negative scenario checking 
@@ -24,26 +45,19 @@ describe("BinaryReader, negative common tests", () => {
2445
2546describe ( 'Properties' ,  ( )  =>  { 
2647describe ( 'set position' ,  ( )  =>  { 
27- it ( 'Throw an error when setting to non numeric values' ,  ( )  =>  { 
28- const  reader  =  new  BinaryReader ( getBufferOfLength ( 16 ) ) ; 
29- 
30- expect ( ( )  =>  reader . position  =  Number . NaN ) . to . throw ( ) ; 
31- expect ( ( )  =>  reader . position  =  Number . NEGATIVE_INFINITY ) . to . throw ( ) ; 
32- expect ( ( )  =>  reader . position  =  Number . POSITIVE_INFINITY ) . to . throw ( ) ; 
48+ for  ( const  [ name ,  value ]  of  Object . entries ( getInvalidNumberValues ( ) ) )  { 
49+ it ( `position = ${ name }  ,  ( )  =>  { 
50+ const  reader  =  new  BinaryReader ( getBufferOfLength ( 16 ) ) ; 
3351
34- // @ts -expect-error: Negative scenario checking 
35- expect ( ( )  =>  reader . position  =  null ) . to . throw ( ) ; 
36- // @ts -expect-error: Negative scenario checking 
37- expect ( ( )  =>  reader . position  =  undefined ) . to . throw ( ) ; 
38- // @ts -expect-error: Negative scenario checking 
39- expect ( ( )  =>  reader . position  =  "" ) . to . throw ( ) ; 
40- // @ts -expect-error: Negative scenario checking 
41- expect ( ( )  =>  reader . position  =  [ ] ) . to . throw ( ) ; 
42- // @ts -expect-error: Negative scenario checking 
43- expect ( ( )  =>  reader . position  =  { } ) . to . throw ( ) ; 
44- // @ts -expect-error: Negative scenario checking 
45- expect ( ( )  =>  reader . position  =  function  ( )  {  } ) . to . throw ( ) ; 
46- } ) ; 
52+ expectInvalidArgument ( 
53+ // @ts -expect-error: Negative scenario checking 
54+ ( )  =>  reader . position  =  value , 
55+ "Cannot set position to a non-numeric value" , 
56+ 'position' , 
57+ value 
58+ ) ; 
59+ } ) ; 
60+ } 
4761} ) ; 
4862} ) ; 
4963} ) ; 
0 commit comments