1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /**
- * 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: 'Nickname' })
- .should('be.visible')
- cy.findByRole('textbox', { name: 'Nickname' })
- .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')
- })
- })
|