@@ -555,6 +555,56 @@ describe("InstallAction", () => {
555
555
}
556
556
} ) ;
557
557
558
+ it ( 'convert downloaded file from xls to csv and record in dim.json and dim-lock.json when specify "xlsx-to-csv" as postProcesses' , async ( ) => {
559
+ createEmptyDimJson ( ) ;
560
+ const testXlsx = Deno . readFileSync ( "../test_data/test.xls" ) ;
561
+ const kyGetStub = createKyGetStub ( testXlsx ) ;
562
+ try {
563
+ await new InstallAction ( ) . execute (
564
+ { name : "xlsx-to-csv" , postProcesses : [ "xlsx-to-csv" ] } ,
565
+ "https://example.com/dummy.xls" ,
566
+ ) ;
567
+ assert ( fileExists ( "data_files/xlsx-to-csv/dummy.xls" ) ) ;
568
+ const testData = Deno . readTextFileSync (
569
+ "data_files/xlsx-to-csv/dummy.csv" ,
570
+ ) ;
571
+ assertEquals ( testData , "a,b\nc,d\ne,f\n" ) ;
572
+ assertSpyCall ( consoleLogStub , 0 , { args : [ "Convert xlsx to csv." ] } ) ;
573
+ const dimJson = JSON . parse ( Deno . readTextFileSync ( "dim.json" ) ) ;
574
+ assertEquals ( dimJson , {
575
+ fileVersion : "1.1" ,
576
+ contents : [ {
577
+ catalogResourceId : null ,
578
+ catalogUrl : null ,
579
+ headers : { } ,
580
+ name : "xlsx-to-csv" ,
581
+ postProcesses : [ "xlsx-to-csv" ] ,
582
+ url : "https://example.com/dummy.xls" ,
583
+ } ] ,
584
+ } ) ;
585
+
586
+ const dimLockJson = JSON . parse ( Deno . readTextFileSync ( "dim-lock.json" ) ) ;
587
+ assertEquals ( dimLockJson , {
588
+ lockFileVersion : "1.1" ,
589
+ contents : [ {
590
+ catalogResourceId : null ,
591
+ catalogUrl : null ,
592
+ eTag : null ,
593
+ headers : { } ,
594
+ integrity : "" ,
595
+ lastDownloaded : "2022-01-02T03:04:05.678Z" ,
596
+ lastModified : null ,
597
+ name : "xlsx-to-csv" ,
598
+ path : "./data_files/xlsx-to-csv/dummy.xls" ,
599
+ postProcesses : [ "xlsx-to-csv" ] ,
600
+ url : "https://example.com/dummy.xls" ,
601
+ } ] ,
602
+ } ) ;
603
+ } finally {
604
+ kyGetStub . restore ( ) ;
605
+ }
606
+ } ) ;
607
+
558
608
it ( 'exit with error when specify "xlsx-to-csv a" as postProcesses and download' , async ( ) => {
559
609
createEmptyDimJson ( ) ;
560
610
const kyGetStub = createKyGetStub ( "dummy" ) ;
0 commit comments