1+ /* eslint-disable prefer-arrow-callback */
12import { describe , it , expect , vi , beforeEach , afterEach } from 'vitest' ;
23
34const canvasDataURL =
@@ -67,10 +68,16 @@ const mockDocument = {
6768 dispatchEvent : vi . fn ( ) ,
6869} ;
6970
70- const mockURL = {
71- createObjectURL : vi . fn ( ( ) => 'blob:mock-url' ) ,
72- revokeObjectURL : vi . fn ( ) ,
73- } ;
71+ const mockURL = vi . fn ( function ( url , _base ) {
72+ this . href = url ;
73+ this . protocol = '' ;
74+ this . hostname = '' ;
75+ this . port = '' ;
76+ this . pathname = '' ;
77+ return this ;
78+ } ) ;
79+ mockURL . createObjectURL = vi . fn ( ( ) => 'blob:mock-url' ) ;
80+ mockURL . revokeObjectURL = vi . fn ( ) ;
7481
7582const mockFileReader = class {
7683 constructor ( ) {
@@ -92,11 +99,17 @@ describe('File Module', () => {
9299 global . URL = mockURL ;
93100 global . window = { URL : mockURL } ;
94101 global . FileReader = mockFileReader ;
95- global . Blob = vi . fn ( ) ;
102+ global . Blob = vi . fn ( function ( parts , options ) {
103+ this . parts = parts ;
104+ this . options = options ;
105+ return this ;
106+ } ) ;
96107 global . btoa = vi . fn ( str => Buffer . from ( str , 'binary' ) . toString ( 'base64' ) ) ;
97108 global . atob = vi . fn ( str => Buffer . from ( str , 'base64' ) . toString ( 'binary' ) ) ;
98109 global . navigator = { userAgent : 'Chrome/90.0' } ;
99- global . MouseEvent = vi . fn ( ( ) => ( { bubbles : true , cancelable : true } ) ) ;
110+ global . MouseEvent = vi . fn ( function ( ) {
111+ return { bubbles : true , cancelable : true } ;
112+ } ) ;
100113
101114 // Import the module fresh for each test
102115 const fileModule = await import ( '../../src/js/client/file.js' ) ;
@@ -191,17 +204,21 @@ describe('File Module', () => {
191204 size : 100 ,
192205 } ;
193206
194- const mockFileReader = new FileReader ( ) ;
195- global . FileReader = vi . fn ( ( ) => mockFileReader ) ;
207+ const mockFileReaderInstance = new FileReader ( ) ;
208+ global . FileReader = vi . fn ( function ( ) {
209+ return mockFileReaderInstance ;
210+ } ) ;
196211
197212 const callback = vi . fn ( ) ;
198213 Load . file ( mockFile , callback ) ;
199214
200- expect ( mockFileReader . addEventListener ) . toHaveBeenCalledWith (
215+ expect ( mockFileReaderInstance . addEventListener ) . toHaveBeenCalledWith (
201216 'load' ,
202217 expect . any ( Function ) ,
203218 ) ;
204- expect ( mockFileReader . readAsArrayBuffer ) . toHaveBeenCalledWith ( mockFile ) ;
219+ expect ( mockFileReaderInstance . readAsArrayBuffer ) . toHaveBeenCalledWith (
220+ mockFile ,
221+ ) ;
205222 } ) ;
206223
207224 it ( 'should handle BIN file loading setup' , ( ) => {
@@ -413,7 +430,9 @@ describe('File Module', () => {
413430 describe ( 'Date Handling' , ( ) => {
414431 it ( 'should format dates correctly in SAUCE records' , ( ) => {
415432 const mockDate = new Date ( '2023-03-15' ) ;
416- vi . spyOn ( global , 'Date' ) . mockImplementation ( ( ) => mockDate ) ;
433+ vi . spyOn ( global , 'Date' ) . mockImplementation ( function ( ) {
434+ return mockDate ;
435+ } ) ;
417436
418437 Save . ans ( ) ;
419438
@@ -602,7 +621,9 @@ describe('File Module', () => {
602621 } ;
603622
604623 // Mock FileReader constructor to return our instance
605- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
624+ global . FileReader = vi . fn ( function ( ) {
625+ return mockReaderInstance ;
626+ } ) ;
606627
607628 Load . file ( mockFile , callback ) ;
608629
@@ -626,7 +647,9 @@ describe('File Module', () => {
626647 readAsArrayBuffer : vi . fn ( ) ,
627648 } ;
628649
629- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
650+ global . FileReader = vi . fn ( function ( ) {
651+ return mockReaderInstance ;
652+ } ) ;
630653
631654 Load . file ( mockFile , callback ) ;
632655
@@ -650,7 +673,9 @@ describe('File Module', () => {
650673 readAsArrayBuffer : vi . fn ( ) ,
651674 } ;
652675
653- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
676+ global . FileReader = vi . fn ( function ( ) {
677+ return mockReaderInstance ;
678+ } ) ;
654679
655680 Load . file ( mockFile , callback ) ;
656681
@@ -674,7 +699,9 @@ describe('File Module', () => {
674699 readAsArrayBuffer : vi . fn ( ) ,
675700 } ;
676701
677- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
702+ global . FileReader = vi . fn ( function ( ) {
703+ return mockReaderInstance ;
704+ } ) ;
678705
679706 Load . file ( mockFile , callback ) ;
680707
@@ -708,7 +735,9 @@ describe('File Module', () => {
708735 readAsArrayBuffer : vi . fn ( ) ,
709736 } ;
710737
711- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
738+ global . FileReader = vi . fn ( function ( ) {
739+ return mockReaderInstance ;
740+ } ) ;
712741
713742 expect ( ( ) => Load . file ( mockFile , callback ) ) . not . toThrow ( ) ;
714743 expect ( mockReaderInstance . readAsArrayBuffer ) . toHaveBeenCalledWith (
@@ -739,7 +768,9 @@ describe('File Module', () => {
739768 readAsArrayBuffer : vi . fn ( ) ,
740769 } ;
741770
742- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
771+ global . FileReader = vi . fn ( function ( ) {
772+ return mockReaderInstance ;
773+ } ) ;
743774
744775 Load . file ( mockFile , callback ) ;
745776
@@ -783,7 +814,9 @@ describe('File Module', () => {
783814 readAsArrayBuffer : vi . fn ( ) ,
784815 } ;
785816
786- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
817+ global . FileReader = vi . fn ( function ( ) {
818+ return mockReaderInstance ;
819+ } ) ;
787820
788821 Load . file ( mockFile , callback ) ;
789822
@@ -1002,7 +1035,9 @@ describe('File Module', () => {
10021035 readAsArrayBuffer : vi . fn ( ) ,
10031036 } ;
10041037
1005- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
1038+ global . FileReader = vi . fn ( function ( ) {
1039+ return mockReaderInstance ;
1040+ } ) ;
10061041
10071042 Load . file ( mockFile , callback ) ;
10081043
@@ -1026,7 +1061,9 @@ describe('File Module', () => {
10261061 readAsArrayBuffer : vi . fn ( ) ,
10271062 } ;
10281063
1029- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
1064+ global . FileReader = vi . fn ( function ( ) {
1065+ return mockReaderInstance ;
1066+ } ) ;
10301067
10311068 Load . file ( mockFile , callback ) ;
10321069
@@ -1050,7 +1087,9 @@ describe('File Module', () => {
10501087 readAsArrayBuffer : vi . fn ( ) ,
10511088 } ;
10521089
1053- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
1090+ global . FileReader = vi . fn ( function ( ) {
1091+ return mockReaderInstance ;
1092+ } ) ;
10541093
10551094 Load . file ( mockFile , callback ) ;
10561095
@@ -1081,7 +1120,9 @@ describe('File Module', () => {
10811120 readAsArrayBuffer : vi . fn ( ) ,
10821121 } ;
10831122
1084- global . FileReader = vi . fn ( ( ) => mockReaderInstance ) ;
1123+ global . FileReader = vi . fn ( function ( ) {
1124+ return mockReaderInstance ;
1125+ } ) ;
10851126
10861127 expect ( ( ) => Load . file ( file , callback ) ) . not . toThrow ( ) ;
10871128 expect ( mockReaderInstance . readAsArrayBuffer ) . toHaveBeenCalledWith ( file ) ;
0 commit comments