|
|
|
@ -2,6 +2,8 @@ |
|
|
|
|
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors |
|
|
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later |
|
|
|
|
*/ |
|
|
|
|
import type { Navigation, View } from '@nextcloud/files' |
|
|
|
|
|
|
|
|
|
import { beforeEach, describe, expect, it, vi } from 'vitest' |
|
|
|
|
import { mount } from '@vue/test-utils' |
|
|
|
|
import { defineComponent } from 'vue' |
|
|
|
@ -9,8 +11,6 @@ import { defineComponent } from 'vue' |
|
|
|
|
import { useNavigation } from './useNavigation' |
|
|
|
|
import * as nextcloudFiles from '@nextcloud/files' |
|
|
|
|
|
|
|
|
|
const { Navigation, View } = nextcloudFiles |
|
|
|
|
|
|
|
|
|
// Just a wrapper so we can test the composable
|
|
|
|
|
const TestComponent = defineComponent({ |
|
|
|
|
template: '<div></div>', |
|
|
|
@ -29,7 +29,7 @@ describe('Composables: useNavigation', () => { |
|
|
|
|
|
|
|
|
|
describe('currentView', () => { |
|
|
|
|
beforeEach(() => { |
|
|
|
|
navigation = new Navigation() |
|
|
|
|
navigation = new nextcloudFiles.Navigation() |
|
|
|
|
spy.mockImplementation(() => navigation) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
@ -39,7 +39,7 @@ describe('Composables: useNavigation', () => { |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
it('should return already active navigation', async () => { |
|
|
|
|
const view = new View({ getContents: () => Promise.reject(new Error()), icon: '<svg></svg>', id: 'view-1', name: 'My View 1', order: 0 }) |
|
|
|
|
const view = new nextcloudFiles.View({ getContents: () => Promise.reject(new Error()), icon: '<svg></svg>', id: 'view-1', name: 'My View 1', order: 0 }) |
|
|
|
|
navigation.register(view) |
|
|
|
|
navigation.setActive(view) |
|
|
|
|
// Now the navigation is already set it should take the active navigation
|
|
|
|
@ -48,7 +48,7 @@ describe('Composables: useNavigation', () => { |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
it('should be reactive on updating active navigation', async () => { |
|
|
|
|
const view = new View({ getContents: () => Promise.reject(new Error()), icon: '<svg></svg>', id: 'view-1', name: 'My View 1', order: 0 }) |
|
|
|
|
const view = new nextcloudFiles.View({ getContents: () => Promise.reject(new Error()), icon: '<svg></svg>', id: 'view-1', name: 'My View 1', order: 0 }) |
|
|
|
|
navigation.register(view) |
|
|
|
|
const wrapper = mount(TestComponent) |
|
|
|
|
|
|
|
|
@ -63,7 +63,7 @@ describe('Composables: useNavigation', () => { |
|
|
|
|
|
|
|
|
|
describe('views', () => { |
|
|
|
|
beforeEach(() => { |
|
|
|
|
navigation = new Navigation() |
|
|
|
|
navigation = new nextcloudFiles.Navigation() |
|
|
|
|
spy.mockImplementation(() => navigation) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
@ -73,7 +73,7 @@ describe('Composables: useNavigation', () => { |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
it('should return already registered views', () => { |
|
|
|
|
const view = new View({ getContents: () => Promise.reject(new Error()), icon: '<svg></svg>', id: 'view-1', name: 'My View 1', order: 0 }) |
|
|
|
|
const view = new nextcloudFiles.View({ getContents: () => Promise.reject(new Error()), icon: '<svg></svg>', id: 'view-1', name: 'My View 1', order: 0 }) |
|
|
|
|
// register before mount
|
|
|
|
|
navigation.register(view) |
|
|
|
|
// now mount and check that the view is listed
|
|
|
|
@ -82,8 +82,8 @@ describe('Composables: useNavigation', () => { |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
it('should be reactive on registering new views', () => { |
|
|
|
|
const view = new View({ getContents: () => Promise.reject(new Error()), icon: '<svg></svg>', id: 'view-1', name: 'My View 1', order: 0 }) |
|
|
|
|
const view2 = new View({ getContents: () => Promise.reject(new Error()), icon: '<svg></svg>', id: 'view-2', name: 'My View 2', order: 1 }) |
|
|
|
|
const view = new nextcloudFiles.View({ getContents: () => Promise.reject(new Error()), icon: '<svg></svg>', id: 'view-1', name: 'My View 1', order: 0 }) |
|
|
|
|
const view2 = new nextcloudFiles.View({ getContents: () => Promise.reject(new Error()), icon: '<svg></svg>', id: 'view-2', name: 'My View 2', order: 1 }) |
|
|
|
|
|
|
|
|
|
// register before mount
|
|
|
|
|
navigation.register(view) |
|
|
|
|