]> source.dussan.org Git - nextcloud-server.git/commitdiff
test: Add regression test for opening shared folders
authorFerdinand Thiessen <opensource@fthiessen.de>
Thu, 25 Jul 2024 11:30:43 +0000 (13:30 +0200)
committerJohn Molakvoæ <skjnldsv@users.noreply.github.com>
Fri, 2 Aug 2024 13:44:29 +0000 (15:44 +0200)
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
apps/files_sharing/src/actions/openInFilesAction.spec.ts
cypress/e2e/files_sharing/files-shares-view.cy.ts [new file with mode: 0644]

index 96b96145f319f2e14c960071be95e2e58af44be0..6f80078d63e62179bb0a5c98fc8ddcc34224c043 100644 (file)
@@ -89,6 +89,6 @@ describe('Open in files action execute tests', () => {
                // Silent action
                expect(exec).toBe(null)
                expect(goToRouteMock).toBeCalledTimes(1)
-               expect(goToRouteMock).toBeCalledWith(null, { fileid: 1, view: 'files' }, { dir: '/Foo', openfile: 'true' })
+               expect(goToRouteMock).toBeCalledWith(null, { fileid: '1', view: 'files' }, { dir: '/Foo', openfile: 'true' })
        })
 })
diff --git a/cypress/e2e/files_sharing/files-shares-view.cy.ts b/cypress/e2e/files_sharing/files-shares-view.cy.ts
new file mode 100644 (file)
index 0000000..01083e6
--- /dev/null
@@ -0,0 +1,59 @@
+/*!
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+import type { User } from '@nextcloud/cypress'
+import { createShare } from './FilesSharingUtils.ts'
+import { getRowForFile } from '../files/FilesUtils.ts'
+
+describe('files_sharing: Files view', { testIsolation: true }, () => {
+       let user: User
+       let sharee: User
+
+       beforeEach(() => {
+               cy.createRandomUser().then(($user) => {
+                       user = $user
+               })
+               cy.createRandomUser().then(($user) => {
+                       sharee = $user
+               })
+       })
+
+       /**
+        * Regression test of https://github.com/nextcloud/server/issues/46108
+        */
+       it('opens a shared folder when clicking on it', () => {
+               cy.mkdir(user, '/folder')
+               cy.uploadContent(user, new Blob([]), 'text/plain', '/folder/file')
+               cy.login(user)
+               cy.visit('/apps/files')
+
+               // share the folder
+               createShare('folder', sharee.userId, { read: true, download: true })
+               // visit the own shares
+               cy.visit('/apps/files/sharingout')
+               // see the shared folder
+               getRowForFile('folder').should('be.visible')
+               // click on the folder should open it in files
+               getRowForFile('folder').findByRole('button', { name: 'folder' }).click()
+               // See the URL has changed
+               cy.url().should('match', /apps\/files\/files\/.+dir=\/folder/)
+               // Content of the shared folder
+               getRowForFile('file').should('be.visible')
+
+               cy.logout()
+               // Now for the sharee
+               cy.login(sharee)
+
+               // visit shared files view
+               cy.visit('/apps/files/sharingin')
+               // see the shared folder
+               getRowForFile('folder').should('be.visible')
+               // click on the folder should open it in files
+               getRowForFile('folder').findByRole('button', { name: 'folder' }).click()
+               // See the URL has changed
+               cy.url().should('match', /apps\/files\/files\/.+dir=\/folder/)
+               // Content of the shared folder
+               getRowForFile('file').should('be.visible')
+       })
+})