Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[stable28] Fix cypress workspace test by setting default language #5146

Merged
merged 3 commits into from
Dec 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
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
103 changes: 52 additions & 51 deletions cypress/e2e/workspace.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand All @@ -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')
Expand All @@ -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'],
Expand All @@ -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}`
Expand All @@ -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'],
Expand All @@ -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')
Expand All @@ -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}')
Expand All @@ -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()
Expand All @@ -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`)

Expand All @@ -212,7 +211,7 @@ describe('Workspace', function() {
})
})

it('toggle callouts', () => {
it('toggle callouts', function() {
const [first, ...rest] = types

// enable callout
Expand All @@ -233,26 +232,28 @@ 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')
})

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()
Expand All @@ -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,
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
Loading