diff options
author | Ferdinand Thiessen <opensource@fthiessen.de> | 2024-11-13 16:38:38 +0100 |
---|---|---|
committer | Ferdinand Thiessen <opensource@fthiessen.de> | 2025-01-28 20:25:55 +0100 |
commit | 910495de1f2edbafb285be9a7dd2358f2006f0c7 (patch) | |
tree | 301935566db394f466aceabf642baab7c9bcf426 /cypress | |
parent | 54a1a560bd92786831875d3002937a4742e73e8a (diff) | |
download | nextcloud-server-910495de1f2edbafb285be9a7dd2358f2006f0c7.tar.gz nextcloud-server-910495de1f2edbafb285be9a7dd2358f2006f0c7.zip |
fix(files): File type filter UI sync with filter state
When changing the folder the filter will be re-mounted by the file list,
so we need to pass the current state of the filter to the filter UI.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Diffstat (limited to 'cypress')
-rw-r--r-- | cypress/e2e/files/files-filtering.cy.ts | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/cypress/e2e/files/files-filtering.cy.ts b/cypress/e2e/files/files-filtering.cy.ts index c7b147d4a9c..a2fab17fbec 100644 --- a/cypress/e2e/files/files-filtering.cy.ts +++ b/cypress/e2e/files/files-filtering.cy.ts @@ -201,6 +201,55 @@ describe('files: Filter in files list', { testIsolation: true }, () => { getRowForFile('text.txt').should('not.exist') }) + /** Regression test of https://github.com/nextcloud/server/issues/47251 */ + it('keeps filter state when changing the directory', () => { + // files are visible + getRowForFile('folder').should('be.visible') + getRowForFile('file.txt').should('be.visible') + + // enable type filter for folders + filesFilters.filterContainter() + .findByRole('button', { name: 'Type' }) + .should('be.visible') + .click() + cy.findByRole('menuitemcheckbox', { name: 'Folders' }) + .should('be.visible') + .click() + // assert the button is checked + cy.findByRole('menuitemcheckbox', { name: 'Folders' }) + .should('have.attr', 'aria-checked', 'true') + // close the menu + filesFilters.filterContainter() + .findByRole('button', { name: 'Type' }) + .click() + + // See the chips are active + filesFilters.activeFilters() + .should('have.length', 1) + .contains(/Folder/).should('be.visible') + + // See that folder is visible but file not + getRowForFile('folder').should('be.visible') + getRowForFile('file.txt').should('not.exist') + + // Change the directory + navigateToFolder('folder') + getRowForFile('folder').should('not.exist') + + // See that the chip is still + filesFilters.activeFilters() + .should('have.length', 1) + .contains(/Folder/).should('be.visible') + // And also the button should be active + filesFilters.filterContainter() + .findByRole('button', { name: 'Type' }) + .should('be.visible') + .click() + cy.findByRole('menuitemcheckbox', { name: 'Folders' }) + .should('be.visible') + .and('have.attr', 'aria-checked', 'true') + }) + it('resets filter when changing the view', () => { // All are visible by default getRowForFile('folder').should('be.visible') |