@@ -26,6 +26,50 @@ describe('media.util', () => {
26
26
} ,
27
27
} ) ;
28
28
29
+ it ( 'does not transform path if it does not start with media_folder' , ( ) => {
30
+ const mockConfig = createMockConfig ( {
31
+ collections : [
32
+ createMockCollection < UnknownField > ( {
33
+ folder : 'base/folder' ,
34
+ slug : '{{fields.title}}-{{fields.name}}' ,
35
+ fields : [
36
+ {
37
+ name : 'title' ,
38
+ widget : 'string' ,
39
+ } ,
40
+ {
41
+ name : 'name' ,
42
+ widget : 'string' ,
43
+ } ,
44
+ mockBaseImageField ,
45
+ ] ,
46
+ } ) ,
47
+ ] ,
48
+ media_folder : '/path/to/media/folder/{{slug}}' ,
49
+ public_folder : '/path/to/public/folder/{{slug}}' ,
50
+ } ) ;
51
+
52
+ const mockCollection = mockConfig . collections [ 0 ] ;
53
+ const mockImageField = ( mockConfig . collections [ 0 ] as FolderCollection )
54
+ . fields [ 3 ] as FileOrImageField ;
55
+
56
+ const mockEntry = createMockEntry ( {
57
+ path : 'path/to/entry/index.md' ,
58
+ slug : 'i-am-a-title-fish' ,
59
+ data : { title : 'i am a title' , name : 'fish' } ,
60
+ } ) ;
61
+
62
+ expect (
63
+ selectMediaFilePublicPath (
64
+ mockConfig ,
65
+ mockCollection ,
66
+ '/some/other/path/image.png' ,
67
+ mockEntry ,
68
+ mockImageField ,
69
+ ) ,
70
+ ) . toBe ( '/some/other/path/image.png' ) ;
71
+ } ) ;
72
+
29
73
describe ( 'top level' , ( ) => {
30
74
it ( 'should default to top level config media_folder' , ( ) => {
31
75
const mockConfig = createMockConfig ( {
@@ -138,6 +182,7 @@ describe('media.util', () => {
138
182
139
183
const mockEntry = createMockEntry ( {
140
184
path : 'path/to/entry/index.md' ,
185
+ slug : 'i-am-a-title-fish' ,
141
186
data : { title : 'i am a title' , name : 'fish' } ,
142
187
} ) ;
143
188
@@ -174,6 +219,7 @@ describe('media.util', () => {
174
219
175
220
const mockEntry = createMockEntry ( {
176
221
path : 'path/to/entry/index.md' ,
222
+ slug : 'i-am-a-title-fish' ,
177
223
data : { title : 'i am a title' , name : 'fish' } ,
178
224
} ) ;
179
225
@@ -211,6 +257,7 @@ describe('media.util', () => {
211
257
212
258
const mockEntry = createMockEntry ( {
213
259
path : 'path/to/entry/index.md' ,
260
+ slug : '' ,
214
261
data : { } ,
215
262
newRecord : true ,
216
263
} ) ;
@@ -305,6 +352,7 @@ describe('media.util', () => {
305
352
306
353
const mockEntry = createMockEntry ( {
307
354
path : 'path/to/entry/index.md' ,
355
+ slug : 'i-am-a-title-fish' ,
308
356
data : { title : 'i am a title' , name : 'fish' } ,
309
357
} ) ;
310
358
@@ -341,6 +389,7 @@ describe('media.util', () => {
341
389
342
390
const mockEntry = createMockEntry ( {
343
391
path : 'path/to/entry/index.md' ,
392
+ slug : 'i-am-a-title-fish' ,
344
393
data : { title : 'i am a title' , name : 'fish' } ,
345
394
} ) ;
346
395
@@ -378,6 +427,7 @@ describe('media.util', () => {
378
427
379
428
const mockEntry = createMockEntry ( {
380
429
path : 'path/to/entry/index.md' ,
430
+ slug : '' ,
381
431
data : { } ,
382
432
newRecord : true ,
383
433
} ) ;
@@ -420,7 +470,7 @@ describe('media.util', () => {
420
470
selectMediaFilePublicPath (
421
471
mockConfig ,
422
472
undefined ,
423
- 'image.png' ,
473
+ 'path/to/media/folder/ image.png' ,
424
474
undefined ,
425
475
undefined ,
426
476
undefined ,
@@ -438,7 +488,7 @@ describe('media.util', () => {
438
488
selectMediaFilePublicPath (
439
489
mockConfig ,
440
490
undefined ,
441
- 'image.png' ,
491
+ 'path/to/media/folder/ image.png' ,
442
492
undefined ,
443
493
undefined ,
444
494
undefined ,
@@ -463,7 +513,7 @@ describe('media.util', () => {
463
513
selectMediaFilePublicPath (
464
514
mockConfig ,
465
515
mockCollection ,
466
- 'image.png' ,
516
+ 'path/to/media/folder/ image.png' ,
467
517
mockBaseEntry ,
468
518
mockImageField ,
469
519
) ,
@@ -484,7 +534,7 @@ describe('media.util', () => {
484
534
selectMediaFilePublicPath (
485
535
mockConfig ,
486
536
mockCollection ,
487
- 'image.png' ,
537
+ 'path/to/media/folder/ image.png' ,
488
538
mockBaseEntry ,
489
539
mockImageField ,
490
540
) ,
@@ -518,7 +568,7 @@ describe('media.util', () => {
518
568
selectMediaFilePublicPath (
519
569
mockConfig ,
520
570
mockCollection ,
521
- 'image.png' ,
571
+ 'path/to/collection/media/folder/ image.png' ,
522
572
mockBaseEntry ,
523
573
mockImageField ,
524
574
) ,
@@ -550,7 +600,7 @@ describe('media.util', () => {
550
600
selectMediaFilePublicPath (
551
601
mockConfig ,
552
602
mockCollection ,
553
- 'image.png' ,
603
+ 'path/to/collection/media/folder/ image.png' ,
554
604
mockBaseEntry ,
555
605
mockImageField ,
556
606
) ,
@@ -583,7 +633,7 @@ describe('media.util', () => {
583
633
selectMediaFilePublicPath (
584
634
mockConfig ,
585
635
mockCollection ,
586
- 'image.png' ,
636
+ 'path/to/some/other/media/i-am-a-title/ image.png' ,
587
637
mockBaseEntry ,
588
638
mockImageField ,
589
639
) ,
@@ -619,14 +669,15 @@ describe('media.util', () => {
619
669
620
670
const mockEntry = createMockEntry ( {
621
671
path : 'path/to/entry/index.md' ,
672
+ slug : 'i-am-a-title-fish' ,
622
673
data : { title : 'i am a title' , name : 'fish' } ,
623
674
} ) ;
624
675
625
676
expect (
626
677
selectMediaFilePublicPath (
627
678
mockConfig ,
628
679
mockCollection ,
629
- 'image.png' ,
680
+ 'path/to/some/other/media/i-am-a-title-fish/ image.png' ,
630
681
mockEntry ,
631
682
mockImageField ,
632
683
) ,
@@ -661,14 +712,15 @@ describe('media.util', () => {
661
712
662
713
const mockEntry = createMockEntry ( {
663
714
path : 'path/to/entry/index.md' ,
715
+ slug : 'i-am-a-title-fish' ,
664
716
data : { title : 'i am a title' , name : 'fish' } ,
665
717
} ) ;
666
718
667
719
expect (
668
720
selectMediaFilePublicPath (
669
721
mockConfig ,
670
722
mockCollection ,
671
- 'image.png' ,
723
+ '/path/to/media/folder/i-am-a-title-fish/ image.png' ,
672
724
mockEntry ,
673
725
mockImageField ,
674
726
) ,
@@ -704,14 +756,15 @@ describe('media.util', () => {
704
756
705
757
const mockEntry = createMockEntry ( {
706
758
path : 'path/to/entry/index.md' ,
759
+ slug : 'i-am-a-title-fish' ,
707
760
data : { title : 'i am a title' , name : 'fish' } ,
708
761
} ) ;
709
762
710
763
expect (
711
764
selectMediaFilePublicPath (
712
765
mockConfig ,
713
766
mockCollection ,
714
- 'image.png' ,
767
+ 'path/to/media/folder/i-am-a-title-fish/ image.png' ,
715
768
mockEntry ,
716
769
mockImageField ,
717
770
) ,
@@ -748,6 +801,7 @@ describe('media.util', () => {
748
801
749
802
const mockEntry = createMockEntry ( {
750
803
path : 'path/to/entry/index.md' ,
804
+ slug : '' ,
751
805
data : { } ,
752
806
newRecord : true ,
753
807
} ) ;
@@ -756,7 +810,7 @@ describe('media.util', () => {
756
810
selectMediaFilePublicPath (
757
811
mockConfig ,
758
812
mockCollection ,
759
- 'image.png' ,
813
+ 'path/to/collection/media/folder/ image.png' ,
760
814
mockEntry ,
761
815
mockImageField ,
762
816
) ,
@@ -792,7 +846,7 @@ describe('media.util', () => {
792
846
selectMediaFilePublicPath (
793
847
mockConfig ,
794
848
mockCollection ,
795
- 'image.png' ,
849
+ 'path/to/collection/media/folder/ image.png' ,
796
850
mockBaseEntry ,
797
851
mockImageField ,
798
852
) ,
@@ -824,7 +878,7 @@ describe('media.util', () => {
824
878
selectMediaFilePublicPath (
825
879
mockConfig ,
826
880
mockCollection ,
827
- 'image.png' ,
881
+ '/path/to/collection/media/folder/ image.png' ,
828
882
mockBaseEntry ,
829
883
mockImageField ,
830
884
) ,
@@ -857,7 +911,7 @@ describe('media.util', () => {
857
911
selectMediaFilePublicPath (
858
912
mockConfig ,
859
913
mockCollection ,
860
- 'image.png' ,
914
+ '/path/to/some/other/media/i-am-a-title/ image.png' ,
861
915
mockBaseEntry ,
862
916
mockImageField ,
863
917
) ,
@@ -893,14 +947,15 @@ describe('media.util', () => {
893
947
894
948
const mockEntry = createMockEntry ( {
895
949
path : 'path/to/entry/index.md' ,
950
+ slug : 'i-am-a-title-fish' ,
896
951
data : { title : 'i am a title' , name : 'fish' } ,
897
952
} ) ;
898
953
899
954
expect (
900
955
selectMediaFilePublicPath (
901
956
mockConfig ,
902
957
mockCollection ,
903
- 'image.png' ,
958
+ '/path/to/some/other/media/i-am-a-title-fish/ image.png' ,
904
959
mockEntry ,
905
960
mockImageField ,
906
961
) ,
@@ -935,14 +990,15 @@ describe('media.util', () => {
935
990
936
991
const mockEntry = createMockEntry ( {
937
992
path : 'path/to/entry/index.md' ,
993
+ slug : 'i-am-a-title-fish' ,
938
994
data : { title : 'i am a title' , name : 'fish' } ,
939
995
} ) ;
940
996
941
997
expect (
942
998
selectMediaFilePublicPath (
943
999
mockConfig ,
944
1000
mockCollection ,
945
- 'image.png' ,
1001
+ '/path/to/media/folder/i-am-a-title-fish/ image.png' ,
946
1002
mockEntry ,
947
1003
mockImageField ,
948
1004
) ,
@@ -978,14 +1034,15 @@ describe('media.util', () => {
978
1034
979
1035
const mockEntry = createMockEntry ( {
980
1036
path : 'path/to/entry/index.md' ,
1037
+ slug : 'i-am-a-title-fish' ,
981
1038
data : { title : 'i am a title' , name : 'fish' } ,
982
1039
} ) ;
983
1040
984
1041
expect (
985
1042
selectMediaFilePublicPath (
986
1043
mockConfig ,
987
1044
mockCollection ,
988
- 'image.png' ,
1045
+ '/path/to/media/folder/i-am-a-title-fish/ image.png' ,
989
1046
mockEntry ,
990
1047
mockImageField ,
991
1048
) ,
@@ -1021,7 +1078,8 @@ describe('media.util', () => {
1021
1078
. fields [ 3 ] as FileOrImageField ;
1022
1079
1023
1080
const mockEntry = createMockEntry ( {
1024
- path : 'path/to/entry/index.md' ,
1081
+ path : 'path/to/entry/DRAFT_MEDIA_FILES/index.md' ,
1082
+ slug : '' ,
1025
1083
data : { } ,
1026
1084
newRecord : true ,
1027
1085
} ) ;
@@ -1030,11 +1088,11 @@ describe('media.util', () => {
1030
1088
selectMediaFilePublicPath (
1031
1089
mockConfig ,
1032
1090
mockCollection ,
1033
- 'image.png' ,
1091
+ '/path/to/collection/media/folder/DRAFT_MEDIA_FILES/ image.png' ,
1034
1092
mockEntry ,
1035
1093
mockImageField ,
1036
1094
) ,
1037
- ) . toBe ( '/path/to/collection/public/folder/image.png' ) ;
1095
+ ) . toBe ( '/path/to/collection/public/folder/DRAFT_MEDIA_FILES/ image.png' ) ;
1038
1096
} ) ;
1039
1097
} ) ;
1040
1098
} ) ;
0 commit comments