@@ -22,6 +22,8 @@ describe('Test getEntryAssetFolderPaths()', () => {
2222 /** @type {I18nConfig } */
2323 const i18nMultiFolder = { ...i18nBaseConfig , structure : 'multiple_folders' } ;
2424 /** @type {I18nConfig } */
25+ const i18nRootMultiFolder = { ...i18nBaseConfig , structure : 'multiple_folders_i18n_root' } ;
26+ /** @type {I18nConfig } */
2527 const i18nMultiFile = { ...i18nBaseConfig , structure : 'multiple_files' } ;
2628 /** @type {I18nConfig } */
2729 const i18nSingleFile = { ...i18nBaseConfig , structure : 'single_file' } ;
@@ -76,6 +78,38 @@ describe('Test getEntryAssetFolderPaths()', () => {
7678 } ) ;
7779 } ) ;
7880
81+ test ( 'simple path, multiple folders at root, entry relative' , ( ) => {
82+ /** @type {Collection } */
83+ const collection = {
84+ ...collectionBase ,
85+ _file : { ..._file , subPath : '{{slug}}' } ,
86+ _i18n : i18nRootMultiFolder ,
87+ _assetFolder : relativeAssetFolder ,
88+ } ;
89+
90+ expect ( getEntryAssetFolderPaths ( { collection, content : { } , currentSlug } ) ) . toEqual ( {
91+ internalBaseAssetFolder : 'src/content/blog' ,
92+ internalAssetFolder : 'src/content/blog/foo' ,
93+ publicAssetFolder : '../foo' ,
94+ } ) ;
95+ } ) ;
96+
97+ test ( 'nested path, multiple folders at root, entry relative' , ( ) => {
98+ /** @type {Collection } */
99+ const collection = {
100+ ...collectionBase ,
101+ _file : { ..._file , subPath : '{{slug}}/index' } ,
102+ _i18n : i18nRootMultiFolder ,
103+ _assetFolder : relativeAssetFolder ,
104+ } ;
105+
106+ expect ( getEntryAssetFolderPaths ( { collection, content : { } , currentSlug } ) ) . toEqual ( {
107+ internalBaseAssetFolder : 'src/content/blog' ,
108+ internalAssetFolder : 'src/content/blog/foo' ,
109+ publicAssetFolder : '../../foo' ,
110+ } ) ;
111+ } ) ;
112+
79113 test ( 'simple path, multiple files, entry relative' , ( ) => {
80114 /** @type {Collection } */
81115 const collection = {
@@ -172,6 +206,38 @@ describe('Test getEntryAssetFolderPaths()', () => {
172206 } ) ;
173207 } ) ;
174208
209+ test ( 'simple path, multiple folders at root, entry absolute' , ( ) => {
210+ /** @type {Collection } */
211+ const collection = {
212+ ...collectionBase ,
213+ _file : { ..._file , subPath : '{{slug}}' } ,
214+ _i18n : i18nRootMultiFolder ,
215+ _assetFolder : absoluteAssetFolder ,
216+ } ;
217+
218+ expect ( getEntryAssetFolderPaths ( { collection, content : { } , currentSlug } ) ) . toEqual ( {
219+ internalBaseAssetFolder : 'static/uploads/blog' ,
220+ internalAssetFolder : 'static/uploads/blog' ,
221+ publicAssetFolder : '/uploads/blog' ,
222+ } ) ;
223+ } ) ;
224+
225+ test ( 'nested path, multiple folders at root, entry absolute' , ( ) => {
226+ /** @type {Collection } */
227+ const collection = {
228+ ...collectionBase ,
229+ _file : { ..._file , subPath : '{{slug}}/index' } ,
230+ _i18n : i18nRootMultiFolder ,
231+ _assetFolder : absoluteAssetFolder ,
232+ } ;
233+
234+ expect ( getEntryAssetFolderPaths ( { collection, content : { } , currentSlug } ) ) . toEqual ( {
235+ internalBaseAssetFolder : 'static/uploads/blog' ,
236+ internalAssetFolder : 'static/uploads/blog' ,
237+ publicAssetFolder : '/uploads/blog' ,
238+ } ) ;
239+ } ) ;
240+
175241 test ( 'simple path, multiple files, entry absolute' , ( ) => {
176242 /** @type {Collection } */
177243 const collection = {
0 commit comments