@@ -524,7 +524,52 @@ func TestCopyAndUpdateCardFiles(t *testing.T) {
524
524
Schema : 1 ,
525
525
Type : "image" ,
526
526
Title : "" ,
527
- Fields : map [string ]interface {}{"fileId" : "7fileName.jpg" },
527
+ Fields : map [string ]interface {}{"fileId" : "7fileName1234567890987654321.jpg" },
528
+ CreateAt : 1680725585250 ,
529
+ UpdateAt : 1680725585250 ,
530
+ DeleteAt : 0 ,
531
+ BoardID : "boardID" ,
532
+ }
533
+
534
+ validImageBlock := & model.Block {
535
+ ID : "validImageBlock" ,
536
+ ParentID : "c3zqnh6fsu3f4mr6hzq9hizwske" ,
537
+ CreatedBy : "6k6ynxdp47dujjhhojw9nqhmyh" ,
538
+ ModifiedBy : "6k6ynxdp47dujjhhojw9nqhmyh" ,
539
+ Schema : 1 ,
540
+ Type : "image" ,
541
+ Title : "" ,
542
+ Fields : map [string ]interface {}{"fileId" : "7xhwgf5r15fr3dryfozf1dmy41r9.png" },
543
+ CreateAt : 1680725585250 ,
544
+ UpdateAt : 1680725585250 ,
545
+ DeleteAt : 0 ,
546
+ BoardID : "boardID" ,
547
+ }
548
+
549
+ invalidShortFileIDBlock := & model.Block {
550
+ ID : "invalidShortFileIDBlock" ,
551
+ ParentID : "c3zqnh6fsu3f4mr6hzq9hizwske" ,
552
+ CreatedBy : "6k6ynxdp47dujjhhojw9nqhmyh" ,
553
+ ModifiedBy : "6k6ynxdp47dujjhhojw9nqhmyh" ,
554
+ Schema : 1 ,
555
+ Type : "image" ,
556
+ Title : "" ,
557
+ Fields : map [string ]interface {}{"fileId" : "7short.png" },
558
+ CreateAt : 1680725585250 ,
559
+ UpdateAt : 1680725585250 ,
560
+ DeleteAt : 0 ,
561
+ BoardID : "boardID" ,
562
+ }
563
+
564
+ emptyFileBlock := & model.Block {
565
+ ID : "emptyFileBlock" ,
566
+ ParentID : "c3zqnh6fsu3f4mr6hzq9hizwske" ,
567
+ CreatedBy : "6k6ynxdp47dujjhhojw9nqhmyh" ,
568
+ ModifiedBy : "6k6ynxdp47dujjhhojw9nqhmyh" ,
569
+ Schema : 1 ,
570
+ Type : "image" ,
571
+ Title : "" ,
572
+ Fields : map [string ]interface {}{"fileId" : "" },
528
573
CreateAt : 1680725585250 ,
529
574
UpdateAt : 1680725585250 ,
530
575
DeleteAt : 0 ,
@@ -553,4 +598,70 @@ func TestCopyAndUpdateCardFiles(t *testing.T) {
553
598
554
599
assert .NotEqual (t , testPath , imageBlock .Fields ["fileId" ])
555
600
})
601
+
602
+ t .Run ("Valid file ID" , func (t * testing.T ) {
603
+ fileInfo := & mm_model.FileInfo {
604
+ Id : "validImageBlock" ,
605
+ Path : testPath ,
606
+ }
607
+ th .Store .EXPECT ().GetBoard ("boardID" ).Return (& model.Board {ID : "boardID" , IsTemplate : false }, nil )
608
+ th .Store .EXPECT ().GetFileInfo ("xhwgf5r15fr3dryfozf1dmy41r9" ).Return (fileInfo , nil )
609
+ th .Store .EXPECT ().SaveFileInfo (fileInfo ).Return (nil )
610
+ th .Store .EXPECT ().PatchBlocks (gomock .Any (), "userID" ).Return (nil )
611
+
612
+ mockedFileBackend := & mocks.FileBackend {}
613
+ th .App .filesBackend = mockedFileBackend
614
+ mockedFileBackend .On ("CopyFile" , mock .Anything , mock .Anything ).Return (nil )
615
+
616
+ err := th .App .CopyAndUpdateCardFiles ("boardID" , "userID" , []* model.Block {validImageBlock }, false )
617
+ assert .NoError (t , err )
618
+ })
619
+
620
+ t .Run ("Invalid file ID length" , func (t * testing.T ) {
621
+ th .Store .EXPECT ().GetBoard ("boardID" ).Return (& model.Board {ID : "boardID" , IsTemplate : false }, nil )
622
+ err := th .App .CopyAndUpdateCardFiles ("boardID" , "userID" , []* model.Block {invalidShortFileIDBlock }, false )
623
+ assert .ErrorIs (t , err , model .NewErrBadRequest ("Invalid Block ID" ))
624
+ })
625
+
626
+ t .Run ("Empty file ID" , func (t * testing.T ) {
627
+ th .Store .EXPECT ().GetBoard ("boardID" ).Return (& model.Board {ID : "boardID" , IsTemplate : false }, nil )
628
+ err := th .App .CopyAndUpdateCardFiles ("boardID" , "userID" , []* model.Block {emptyFileBlock }, false )
629
+ assert .ErrorIs (t , err , model .NewErrBadRequest ("Block ID cannot be empty" ))
630
+ })
631
+ }
632
+
633
+ func TestCopyCardFiles (t * testing.T ) {
634
+ app := & App {}
635
+
636
+ t .Run ("ValidFileID" , func (t * testing.T ) {
637
+ sourceBoardID := "sourceBoardID"
638
+ copiedBlocks := []* model.Block {
639
+ {
640
+ Type : model .TypeImage ,
641
+ Fields : map [string ]interface {}{"fileId" : "validFileID" },
642
+ BoardID : "destinationBoardID" ,
643
+ },
644
+ }
645
+
646
+ newFileNames , err := app .CopyCardFiles (sourceBoardID , copiedBlocks , false )
647
+
648
+ assert .NoError (t , err )
649
+ assert .NotNil (t , newFileNames )
650
+ })
651
+
652
+ t .Run ("InvalidFileID" , func (t * testing.T ) {
653
+ sourceBoardID := "sourceBoardID"
654
+ copiedBlocks := []* model.Block {
655
+ {
656
+ Type : model .TypeImage ,
657
+ Fields : map [string ]interface {}{"fileId" : "../../../../../filePath" },
658
+ BoardID : "destinationBoardID" ,
659
+ },
660
+ }
661
+
662
+ newFileNames , err := app .CopyCardFiles (sourceBoardID , copiedBlocks , false )
663
+
664
+ assert .Error (t , err )
665
+ assert .Nil (t , newFileNames )
666
+ })
556
667
}
0 commit comments