77import type { Folder as CFolder , Navigation } from '@nextcloud/files'
88
99import * as filesUtils from '@nextcloud/files'
10+ import * as filesDavUtils from '@nextcloud/files/dav'
1011import { CancelablePromise } from 'cancelable-promise'
1112import { basename } from 'path'
1213import { beforeEach , describe , expect , test , vi } from 'vitest'
@@ -43,7 +44,7 @@ describe('Favorites view definition', () => {
4344
4445 test ( 'Default empty favorite view' , async ( ) => {
4546 vi . spyOn ( eventBus , 'subscribe' )
46- vi . spyOn ( filesUtils , 'getFavoriteNodes' ) . mockReturnValue ( CancelablePromise . resolve ( [ ] ) )
47+ vi . spyOn ( filesDavUtils , 'getFavoriteNodes' ) . mockReturnValue ( CancelablePromise . resolve ( [ ] ) )
4748 vi . spyOn ( favoritesService , 'getContents' ) . mockReturnValue ( CancelablePromise . resolve ( { folder : { } as CFolder , contents : [ ] } ) )
4849
4950 await registerFavoritesView ( )
@@ -89,26 +90,35 @@ describe('Favorites view definition', () => {
8990 source : 'http://nextcloud.local/remote.php/dav/files/admin/foo/bar' ,
9091 owner : 'admin' ,
9192 } ) ,
93+ new Folder ( {
94+ id : 4 ,
95+ root : '/files/admin' ,
96+ source : 'http://nextcloud.local/remote.php/dav/files/admin/foo/bar/yabadaba' ,
97+ owner : 'admin' ,
98+ } ) ,
9299 ]
93- vi . spyOn ( filesUtils , 'getFavoriteNodes' ) . mockReturnValue ( CancelablePromise . resolve ( favoriteFolders ) )
100+ vi . spyOn ( filesDavUtils , 'getFavoriteNodes' ) . mockReturnValue ( CancelablePromise . resolve ( favoriteFolders ) )
94101 vi . spyOn ( favoritesService , 'getContents' ) . mockReturnValue ( CancelablePromise . resolve ( { folder : { } as CFolder , contents : [ ] } ) )
95102
96103 await registerFavoritesView ( )
97104 const favoritesView = Navigation . views . find ( view => view . id === 'favorites' )
98105 const favoriteFoldersViews = Navigation . views . filter ( view => view . parent === 'favorites' )
99106
100107 // one main view and 3 children
101- expect ( Navigation . views . length ) . toBe ( 4 )
108+ expect ( Navigation . views . length ) . toBe ( 5 )
102109 expect ( favoritesView ) . toBeDefined ( )
103- expect ( favoriteFoldersViews . length ) . toBe ( 3 )
110+ expect ( favoriteFoldersViews . length ) . toBe ( 4 )
111+
112+ // Sorted by basename: bar, bar, foo
113+ const expectedOrder = [ 2 , 0 , 1 , 3 ]
104114
105115 favoriteFolders . forEach ( ( folder , index ) => {
106116 const favoriteView = favoriteFoldersViews [ index ]
107117 expect ( favoriteView ) . toBeDefined ( )
108118 expect ( favoriteView ?. id ) . toBeDefined ( )
109119 expect ( favoriteView ?. name ) . toBe ( basename ( folder . path ) )
110120 expect ( favoriteView ?. icon ) . toMatch ( / < s v g .+ < \/ s v g > / )
111- expect ( favoriteView ?. order ) . toBe ( index )
121+ expect ( favoriteView ?. order ) . toBe ( expectedOrder [ index ] )
112122 expect ( favoriteView ?. params ) . toStrictEqual ( {
113123 dir : folder . path ,
114124 fileid : String ( folder . fileid ) ,
@@ -132,7 +142,7 @@ describe('Dynamic update of favorite folders', () => {
132142
133143 test ( 'Add a favorite folder creates a new entry in the navigation' , async ( ) => {
134144 vi . spyOn ( eventBus , 'emit' )
135- vi . spyOn ( filesUtils , 'getFavoriteNodes' ) . mockReturnValue ( CancelablePromise . resolve ( [ ] ) )
145+ vi . spyOn ( filesDavUtils , 'getFavoriteNodes' ) . mockReturnValue ( CancelablePromise . resolve ( [ ] ) )
136146 vi . spyOn ( favoritesService , 'getContents' ) . mockReturnValue ( CancelablePromise . resolve ( { folder : { } as CFolder , contents : [ ] } ) )
137147
138148 await registerFavoritesView ( )
@@ -160,7 +170,7 @@ describe('Dynamic update of favorite folders', () => {
160170
161171 test ( 'Remove a favorite folder remove the entry from the navigation column' , async ( ) => {
162172 vi . spyOn ( eventBus , 'emit' )
163- vi . spyOn ( filesUtils , 'getFavoriteNodes' ) . mockReturnValue ( CancelablePromise . resolve ( [
173+ vi . spyOn ( filesDavUtils , 'getFavoriteNodes' ) . mockReturnValue ( CancelablePromise . resolve ( [
164174 new Folder ( {
165175 id : 42 ,
166176 root : '/files/admin' ,
@@ -211,7 +221,7 @@ describe('Dynamic update of favorite folders', () => {
211221
212222 test ( 'Renaming a favorite folder updates the navigation' , async ( ) => {
213223 vi . spyOn ( eventBus , 'emit' )
214- vi . spyOn ( filesUtils , 'getFavoriteNodes' ) . mockReturnValue ( CancelablePromise . resolve ( [ ] ) )
224+ vi . spyOn ( filesDavUtils , 'getFavoriteNodes' ) . mockReturnValue ( CancelablePromise . resolve ( [ ] ) )
215225 vi . spyOn ( favoritesService , 'getContents' ) . mockReturnValue ( CancelablePromise . resolve ( { folder : { } as CFolder , contents : [ ] } ) )
216226
217227 await registerFavoritesView ( )
0 commit comments