diff options
author | Richard Steinmetz <richard@steinmetz.cloud> | 2025-01-13 17:09:38 +0100 |
---|---|---|
committer | Richard Steinmetz <richard@steinmetz.cloud> | 2025-01-16 08:57:19 +0100 |
commit | 835994a811279dfbcf4da2a00fa2620b4ea4d031 (patch) | |
tree | f8b4a6e4f3c1c632a8f660032ae41b401de59518 /cypress/e2e/files/files-sorting.cy.ts | |
parent | 6da58974a1a75275d99a75417ddd8f5d47851845 (diff) | |
download | nextcloud-server-fix/files/sort-after-view-change.tar.gz nextcloud-server-fix/files/sort-after-view-change.zip |
fix(files): sort not working after changing viewsfix/files/sort-after-view-change
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
Diffstat (limited to 'cypress/e2e/files/files-sorting.cy.ts')
-rw-r--r-- | cypress/e2e/files/files-sorting.cy.ts | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/cypress/e2e/files/files-sorting.cy.ts b/cypress/e2e/files/files-sorting.cy.ts index 250c5f195a6..b3ae598114c 100644 --- a/cypress/e2e/files/files-sorting.cy.ts +++ b/cypress/e2e/files/files-sorting.cy.ts @@ -267,4 +267,65 @@ describe('Files: Sorting the file list', { testIsolation: true }, () => { } }) }) + + it('Sorting works after switching view twice', () => { + cy.uploadContent(currentUser, new Blob(), 'text/plain', '/1 tiny.txt') + .uploadContent(currentUser, new Blob(['a'.repeat(1024)]), 'text/plain', '/z big.txt') + .uploadContent(currentUser, new Blob(['a'.repeat(512)]), 'text/plain', '/a medium.txt') + .mkdir(currentUser, '/folder') + cy.login(currentUser) + cy.visit('/apps/files') + + // click sort button twice + cy.get('th').contains('button', 'Size').click() + cy.get('th').contains('button', 'Size').click() + + // switch to personal and click sort button twice again + cy.get('[data-cy-files-navigation-item="personal"]').click() + cy.get('th').contains('button', 'Size').click() + cy.get('th').contains('button', 'Size').click() + + // switch back to files view and do actual assertions + cy.get('[data-cy-files-navigation-item="files"]').click() + + // click sort button + cy.get('th').contains('button', 'Size').click() + // sorting is set + cy.contains('th', 'Size').should('have.attr', 'aria-sort', 'ascending') + // Files are sorted + cy.get('[data-cy-files-list-row]').each(($row, index) => { + switch (index) { + case 0: expect($row.attr('data-cy-files-list-row-name')).to.eq('folder') + break + case 1: expect($row.attr('data-cy-files-list-row-name')).to.eq('1 tiny.txt') + break + case 2: expect($row.attr('data-cy-files-list-row-name')).to.eq('welcome.txt') + break + case 3: expect($row.attr('data-cy-files-list-row-name')).to.eq('a medium.txt') + break + case 4: expect($row.attr('data-cy-files-list-row-name')).to.eq('z big.txt') + break + } + }) + + // click sort button + cy.get('th').contains('button', 'Size').click() + // sorting is set + cy.contains('th', 'Size').should('have.attr', 'aria-sort', 'descending') + // Files are sorted + cy.get('[data-cy-files-list-row]').each(($row, index) => { + switch (index) { + case 0: expect($row.attr('data-cy-files-list-row-name')).to.eq('folder') + break + case 1: expect($row.attr('data-cy-files-list-row-name')).to.eq('z big.txt') + break + case 2: expect($row.attr('data-cy-files-list-row-name')).to.eq('a medium.txt') + break + case 3: expect($row.attr('data-cy-files-list-row-name')).to.eq('welcome.txt') + break + case 4: expect($row.attr('data-cy-files-list-row-name')).to.eq('1 tiny.txt') + break + } + }) + }) }) |