mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
fix(files): open sidebar on sharing tab by default for files
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
This commit is contained in:
parent
b48a877c62
commit
606241cf76
3 changed files with 41 additions and 4 deletions
|
|
@ -3,7 +3,7 @@
|
|||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import { expect } from '@jest/globals'
|
||||
import { File, Permission, View, FileAction } from '@nextcloud/files'
|
||||
import { File, Permission, View, FileAction, Folder } from '@nextcloud/files'
|
||||
|
||||
import { action } from './sidebarAction'
|
||||
import logger from '../logger'
|
||||
|
|
@ -108,7 +108,9 @@ describe('Open sidebar action enabled tests', () => {
|
|||
describe('Open sidebar action exec tests', () => {
|
||||
test('Open sidebar', async () => {
|
||||
const openMock = jest.fn()
|
||||
window.OCA = { Files: { Sidebar: { open: openMock } } }
|
||||
const defaultTabMock = jest.fn()
|
||||
window.OCA = { Files: { Sidebar: { open: openMock, setActiveTab: defaultTabMock } } }
|
||||
|
||||
const goToRouteMock = jest.fn()
|
||||
// @ts-expect-error We only mock what needed, we do not need Files.Router.goTo or Files.Navigation
|
||||
window.OCP = { Files: { Router: { goToRoute: goToRouteMock } } }
|
||||
|
|
@ -124,6 +126,36 @@ describe('Open sidebar action exec tests', () => {
|
|||
// Silent action
|
||||
expect(exec).toBe(null)
|
||||
expect(openMock).toBeCalledWith('/foobar.txt')
|
||||
expect(defaultTabMock).toBeCalledWith('sharing')
|
||||
expect(goToRouteMock).toBeCalledWith(
|
||||
null,
|
||||
{ view: view.id, fileid: '1' },
|
||||
{ dir: '/' },
|
||||
true,
|
||||
)
|
||||
})
|
||||
|
||||
test('Open sidebar for folder', async () => {
|
||||
const openMock = jest.fn()
|
||||
const defaultTabMock = jest.fn()
|
||||
window.OCA = { Files: { Sidebar: { open: openMock, setActiveTab: defaultTabMock } } }
|
||||
|
||||
const goToRouteMock = jest.fn()
|
||||
// @ts-expect-error We only mock what needed, we do not need Files.Router.goTo or Files.Navigation
|
||||
window.OCP = { Files: { Router: { goToRoute: goToRouteMock } } }
|
||||
|
||||
const file = new Folder({
|
||||
id: 1,
|
||||
source: 'https://cloud.domain.com/remote.php/dav/files/admin/foobar',
|
||||
owner: 'admin',
|
||||
mime: 'httpd/unix-directory',
|
||||
})
|
||||
|
||||
const exec = await action.exec(file, view, '/')
|
||||
// Silent action
|
||||
expect(exec).toBe(null)
|
||||
expect(openMock).toBeCalledWith('/foobar')
|
||||
expect(defaultTabMock).toBeCalledWith('sharing')
|
||||
expect(goToRouteMock).toBeCalledWith(
|
||||
null,
|
||||
{ view: view.id, fileid: '1' },
|
||||
|
|
@ -134,7 +166,9 @@ describe('Open sidebar action exec tests', () => {
|
|||
|
||||
test('Open sidebar fails', async () => {
|
||||
const openMock = jest.fn(() => { throw new Error('Mock error') })
|
||||
window.OCA = { Files: { Sidebar: { open: openMock } } }
|
||||
const defaultTabMock = jest.fn()
|
||||
window.OCA = { Files: { Sidebar: { open: openMock, setActiveTab: defaultTabMock } } }
|
||||
|
||||
jest.spyOn(logger, 'error').mockImplementation(() => jest.fn())
|
||||
|
||||
const file = new File({
|
||||
|
|
|
|||
|
|
@ -36,6 +36,9 @@ export const action = new FileAction({
|
|||
|
||||
async exec(node: Node, view: View, dir: string) {
|
||||
try {
|
||||
// Open sidebar and set active tab to sharing by default
|
||||
window.OCA.Files.Sidebar.setActiveTab('sharing')
|
||||
|
||||
// TODO: migrate Sidebar to use a Node instead
|
||||
await window.OCA.Files.Sidebar.open(node.path)
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ describe('files_sharing: Files inline status action', { testIsolation: true }, (
|
|||
.should('not.exist')
|
||||
})
|
||||
|
||||
describe('', () => {
|
||||
describe('Sharing inline status action handling', () => {
|
||||
let user: User
|
||||
let sharee: User
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue