Skip to content

Commit 091bfd1

Browse files
committed
test: update unit tests after sidebar store refactor
1 parent 99b5a5f commit 091bfd1

17 files changed

Lines changed: 237 additions & 238 deletions

File tree

packages/web-app-admin-settings/tests/unit/components/AppTemplate.spec.ts

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,25 @@ import {
66
RouteLocation,
77
shallowMount
88
} from '@opencloud-eu/web-test-helpers'
9-
import { eventBus, SideBar, useIsTopBarSticky } from '@opencloud-eu/web-pkg'
10-
import { SideBarEventTopics } from '@opencloud-eu/web-pkg'
9+
import { SideBar, useIsTopBarSticky, useSideBar } from '@opencloud-eu/web-pkg'
1110
import { mock } from 'vitest-mock-extended'
1211
import { OcBreadcrumb } from '@opencloud-eu/design-system/components'
1312

1413
const stubSelectors = {
1514
ocBreadcrumb: 'oc-breadcrumb-stub',
1615
appLoadingSpinner: 'app-loading-spinner-stub',
17-
sideBar: 'side-bar-stub',
18-
sideBarToggleButton: '#files-toggle-sidebar'
16+
sideBar: 'side-bar-stub'
1917
}
2018

2119
const elSelectors = {
2220
adminSettingsWrapper: '#admin-settings-view-wrapper'
2321
}
2422

25-
vi.mock('@opencloud-eu/web-pkg')
23+
vi.mock('@opencloud-eu/web-pkg', async (importOriginal) => ({
24+
...(await importOriginal<any>()),
25+
useIsTopBarSticky: vi.fn(),
26+
useAppDefaults: vi.fn(() => ({}))
27+
}))
2628

2729
describe('AppTemplate', () => {
2830
describe('loading is true', () => {
@@ -55,28 +57,13 @@ describe('AppTemplate', () => {
5557
})
5658
describe('sideBar', () => {
5759
it('should show when opened', () => {
58-
const { wrapper } = getWrapper({ props: { isSideBarOpen: true } })
60+
const { wrapper } = getWrapper({ isSideBarOpen: true })
5961
expect(wrapper.find(stubSelectors.sideBar).exists()).toBeTruthy()
6062
})
6163
it('should not show when closed', () => {
62-
const { wrapper } = getWrapper({ props: { isSideBarOpen: false } })
64+
const { wrapper } = getWrapper({ isSideBarOpen: false })
6365
expect(wrapper.find(stubSelectors.sideBar).exists()).toBeFalsy()
6466
})
65-
it('can be closed', () => {
66-
const eventSpy = vi.spyOn(eventBus, 'publish')
67-
const { wrapper } = getWrapper()
68-
wrapper.findComponent<typeof SideBar>(stubSelectors.sideBar).vm.$emit('close')
69-
expect(eventSpy).toHaveBeenCalledWith(SideBarEventTopics.close)
70-
})
71-
it('panel can be selected', () => {
72-
const eventSpy = vi.spyOn(eventBus, 'publish')
73-
const panelName = 'SomePanel'
74-
const { wrapper } = getWrapper()
75-
wrapper
76-
.findComponent<typeof SideBar>(stubSelectors.sideBar)
77-
.vm.$emit('selectPanel', panelName)
78-
expect(eventSpy).toHaveBeenCalledWith(SideBarEventTopics.setActivePanel, panelName)
79-
})
8067
})
8168
describe('property propagation', () => {
8269
describe('oc breadcrumb component', () => {
@@ -101,9 +88,6 @@ describe('AppTemplate', () => {
10188
sideBarAvailablePanels: [{ app: 'DetailsPanel' }]
10289
}
10390
})
104-
expect(
105-
wrapper.findComponent<typeof SideBar>(stubSelectors.sideBar).props().activePanel
106-
).toEqual('DetailsPanel')
10791
expect(
10892
wrapper.findComponent<typeof SideBar>(stubSelectors.sideBar).props().availablePanels
10993
).toEqual([{ app: 'DetailsPanel' }])
@@ -112,21 +96,23 @@ describe('AppTemplate', () => {
11296
})
11397
})
11498

115-
function getWrapper({ props = {}, isMobileWidth = false } = {}) {
99+
function getWrapper({ props = {}, isMobileWidth = false, isSideBarOpen = true } = {}) {
116100
vi.mocked(useIsTopBarSticky).mockReturnValue({ isSticky: ref(true) })
117101

102+
const plugins = [...defaultPlugins()]
103+
const sideBarStore = useSideBar()
104+
sideBarStore.isSideBarOpen = isSideBarOpen
105+
118106
return {
119107
wrapper: shallowMount(AppTemplate, {
120108
props: {
121109
loading: false,
122110
breadcrumbs: [],
123-
isSideBarOpen: true,
124111
sideBarAvailablePanels: [],
125-
sideBarActivePanel: '',
126112
...props
127113
},
128114
global: {
129-
plugins: [...defaultPlugins()],
115+
plugins,
130116
provide: { isMobileWidth: ref(isMobileWidth) },
131117
stubs: {
132118
OcButton: false

packages/web-app-admin-settings/tests/unit/components/Groups/GroupsList.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import {
55
mount,
66
shallowMount
77
} from '@opencloud-eu/web-test-helpers'
8-
import { displayPositionedDropdown, eventBus, queryItemAsString } from '@opencloud-eu/web-pkg'
9-
import { SideBarEventTopics } from '@opencloud-eu/web-pkg'
8+
import { displayPositionedDropdown, queryItemAsString, useSideBar } from '@opencloud-eu/web-pkg'
109
import { useGroupSettingsStore } from '../../../../src/composables'
1110
import { Group } from '@opencloud-eu/web-client/graph/generated'
1211

@@ -80,10 +79,11 @@ describe('GroupsList', () => {
8079
})
8180
it('should show the group details on details button click', async () => {
8281
const groups = getGroupMocks()
83-
const eventBusSpy = vi.spyOn(eventBus, 'publish')
8482
const { wrapper } = getWrapper({ mountType: mount, groups })
83+
84+
const { openSideBar } = useSideBar()
8585
await wrapper.find('.groups-table-btn-details').trigger('click')
86-
expect(eventBusSpy).toHaveBeenCalledWith(SideBarEventTopics.open)
86+
expect(openSideBar).toHaveBeenCalled()
8787
})
8888
describe('toggle selection', () => {
8989
describe('selectGroups method', () => {

packages/web-app-admin-settings/tests/unit/components/Spaces/SpacesList.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@ import {
55
mount,
66
shallowMount
77
} from '@opencloud-eu/web-test-helpers'
8-
import { eventBus, queryItemAsString } from '@opencloud-eu/web-pkg'
8+
import { queryItemAsString, useSideBar } from '@opencloud-eu/web-pkg'
99
import { displayPositionedDropdown } from '@opencloud-eu/web-pkg'
10-
import { SideBarEventTopics } from '@opencloud-eu/web-pkg'
1110
import { nextTick } from 'vue'
1211
import { useSpaceSettingsStore } from '../../../../src/composables'
1312
import { mock } from 'vitest-mock-extended'
@@ -143,10 +142,11 @@ describe('SpacesList', () => {
143142
expect(spyDisplayPositionedDropdown).toHaveBeenCalledTimes(1)
144143
})
145144
it('should show the space details on details button click', async () => {
146-
const eventBusSpy = vi.spyOn(eventBus, 'publish')
147145
const { wrapper } = getWrapper({ spaces: spaceMocks })
146+
147+
const { openSideBar } = useSideBar()
148148
await wrapper.find('.spaces-table-btn-details').trigger('click')
149-
expect(eventBusSpy).toHaveBeenCalledWith(SideBarEventTopics.open)
149+
expect(openSideBar).toHaveBeenCalled()
150150
})
151151
describe('toggle selection', () => {
152152
describe('selectSpaces method', () => {

packages/web-app-admin-settings/tests/unit/components/Users/UsersList.spec.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import {
55
mount,
66
shallowMount
77
} from '@opencloud-eu/web-test-helpers'
8-
import { displayPositionedDropdown, eventBus, queryItemAsString } from '@opencloud-eu/web-pkg'
9-
import { SideBarEventTopics } from '@opencloud-eu/web-pkg'
8+
import { displayPositionedDropdown, queryItemAsString, useSideBar } from '@opencloud-eu/web-pkg'
109
import { useUserSettingsStore } from '../../../../src/composables/stores/userSettings'
1110
import { User } from '@opencloud-eu/web-client/graph/generated'
1211

@@ -110,17 +109,19 @@ describe('UsersList', () => {
110109
})
111110
it('should show the user details on details button click', async () => {
112111
const users = getUserMocks()
113-
const eventBusSpy = vi.spyOn(eventBus, 'publish')
114112
const { wrapper } = getWrapper({ mountType: mount, users })
113+
114+
const { openSideBar } = useSideBar()
115115
await wrapper.find('.users-table-btn-details').trigger('click')
116-
expect(eventBusSpy).toHaveBeenCalledWith(SideBarEventTopics.open)
116+
expect(openSideBar).toHaveBeenCalled()
117117
})
118118
it('should show the user edit panel on edit button click', async () => {
119119
const users = getUserMocks()
120-
const eventBusSpy = vi.spyOn(eventBus, 'publish')
121120
const { wrapper } = getWrapper({ mountType: mount, users })
121+
122+
const { openSideBarPanel } = useSideBar()
122123
await wrapper.find('.users-table-btn-edit').trigger('click')
123-
expect(eventBusSpy).toHaveBeenCalledWith(SideBarEventTopics.openWithPanel, 'EditPanel')
124+
expect(openSideBarPanel).toHaveBeenCalledWith('EditPanel')
124125
})
125126
describe('toggle selection', () => {
126127
describe('selectUsers method', () => {

packages/web-app-admin-settings/tests/unit/views/__snapshots__/General.spec.ts.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
exports[`General view > renders component 1`] = `
44
"<div>
5-
<app-template-stub breadcrumbs="[object Object]" issidebaropen="false" sidebaravailablepanels="[object Object]" sidebarpanelcontext="[object Object]" loading="false" sidebarloading="false" showviewoptions="false" showbatchactions="false" batchactionitems="" batchactions="" showappbar="false"></app-template-stub>
5+
<app-template-stub breadcrumbs="[object Object]" sidebaravailablepanels="[object Object]" sidebarpanelcontext="[object Object]" loading="false" sidebarloading="false" showviewoptions="false" showbatchactions="false" batchactionitems="" batchactions="" showappbar="false"></app-template-stub>
66
</div>"
77
`;

packages/web-app-files/tests/unit/components/Spaces/SpaceHeader.spec.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { defaultPlugins, mount, defaultComponentMocks } from '@opencloud-eu/web-
66
import { mock } from 'vitest-mock-extended'
77
import { GetFileContentsResponse } from '@opencloud-eu/web-client/webdav'
88
import { flushPromises } from '@vue/test-utils'
9+
import { useSideBar } from '@opencloud-eu/web-pkg'
910

1011
vi.mock('@opencloud-eu/web-pkg', async (importOriginal) => ({
1112
...(await importOriginal<any>()),
@@ -120,16 +121,20 @@ function getWrapper({
120121
count: memberCount
121122
})
122123

124+
const plugins = [
125+
...defaultPlugins({ piniaOptions: { spacesState: { imagesLoading, readmesLoading } } })
126+
]
127+
128+
const sideBarStore = useSideBar()
129+
sideBarStore.isSideBarOpen = isSideBarOpen
130+
123131
return mount(SpaceHeader, {
124132
props: {
125-
space,
126-
isSideBarOpen
133+
space
127134
},
128135
global: {
129136
mocks,
130-
plugins: [
131-
...defaultPlugins({ piniaOptions: { spacesState: { imagesLoading, readmesLoading } } })
132-
],
137+
plugins,
133138
provide: { ...mocks, isMobileWidth: ref(isMobileWidth) },
134139
stubs: {
135140
'space-context-actions': true,

packages/web-app-files/tests/unit/views/spaces/__snapshots__/Projects.spec.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ exports[`Projects view > different files view states > lists all available proje
44
"<div class="flex w-full">
55
<div class="files-view-wrapper relative grid grid-cols-1 flex-1 focus:outline-0 h-full overflow-y-auto gap-0">
66
<div id="files-view" class="outline-0 z-0 flex flex-col">
7-
<app-bar-stub viewmodedefault="resource-tiles" breadcrumbs="[object Object]" breadcrumbscontextactionsitems="" viewmodes="[object Object]" hasbulkactions="true" hasviewoptions="true" hashiddenfiles="false" hasfileextensions="false" haspagination="false" showactionsonselection="true" issidebaropen="false" batchactionsloading="false"></app-bar-stub>
7+
<app-bar-stub viewmodedefault="resource-tiles" breadcrumbs="[object Object]" breadcrumbscontextactionsitems="" viewmodes="[object Object]" hasbulkactions="true" hasviewoptions="true" hashiddenfiles="false" hasfileextensions="false" haspagination="false" showactionsonselection="true" batchactionsloading="false"></app-bar-stub>
88
<div class="spaces-list">
99
<div class="flex justify-end flex-wrap items-end mx-4 mb-4">
1010
<div class="w-3xs"><label class="inline-block mb-0.5" for="spaces-filter">Search
@@ -18,11 +18,11 @@ exports[`Projects view > different files view states > lists all available proje
1818
<!--v-if-->
1919
</div>
2020
</div>
21-
<resource-table-stub resources="[object Object],[object Object]" resourcedomselector="[Function]" arepathsdisplayed="false" selectedids="" hasactions="true" showrenamequickaction="true" areresourcesclickable="true" headerposition="0" isselectable="true" issidebaropen="false" dragdrop="false" viewmode="resource-table" hover="true" sortby="name" fieldsdisplayed="image,name,totalQuota,usedQuota,remainingQuota,indicators,mdate" sortdir="asc" resourcetype="space" lazy="true" sort-fields="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]" view-size="1"></resource-table-stub>
21+
<resource-table-stub resources="[object Object],[object Object]" resourcedomselector="[Function]" arepathsdisplayed="false" selectedids="" hasactions="true" showrenamequickaction="true" areresourcesclickable="true" headerposition="0" isselectable="true" dragdrop="false" viewmode="resource-table" hover="true" sortby="name" fieldsdisplayed="image,name,totalQuota,usedQuota,remainingQuota,indicators,mdate" sortdir="asc" resourcetype="space" lazy="true" sort-fields="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]" view-size="1"></resource-table-stub>
2222
</div>
2323
</div>
2424
</div>
2525
<!--v-if-->
26-
<file-side-bar-stub isopen="false"></file-side-bar-stub>
26+
<file-side-bar-stub></file-side-bar-stub>
2727
</div>"
2828
`;

packages/web-app-files/tests/unit/views/trash/__snapshots__/Overview.spec.ts.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ exports[`TrashOverview > view states > should render trash list 1`] = `
44
"<div class="flex w-full">
55
<div class="files-view-wrapper relative grid grid-cols-1 flex-1 focus:outline-0 h-full overflow-y-auto gap-0">
66
<div id="files-view" class="outline-0 z-0 flex flex-col">
7-
<app-bar-stub viewmodedefault="resource-tiles" breadcrumbs="[object Object]" breadcrumbscontextactionsitems="" viewmodes="[object Object]" hasbulkactions="false" hasviewoptions="true" hashiddenfiles="false" hasfileextensions="false" haspagination="false" showactionsonselection="false" issidebaropen="false" batchactionsloading="false"></app-bar-stub>
7+
<app-bar-stub viewmodedefault="resource-tiles" breadcrumbs="[object Object]" breadcrumbscontextactionsitems="" viewmodes="[object Object]" hasbulkactions="false" hasviewoptions="true" hashiddenfiles="false" hasfileextensions="false" haspagination="false" showactionsonselection="false" batchactionsloading="false"></app-bar-stub>
88
<div class="flex justify-end flex-wrap items-end mx-4 mb-4">
99
<div class="w-3xs"><label class="inline-block mb-0.5" for="trash-filter">Search
1010
<!--v-if-->
@@ -17,10 +17,10 @@ exports[`TrashOverview > view states > should render trash list 1`] = `
1717
<!--v-if-->
1818
</div>
1919
</div>
20-
<resource-table-stub resources="[object Object],[object Object],[object Object]" resourcedomselector="[Function]" arepathsdisplayed="false" selectedids="" hasactions="true" showrenamequickaction="false" areresourcesclickable="true" headerposition="0" isselectable="false" issidebaropen="false" dragdrop="false" viewmode="resource-table" hover="true" sortby="name" fieldsdisplayed="name" sortdir="asc" resourcetype="file" lazy="true" class="trash-table" sort-fields="" are-thumbnails-displayed="false" view-size="1"></resource-table-stub>
20+
<resource-table-stub resources="[object Object],[object Object],[object Object]" resourcedomselector="[Function]" arepathsdisplayed="false" selectedids="" hasactions="true" showrenamequickaction="false" areresourcesclickable="true" headerposition="0" isselectable="false" dragdrop="false" viewmode="resource-table" hover="true" sortby="name" fieldsdisplayed="name" sortdir="asc" resourcetype="file" lazy="true" class="trash-table" sort-fields="" are-thumbnails-displayed="false" view-size="1"></resource-table-stub>
2121
</div>
2222
</div>
2323
<!--v-if-->
24-
<file-side-bar-stub isopen="false" activepanel=""></file-side-bar-stub>
24+
<file-side-bar-stub></file-side-bar-stub>
2525
</div>"
2626
`;

packages/web-pkg/tests/unit/components/FilesList/ResourceTable.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@ import {
99
SpaceResource
1010
} from '@opencloud-eu/web-client'
1111
import { defaultPlugins, mount, PartialComponentProps } from '@opencloud-eu/web-test-helpers'
12-
import { CapabilityStore, SideBarEventTopics } from '../../../../src/composables/piniaStores'
12+
import { CapabilityStore, useSideBar } from '../../../../src/composables/piniaStores'
1313
import { useCanBeOpenedWithSecureView } from '../../../../src/composables/resources'
1414
import { displayPositionedDropdown } from '../../../../src/helpers/contextMenuDropdown'
15-
import { eventBus } from '../../../../src/services/eventBus'
1615
import { mock } from 'vitest-mock-extended'
1716
import { computed } from 'vue'
1817
import { Identity } from '@opencloud-eu/web-client/graph/generated'
@@ -626,12 +625,13 @@ describe('ResourceTable', () => {
626625
expect(resourceRow.find('.resource-table-tag-more').exists()).toBe(renderButton)
627626
})
628627
it('opens sidebar on click', async () => {
629-
const spyBus = vi.spyOn(eventBus, 'publish')
630628
const resource = mock<Resource>({ id: '1', tags: ['1', '2', '3'] })
631629
const { wrapper } = getMountedWrapper({ props: { resources: [resource] } })
632630
const resourceRow = wrapper.find(`[data-item-id="${resource.id}"]`)
631+
632+
const { openSideBar } = useSideBar()
633633
await resourceRow.find('.resource-table-tag-more').trigger('click')
634-
expect(spyBus).toHaveBeenCalledWith(SideBarEventTopics.open)
634+
expect(openSideBar).toHaveBeenCalled()
635635
})
636636
})
637637
})

packages/web-pkg/tests/unit/components/sidebar/FileSideBar.spec.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ import {
1313
useAppsStore,
1414
useExtensionRegistry,
1515
useResourcesStore,
16-
useSharesStore
16+
useSharesStore,
17+
useSideBar
1718
} from '../../../../src/composables/piniaStores'
1819
import { AncestorMetaDataValue } from '../../../../src'
1920

@@ -272,6 +273,9 @@ function createWrapper({
272273
const { requestExtensions } = useExtensionRegistry()
273274
vi.mocked(requestExtensions).mockReturnValue([])
274275

276+
const sideBarStore = useSideBar()
277+
sideBarStore.isSideBarOpen = isOpen
278+
275279
const useSelectedResourcesMock = mock<ReturnType<typeof useSelectedResources>>()
276280
useSelectedResourcesMock.selectedResources = item ? ref([item]) : ref([])
277281
vi.mocked(useSelectedResources).mockReturnValue(useSelectedResourcesMock)
@@ -283,7 +287,6 @@ function createWrapper({
283287
mocks,
284288
wrapper: shallowMount(FileSideBar, {
285289
props: {
286-
isOpen,
287290
space
288291
},
289292
global: {

0 commit comments

Comments
 (0)