diff options
Diffstat (limited to 'cypress/e2e/files_sharing/file-request.cy.ts')
-rw-r--r-- | cypress/e2e/files_sharing/file-request.cy.ts | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/cypress/e2e/files_sharing/file-request.cy.ts b/cypress/e2e/files_sharing/file-request.cy.ts new file mode 100644 index 00000000000..578f72fa0b5 --- /dev/null +++ b/cypress/e2e/files_sharing/file-request.cy.ts @@ -0,0 +1,83 @@ +/** + * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import type { User } from '@nextcloud/cypress' +import { createFolder, getRowForFile, navigateToFolder } from '../files/FilesUtils' +import { createFileRequest } from './FilesSharingUtils' + +const enterGuestName = (name: string) => { + cy.findByRole('dialog', { name: /Upload files to/ }) + .should('be.visible') + .within(() => { + cy.findByRole('textbox', { name: 'Name' }) + .should('be.visible') + + cy.findByRole('textbox', { name: 'Name' }) + .type(`{selectall}${name}`) + + cy.findByRole('button', { name: 'Submit name' }) + .should('be.visible') + .click() + }) + + cy.findByRole('dialog', { name: /Upload files to/ }) + .should('not.exist') +} + +describe('Files', { testIsolation: true }, () => { + const folderName = 'test-folder' + let user: User + let url = '' + + it('Login with a user and create a file request', () => { + cy.createRandomUser().then((_user) => { + user = _user + cy.login(user) + }) + + cy.visit('/apps/files') + createFolder(folderName) + + createFileRequest(`/${folderName}`) + cy.get('@fileRequestUrl').should('contain', '/s/').then((_url: string) => { + cy.logout() + url = _url + }) + }) + + it('Open the file request as a guest', () => { + cy.visit(url) + enterGuestName('Guest') + + // Check various elements on the page + cy.contains(`Upload files to ${folderName}`) + .should('be.visible') + cy.findByRole('button', { name: 'Upload' }) + .should('be.visible') + + cy.intercept('PUT', '/public.php/dav/files/*/*').as('uploadFile') + + // Upload a file + cy.get('[data-cy-files-sharing-file-drop] input[type="file"]') + .should('exist') + .selectFile({ + contents: Cypress.Buffer.from('abcdef'), + fileName: 'file.txt', + mimeType: 'text/plain', + lastModified: Date.now(), + }, { force: true }) + + cy.wait('@uploadFile').its('response.statusCode').should('eq', 201) + }) + + it('Check the uploaded file', () => { + cy.login(user) + cy.visit(`/apps/files/files?dir=/${folderName}`) + getRowForFile('Guest') + .should('be.visible') + navigateToFolder('Guest') + getRowForFile('file.txt').should('be.visible') + }) +}) |