Skip to content

Commit

Permalink
test(files_sharing): Add test for "note to recipient" feature
Browse files Browse the repository at this point in the history
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
  • Loading branch information
susnux committed Jul 30, 2024
1 parent a189624 commit adf7164
Show file tree
Hide file tree
Showing 2 changed files with 79 additions and 2 deletions.
8 changes: 6 additions & 2 deletions cypress/e2e/files_sharing/FilesSharingUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,13 @@
/* eslint-disable jsdoc/require-jsdoc */
import { triggerActionForFile } from '../files/FilesUtils'

import { EntryId as FileRequestEntryID } from '../../../apps/files_sharing/src/new/newFileRequest'

export interface ShareSetting {
read: boolean
update: boolean
delete: boolean
share: boolean
download: boolean
note: string
}

export function createShare(fileName: string, username: string, shareSettings: Partial<ShareSetting> = {}) {
Expand Down Expand Up @@ -85,6 +84,11 @@ export function updateShare(fileName: string, index: number, shareSettings: Part
}
}

if (shareSettings.note !== undefined) {
cy.findByRole('checkbox', { name: /note to recipient/i }).check({ force: true, scrollBehavior: 'nearest' })
cy.findByRole('textbox', { name: /note to recipient/i }).type(shareSettings.note)
}

cy.get('[data-cy-files-sharing-share-editor-action="save"]').click({ scrollBehavior: 'nearest' })

cy.wait('@updateShare')
Expand Down
73 changes: 73 additions & 0 deletions cypress/e2e/files_sharing/note-to-recipient.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/*!
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import type { User } from '@nextcloud/cypress'
import { createShare, openSharingPanel } from './FilesSharingUtils.ts'
import { getRowForFile, navigateToFolder } from '../files/FilesUtils.ts'

describe('files_sharing: Note to recipient', { testIsolation: true }, () => {
let user: User
let sharee: User

beforeEach(() => {
cy.createRandomUser().then(($user) => {
user = $user
})
cy.createRandomUser().then(($user) => {
sharee = $user
})
})

it('displays the note to the sharee', () => {
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, note: 'Hello, this is the note.' })

cy.logout()
// Now for the sharee
cy.login(sharee)

// visit shared files view
cy.visit('/apps/files')
navigateToFolder('folder')
cy.get('.note-to-recipient')
.should('be.visible')
.and('contain.text', 'Hello, this is the note.')
})

/**
* Regression test for https://github.com/nextcloud/server/issues/46188
*/
it('shows an existing note when editing a share', () => {
cy.mkdir(user, '/folder')
cy.login(user)
cy.visit('/apps/files')

// share the folder
createShare('folder', sharee.userId, { read: true, download: true, note: 'Hello, this is the note.' })

// reload just to be sure
cy.reload()

// open the sharing tab
openSharingPanel('folder')

cy.get('[data-cy-sidebar]').within(() => {
// Open the share
cy.get('[data-cy-files-sharing-share-actions]').first().click()
// Open the custom settings
cy.get('[data-cy-files-sharing-share-permissions-bundle="custom"]').click()

cy.findByRole('checkbox', { name: /note to recipient/i })
.and('be.checked')
cy.findByRole('textbox', { name: /note to recipient/i })
.should('be.visible')
.and('have.value', 'Hello, this is the note.')
})
})
})

0 comments on commit adf7164

Please sign in to comment.