|
|
@@ -23,7 +23,7 @@ |
|
|
|
import { basename } from 'path' |
|
|
|
import { expect } from '@jest/globals' |
|
|
|
import { Folder, Navigation, getNavigation } from '@nextcloud/files' |
|
|
|
import eventBus from '@nextcloud/event-bus' |
|
|
|
import eventBus, { emit } from '@nextcloud/event-bus' |
|
|
|
import * as initialState from '@nextcloud/initial-state' |
|
|
|
|
|
|
|
import { action } from '../actions/favoriteAction' |
|
|
@@ -63,9 +63,10 @@ describe('Favorites view definition', () => { |
|
|
|
const favoritesView = Navigation.views.find(view => view.id === 'favorites') |
|
|
|
const favoriteFoldersViews = Navigation.views.filter(view => view.parent === 'favorites') |
|
|
|
|
|
|
|
expect(eventBus.subscribe).toHaveBeenCalledTimes(2) |
|
|
|
expect(eventBus.subscribe).toHaveBeenCalledTimes(3) |
|
|
|
expect(eventBus.subscribe).toHaveBeenNthCalledWith(1, 'files:favorites:added', expect.anything()) |
|
|
|
expect(eventBus.subscribe).toHaveBeenNthCalledWith(2, 'files:favorites:removed', expect.anything()) |
|
|
|
expect(eventBus.subscribe).toHaveBeenNthCalledWith(3, 'files:node:renamed', expect.anything()) |
|
|
|
|
|
|
|
// one main view and no children |
|
|
|
expect(Navigation.views.length).toBe(1) |
|
|
@@ -196,4 +197,43 @@ describe('Dynamic update of favourite folders', () => { |
|
|
|
expect(favoritesView).toBeDefined() |
|
|
|
expect(favoriteFoldersViews.length).toBe(0) |
|
|
|
}) |
|
|
|
|
|
|
|
test('Renaming a favorite folder updates the navigation', async () => { |
|
|
|
jest.spyOn(eventBus, 'emit') |
|
|
|
jest.spyOn(initialState, 'loadState').mockReturnValue([]) |
|
|
|
jest.spyOn(favoritesService, 'getContents').mockReturnValue(Promise.resolve({ folder: {} as Folder, contents: [] })) |
|
|
|
|
|
|
|
registerFavoritesView() |
|
|
|
const favoritesView = Navigation.views.find(view => view.id === 'favorites') |
|
|
|
const favoriteFoldersViews = Navigation.views.filter(view => view.parent === 'favorites') |
|
|
|
|
|
|
|
// one main view and no children |
|
|
|
expect(Navigation.views.length).toBe(1) |
|
|
|
expect(favoritesView).toBeDefined() |
|
|
|
expect(favoriteFoldersViews.length).toBe(0) |
|
|
|
|
|
|
|
// expect(eventBus.emit).toHaveBeenCalledTimes(2) |
|
|
|
|
|
|
|
// Create new folder to favorite |
|
|
|
const folder = new Folder({ |
|
|
|
id: 1, |
|
|
|
source: 'http://localhost/remote.php/dav/files/admin/Foo/Bar', |
|
|
|
owner: 'admin', |
|
|
|
}) |
|
|
|
|
|
|
|
// Exec the action |
|
|
|
await action.exec(folder, favoritesView, '/') |
|
|
|
expect(eventBus.emit).toHaveBeenNthCalledWith(1, 'files:favorites:added', folder) |
|
|
|
|
|
|
|
// Create a folder with the same id but renamed |
|
|
|
const renamedFolder = new Folder({ |
|
|
|
id: 1, |
|
|
|
source: 'http://localhost/remote.php/dav/files/admin/Foo/Bar.renamed', |
|
|
|
owner: 'admin', |
|
|
|
}) |
|
|
|
|
|
|
|
// Exec the rename action |
|
|
|
emit('files:node:renamed', renamedFolder) |
|
|
|
expect(eventBus.emit).toHaveBeenNthCalledWith(2, 'files:node:renamed', renamedFolder) |
|
|
|
}) |
|
|
|
}) |