Skip to content

Commit

Permalink
test(cy): use createTestFolder() and `visitTestFolder()
Browse files Browse the repository at this point in the history
* `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
1 parent 57d33c4 commit b7c22af
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 42 deletions.
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

0 comments on commit b7c22af

Please sign in to comment.