From 232651774ec469b0da8790b97cb0438b497d355f Mon Sep 17 00:00:00 2001 From: skjnldsv Date: Fri, 6 Dec 2024 16:09:57 +0100 Subject: [PATCH] fix(files): cancel renaming on enter if no file name changes Signed-off-by: skjnldsv --- .../components/FileEntry/FileEntryName.vue | 4 ++ cypress/e2e/files/files-renaming.cy.ts | 39 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/apps/files/src/components/FileEntry/FileEntryName.vue b/apps/files/src/components/FileEntry/FileEntryName.vue index 1eff841738b54..2a727b55c29e4 100644 --- a/apps/files/src/components/FileEntry/FileEntryName.vue +++ b/apps/files/src/components/FileEntry/FileEntryName.vue @@ -241,6 +241,10 @@ export default defineComponent({ } const oldName = this.source.basename + if (newName === oldName) { + this.stopRenaming() + return + } try { const status = await this.renamingStore.rename() diff --git a/cypress/e2e/files/files-renaming.cy.ts b/cypress/e2e/files/files-renaming.cy.ts index 77f23a004590b..752e8264cebb9 100644 --- a/cypress/e2e/files/files-renaming.cy.ts +++ b/cypress/e2e/files/files-renaming.cy.ts @@ -143,4 +143,43 @@ describe('files: Rename nodes', { testIsolation: true }, () => { .findByRole('textbox', { name: 'Filename' }) .should('not.exist') }) + + it('cancel renaming on esc press', () => { + // All are visible by default + getRowForFile('file.txt').should('be.visible') + + triggerActionForFile('file.txt', 'rename') + + getRowForFile('file.txt') + .findByRole('textbox', { name: 'Filename' }) + .should('be.visible') + .type('{selectAll}other.txt') + .should(haveValidity('')) + .type('{esc}') + + // See it is not renamed + getRowForFile('other.txt').should('not.exist') + getRowForFile('file.txt') + .should('be.visible') + .find('input[type="text"]') + .should('not.exist') + }) + + it('cancel on enter if no new name is entered', () => { + // All are visible by default + getRowForFile('file.txt').should('be.visible') + + triggerActionForFile('file.txt', 'rename') + + getRowForFile('file.txt') + .findByRole('textbox', { name: 'Filename' }) + .should('be.visible') + .type('{enter}') + + // See it is not renamed + getRowForFile('file.txt') + .should('be.visible') + .find('input[type="text"]') + .should('not.exist') + }) })