diff --git a/cypress/e2e/workspace.spec.js b/cypress/e2e/workspace.spec.js index 12343e83637..405bbe37a98 100644 --- a/cypress/e2e/workspace.spec.js +++ b/cypress/e2e/workspace.spec.js @@ -24,26 +24,24 @@ import { randUser } from '../utils/index.js' const user = randUser() describe('Workspace', function() { - let currentFolder before(function() { - cy.createUser(user, 'password') + cy.createUser(user) }) beforeEach(function() { cy.login(user) + // Some tests modify the language. + // Make sure it's the default otherwise. + cy.modifyUser(user, 'language', 'en') // isolate tests - each happens in its own folder - const retry = cy.state('test').currentRetry() - currentFolder = retry - ? `${Cypress.currentTest.title} (${retry})` - : Cypress.currentTest.title - cy.createFolder(currentFolder) + cy.createTestFolder().as('testFolder') }) it('Hides the workspace when switching to another folder', function() { - cy.uploadFile('test.md', 'text/markdown', `${currentFolder}/README.md`) - cy.createFolder(`${currentFolder}/subdirectory`) - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) + cy.uploadFile('test.md', 'text/markdown', `${this.testFolder}/README.md`) + cy.createFolder(`${this.testFolder}/subdirectory`) + cy.visitTestFolder() cy.getFile('README.md') cy.get('#rich-workspace .ProseMirror') .should('contain', 'Hello world') @@ -53,8 +51,8 @@ describe('Workspace', function() { }) it('Hides the workspace when switching to another view', function() { - cy.uploadFile('test.md', 'text/markdown', `${currentFolder}/README.md`) - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) + cy.uploadFile('test.md', 'text/markdown', `${this.testFolder}/README.md`) + cy.visitTestFolder() cy.getFile('README.md') cy.get('#rich-workspace .ProseMirror') .should('contain', 'Hello world') @@ -65,15 +63,16 @@ describe('Workspace', function() { }) it('adds a Readme.md', function() { - cy.createDescription(currentFolder) + cy.visitTestFolder() + cy.createDescription() openSidebar('Readme.md') cy.get('#rich-workspace .text-editor .text-editor__wrapper') .should('be.visible') }) it('formats text', function() { - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) - cy.openWorkspace(currentFolder) + cy.visitTestFolder() + cy.openWorkspace() const buttons = [ ['bold', 'strong'], ['italic', 'em'], @@ -87,8 +86,8 @@ describe('Workspace', function() { }) it('creates headings via submenu', function() { - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) - cy.openWorkspace(currentFolder).type('Heading') + cy.visitTestFolder() + cy.openWorkspace().type('Heading') cy.getContent().type('{selectall}') ;['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].forEach((heading) => { const actionName = `headings-${heading}` @@ -108,8 +107,8 @@ describe('Workspace', function() { }) it('creates lists', function() { - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) - cy.openWorkspace(currentFolder).type('List me') + cy.visitTestFolder() + cy.openWorkspace().type('List me') cy.getContent().type('{selectall}') ;[ ['unordered-list', 'ul'], @@ -119,16 +118,16 @@ describe('Workspace', function() { }) it('takes README.md into account', function() { - cy.uploadFile('test.md', 'text/markdown', `${Cypress.currentTest.title}/README.md`) - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) + cy.uploadFile('test.md', 'text/markdown', `${this.testFolder}/README.md`) + cy.visitTestFolder() cy.getFile('README.md') cy.get('#rich-workspace .ProseMirror') .should('contain', 'Hello world') }) - it('emoji picker', () => { - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) - cy.openWorkspace(currentFolder) + it('emoji picker', function() { + cy.visitTestFolder() + cy.openWorkspace() .type('# Let\'s smile together{enter}## ') cy.getMenuEntry('emoji-picker') @@ -143,14 +142,14 @@ describe('Workspace', function() { .contains('😀') }) - it('relative folder links', () => { - cy.createFolder(`${currentFolder}/sub-folder`) - cy.createFolder(`${currentFolder}/sub-folder/alpha`) + it('relative folder links', function() { + cy.createFolder(`${this.testFolder}/sub-folder`) + cy.createFolder(`${this.testFolder}/sub-folder/alpha`) - cy.uploadFile('test.md', 'text/markdown', `${currentFolder}/sub-folder/alpha/test.md`) - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) + cy.uploadFile('test.md', 'text/markdown', `${this.testFolder}/sub-folder/alpha/test.md`) + cy.visitTestFolder() - cy.openWorkspace(currentFolder) + cy.openWorkspace() .type('link me') cy.getContent() .type('{selectall}') @@ -166,7 +165,7 @@ describe('Workspace', function() { cy.getEditor() .find('a') .should('have.attr', 'href') - .and('contains', `dir=/${currentFolder}/sub-folder/alpha`) + .and('contains', `dir=/${this.testFolder}/sub-folder/alpha`) .and('contains', '#relPath=sub-folder/alpha/test.md') cy.getEditor() @@ -183,15 +182,15 @@ describe('Workspace', function() { cy.getModal().find('button.header-close').click() }) - describe('callouts', () => { + describe('callouts', function() { const types = ['info', 'warn', 'error', 'success'] beforeEach(function() { - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) - cy.openWorkspace(currentFolder).type('Callout') + cy.visitTestFolder() + cy.openWorkspace().type('Callout') }) // eslint-disable-next-line cypress/no-async-tests - it('create callout', () => { + it('create callout', function() { cy.wrap(types).each((type) => { cy.log(`creating ${type} callout`) @@ -212,7 +211,7 @@ describe('Workspace', function() { }) }) - it('toggle callouts', () => { + it('toggle callouts', function() { const [first, ...rest] = types // enable callout @@ -233,11 +232,11 @@ describe('Workspace', function() { }) }) - describe('localize', () => { + describe('localize', function() { it('takes localized file name into account', function() { cy.modifyUser(user, 'language', 'de_DE') - cy.uploadFile('test.md', 'text/markdown', `${Cypress.currentTest.title}/Anleitung.md`) - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) + cy.uploadFile('test.md', 'text/markdown', `${this.testFolder}/Anleitung.md`) + cy.visitTestFolder() cy.getFile('Anleitung.md') cy.get('#rich-workspace .ProseMirror') .should('contain', 'Hello world') @@ -245,14 +244,16 @@ describe('Workspace', function() { it('ignores localized file name in other language', function() { cy.modifyUser(user, 'language', 'fr') - cy.uploadFile('test.md', 'text/markdown', `${Cypress.currentTest.title}/Anleitung.md`) - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) + cy.uploadFile('test.md', 'text/markdown', `${this.testFolder}/Anleitung.md`) + cy.visitTestFolder() cy.getFile('Anleitung.md') + cy.get('#rich-workspace .ProseMirror') + .should('not.exist') }) }) - describe('create Readme.md', () => { - const checkContent = () => { + describe('create Readme.md', function() { + const checkContent = function() { const txt = Cypress.currentTest.title cy.getEditor().find('[data-text-el="editor-content-wrapper"]').click() @@ -261,22 +262,22 @@ describe('Workspace', function() { cy.getContent().should('contain', txt) } - beforeEach(() => { - cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`) + beforeEach(function() { + cy.visitTestFolder() }) - it('click', () => { - cy.openWorkspace(currentFolder).click() + it('click', function() { + cy.openWorkspace().click() checkContent() }) - it('enter', () => { - cy.openWorkspace(currentFolder).type('{enter}') + it('enter', function() { + cy.openWorkspace().type('{enter}') checkContent() }) - it('spacebar', () => { - cy.openWorkspace(currentFolder) + it('spacebar', function() { + cy.openWorkspace() .trigger('keyup', { keyCode: 32, which: 32, diff --git a/cypress/support/commands.js b/cypress/support/commands.js index ca7a0f2e0f6..edcd59375c8 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -473,8 +473,8 @@ Cypress.Commands.add('clearContent', () => { cy.getContent() }) -Cypress.Commands.add('openWorkspace', (folder) => { - cy.createDescription(folder) +Cypress.Commands.add('openWorkspace', () => { + cy.createDescription() cy.get('#rich-workspace .editor__content').click({ force: true }) cy.getEditor().find('[data-text-el="editor-content-wrapper"]').click({ force: true }) @@ -510,12 +510,11 @@ Cypress.Commands.add('showHiddenFiles', (value = true) => { }) }) -Cypress.Commands.add('createDescription', (folder) => { +Cypress.Commands.add('createDescription', () => { const url = '**/remote.php/dav/files/**' cy.intercept({ method: 'PUT', url }) .as('addDescription') - cy.visit(`apps/files?dir=/${encodeURIComponent(folder)}`) cy.get('[data-cy-files-list] tr[data-cy-files-list-row-name="Readme.md"]').should('not.exist') cy.get('[data-cy-upload-picker] button.action-item__menutoggle').click() cy.get('li.upload-picker__menu-entry button').contains('Add description').click()