Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
test(cy): use createTestFolder() and `visitTestFolder()
* `cy.openWorkspace()` and `cy.createDescription()`
  use the currently opened path now.
  They don't need any argument anymore.
  This also avoids duplicate page loads.
* Use 'testFolder' alias and `this.testFolder`
  instead of `currentFolder` variable.

Signed-off-by: Max <[email protected]>
  • Loading branch information
max-nextcloud authored and backportbot-nextcloud[bot] committed Dec 18, 2023
commit b7c22af12ae688bfd8ec5102882eb6d668d2c089
72 changes: 34 additions & 38 deletions cypress/e2e/workspace.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import { randUser } from '../utils/index.js'
const user = randUser()

describe('Workspace', function() {
let currentFolder

before(function() {
cy.createUser(user, 'password')
Expand All @@ -36,17 +35,13 @@ describe('Workspace', function() {
// 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')
Expand All @@ -56,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')
Expand All @@ -68,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'],
Expand All @@ -90,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}`
Expand All @@ -111,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'],
Expand All @@ -122,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)
cy.visitTestFolder()
cy.openWorkspace()
.type('# Let\'s smile together{enter}## ')

cy.getMenuEntry('emoji-picker')
Expand All @@ -147,13 +143,13 @@ describe('Workspace', function() {
})

it('relative folder links', () => {
cy.createFolder(`${currentFolder}/sub-folder`)
cy.createFolder(`${currentFolder}/sub-folder/alpha`)
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}')
Expand All @@ -169,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()
Expand All @@ -190,8 +186,8 @@ describe('Workspace', 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', () => {
Expand Down Expand Up @@ -239,17 +235,17 @@ describe('Workspace', function() {
describe('localize', () => {
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')
})

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')
})
})
Expand All @@ -265,21 +261,21 @@ describe('Workspace', function() {
}

beforeEach(() => {
cy.visit(`apps/files?dir=/${encodeURIComponent(currentFolder)}`)
cy.visitTestFolder()
})

it('click', () => {
cy.openWorkspace(currentFolder).click()
cy.openWorkspace().click()
checkContent()
})

it('enter', () => {
cy.openWorkspace(currentFolder).type('{enter}')
cy.openWorkspace().type('{enter}')
checkContent()
})

it('spacebar', () => {
cy.openWorkspace(currentFolder)
cy.openWorkspace()
.trigger('keyup', {
keyCode: 32,
which: 32,
Expand Down
7 changes: 3 additions & 4 deletions cypress/support/commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -481,8 +481,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 })

Expand Down Expand Up @@ -518,12 +518,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()
Expand Down