aboutsummaryrefslogtreecommitdiffstats
path: root/cypress/e2e/files_sharing/files-shares-view.cy.ts
blob: 12a67d9ee0f3538dd83dc409d54869ffbb9f2ef4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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: /open in files/i }).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: /open in files/i }).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')
	})
})