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
test: fix conflict spec to cover conflict and non-conflict uploads
Signed-off-by: Benjamin Frueh <[email protected]>
  • Loading branch information
benjaminfrueh authored and mejo- committed Oct 6, 2025
commit a4720c9a562516969c8b05f8ffe9f3713757898c
37 changes: 26 additions & 11 deletions cypress/e2e/conflict.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ variants.forEach(function({ fixture, mime }) {
})

it(prefix + ': displays conflicts', function() {
createConflict(fileName, mime)
createConflict(fileName, 'edited-' + fileName, mime)

cy.openFile(fileName)

Expand All @@ -61,6 +61,9 @@ variants.forEach(function({ fixture, mime }) {
getWrapper()
.find('#read-only-editor')
.should('contain', 'Hello world')
getWrapper()
.find('#read-only-editor')
.should('not.contain', 'cruel conflicting')
getWrapper()
.find('.text-editor__main')
.should('contain', 'Hello world')
Expand All @@ -70,7 +73,7 @@ variants.forEach(function({ fixture, mime }) {
})

it(prefix + ': resolves conflict using current editing session', function() {
createConflict(fileName, mime)
createConflict(fileName, 'edited-' + fileName, mime)

cy.openFile(fileName)
cy.intercept({ method: 'POST', url: '**/session/*/push' })
Expand All @@ -81,12 +84,11 @@ variants.forEach(function({ fixture, mime }) {
getWrapper().should('not.exist')
cy.get('[data-cy="resolveThisVersion"]')
.should('not.exist')
cy.getContent().should('contain', 'Hello world')
cy.getContent().should('contain', 'cruel conflicting')
})

it(prefix + ': resolves conflict using server version', function() {
createConflict(fileName, mime)
createConflict(fileName, 'edited-' + fileName, mime)

cy.openFile(fileName)
cy.get('[data-cy="resolveServerVersion"]')
Expand All @@ -102,7 +104,7 @@ variants.forEach(function({ fixture, mime }) {
})

it(prefix + ': hides conflict in read only session', function() {
createConflict(fileName, mime)
createConflict(fileName, 'edited-' + fileName, mime)
cy.testName().then(testName => {
cy.shareFile(`/${testName}/${fileName}`)
.then((token) => {
Expand All @@ -114,6 +116,12 @@ variants.forEach(function({ fixture, mime }) {
getWrapper().should('not.exist')
})

it(prefix + ': no conflict when uploading same file content', function() {
createConflict(fileName, fileName, mime)
cy.openFile(fileName)
cy.getContent().should('contain', 'Hello world')
getWrapper().should('not.exist')
})
})
})

Expand All @@ -129,7 +137,7 @@ describe('conflict dialog scroll behaviour', function() {
cy.login(user)
cy.createTestFolder()

createConflict(fileName, 'text/markdown')
createConflict(fileName, 'edited-' + fileName, 'text/markdown')

cy.openFile(fileName)

Expand All @@ -148,22 +156,29 @@ describe('conflict dialog scroll behaviour', function() {
})

/**
* @param {string} fileName - filename
* @param {string} fileName1 - filename1
* @param {string} fileName2 - filename2
* @param {string} mime - mimetype
*/
function createConflict(fileName, mime) {
function createConflict(fileName1, fileName2, mime) {
cy.testName().then(testName => {
cy.uploadFile(fileName, mime, `${testName}/${fileName}`)
cy.uploadFile(fileName1, mime, `${testName}/${fileName1}`)
})
cy.visitTestFolder()
cy.openFile(fileName)
cy.openFile(fileName1)
cy.log('Inspect editor')
cy.getEditor().find('.ProseMirror').should('have.attr', 'contenteditable', 'true')

cy.getContent()
.type('Hello you cruel conflicting world')

cy.testName().then(testName => {
cy.uploadFile(fileName, mime, testName + '/' + fileName)
cy.uploadFile(fileName2, mime, testName + '/' + fileName1)
})

cy.intercept('POST', '**/session/*/sync').as('sync')
cy.wait('@sync', { timeout: 10000 })

cy.get('#viewer .modal-header button.header-close').click()
cy.get('#viewer').should('not.exist')
}
9 changes: 9 additions & 0 deletions cypress/fixtures/edited-lines.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
This file contains multiple lines

Hello world

It's a text file so it should not be parsed as markdown

But when it is these would turn into paragraphs.

edited
23 changes: 23 additions & 0 deletions cypress/fixtures/edited-long.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Hello world

## First subheading

Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.

Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.

Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.

## Second subheading

Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.

Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.

Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.

## Third subheading

Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.

edited
2 changes: 2 additions & 0 deletions cypress/fixtures/edited-test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
## Hello world
edited
Loading