feat(test): add test coverage

Signed-off-by: Elizabeth Danzberger <elizabeth@elzody.dev>
This commit is contained in:
Elizabeth Danzberger 2025-11-19 15:00:23 -05:00
parent 71cde2dad9
commit 2006bc3064
No known key found for this signature in database
GPG key ID: 6B466A21DF5E753C
3 changed files with 64 additions and 36 deletions

View file

@ -2,8 +2,8 @@
* SPDX-FileCopyrightText: 2023 Julius Härtl <jus@bitgrid.net>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
// FIXME: Re-renable once 28 has file creation again working
describe.skip('Create new office files', function() {
describe('New file menu', function() {
let randUser
before(function() {
@ -18,51 +18,34 @@ describe.skip('Create new office files', function() {
})
it('Shows create file entries', function() {
cy.get('.files-controls .button.new')
cy.get('form[data-cy-upload-picker=""]')
.should('be.visible')
.click()
cy.get('.newFileMenu', { timeout: 10000 })
cy.get('button[role="menuitem"]')
.contains('New document')
.should('be.visible')
.contains('.menuitem', 'New document')
.should('be.visible')
.find('.icon')
.should('have.css', 'background-image')
cy.get('.files-controls .button.new')
cy.get('form[data-cy-upload-picker=""]')
.click()
cy.get('.newFileMenu', { timeout: 10000 })
cy.get('li[data-cy-upload-picker-menu-entry="upload-file"]')
.should('not.be.visible')
})
const newFileTypeLabels = [
'document', 'spreadsheet', 'presentation', 'diagram',
]
newFileTypeLabels.forEach((filetype) => {
it('Create empty ' + filetype + ' file', function() {
cy.get('.files-controls .button.new')
.should('be.visible')
.click()
describe('Creates a new file', function() {
const newFileTypeLabels = [
'document', 'spreadsheet', 'presentation', 'diagram',
]
newFileTypeLabels.forEach((filetype) => {
it('Create empty ' + filetype + ' file', function() {
cy.newFileFromMenu(filetype, 'MyNewFile')
cy.waitForViewer()
cy.waitForCollabora()
cy.get('.newFileMenu', { timeout: 10000 })
.should('be.visible')
.contains('.menuitem', 'New ' + filetype)
.as('menuitem')
.should('be.visible')
.click()
cy.screenshot('new-file-' + filetype)
cy.get('@menuitem').find('.filenameform input[type=text]').type('MyNewFile')
cy.get('@menuitem').find('.filenameform .icon-confirm').click()
cy.waitForViewer()
cy.waitForCollabora()
cy.screenshot('new-file-' + filetype)
cy.get('@loleafletframe').within(() => {
cy.get('#closebutton').click()
cy.waitForViewerClose()
cy.closeDocument()
})
})
})

View file

@ -8,7 +8,7 @@ import { randHash } from '../utils/index.js'
const shareOwner = new User(randHash(), randHash())
const otherUser = new User(randHash(), randHash())
describe.skip('Public sharing of office documents', () => {
describe('Public sharing of office documents', () => {
before(function() {
cy.nextcloudTestingAppConfigSet('richdocuments', 'doc_format', '')
cy.createUser(shareOwner)
@ -105,6 +105,37 @@ describe.skip('Public sharing of office documents', () => {
})
})
})
describe('New file', () => {
before(() => {
cy.createFolder(shareOwner, '/Shared-Folder')
cy.createFolder(shareOwner, '/Shared-Folder/Subfolder')
})
it('Creates a new file in a public share as a guest', () => {
cy.shareLink(shareOwner, '/Shared-Folder', { permissions: 13 }).then((token) => {
cy.logout()
cy.visit(`/s/${token}`, {
onBeforeLoad(win) {
cy.spy(win, 'postMessage').as('postMessage')
},
})
cy.get('tr[data-cy-files-list-row-name="Subfolder"]')
.should('be.visible')
.click()
cy.newFileFromMenu('document', 'MyNewFile')
waitForCollabora()
// Make sure the document is still in the correct subfolder
cy.reload()
cy.get('tr[data-cy-files-list-row-name="MyNewFile.odt"]')
.should('be.visible')
})
})
})
})
})

View file

@ -454,3 +454,17 @@ Cypress.Commands.add('makeTalkRoomPublic', (user, token, password = '') => {
})
})
Cypress.Commands.add('newFileFromMenu', (fileType = 'document', fileName = 'MyNewFile') => {
cy.get('form[data-cy-upload-picker=""]')
.should('be.visible')
.click()
cy.get('button[role="menuitem"]')
.contains('New ' + fileType)
.should('be.visible')
.click()
cy.get('input[data-cy-files-new-node-dialog-input=""]')
.should('be.visible')
.type(fileName + '{enter}')
})