aboutsummaryrefslogtreecommitdiffstats
path: root/cypress/e2e/files/files-sorting.cy.ts
diff options
context:
space:
mode:
authorRichard Steinmetz <richard@steinmetz.cloud>2025-01-13 17:09:38 +0100
committerRichard Steinmetz <richard@steinmetz.cloud>2025-01-16 08:57:19 +0100
commit835994a811279dfbcf4da2a00fa2620b4ea4d031 (patch)
treef8b4a6e4f3c1c632a8f660032ae41b401de59518 /cypress/e2e/files/files-sorting.cy.ts
parent6da58974a1a75275d99a75417ddd8f5d47851845 (diff)
downloadnextcloud-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.ts61
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
+ }
+ })
+ })
})