diff --git a/packages/desktop-gui/cypress/integration/settings_spec.js b/packages/desktop-gui/cypress/integration/settings_spec.js index e799e381a6f..1dbb21318d2 100644 --- a/packages/desktop-gui/cypress/integration/settings_spec.js +++ b/packages/desktop-gui/cypress/integration/settings_spec.js @@ -821,6 +821,7 @@ describe('Settings', () => { it('loads preferred editor, available editors and shows spinner', () => { cy.get('.loading-editors').then(function () { expect(this.ipc.getUserEditor).to.be.called + cy.contains('File Opener Preference').click() }) }) diff --git a/packages/reporter/cypress/integration/shortcuts_spec.ts b/packages/reporter/cypress/integration/shortcuts_spec.ts index aaaeb0c912c..0891ee7bd51 100755 --- a/packages/reporter/cypress/integration/shortcuts_spec.ts +++ b/packages/reporter/cypress/integration/shortcuts_spec.ts @@ -135,5 +135,15 @@ describe('shortcuts', function () { cy.get('button.stop').trigger('mouseover') cy.get('.cy-tooltip').should('have.text', 'Stop Running S') }) + + it('does not run shortcut if modifier keys are pressed', () => { + ['{ctrl+f}', '{alt+f}', '{shift+f}', '{meta+f}'].forEach((text) => { + cy.get('body').type(text) + }) + + cy.then(() => { + expect(runner.emit).not.to.have.been.calledWith('focus:tests') + }) + }) }) }) diff --git a/packages/reporter/src/lib/shortcuts.ts b/packages/reporter/src/lib/shortcuts.ts index 43e3f9b6a27..94c90f52ead 100644 --- a/packages/reporter/src/lib/shortcuts.ts +++ b/packages/reporter/src/lib/shortcuts.ts @@ -1,5 +1,5 @@ // @ts-ignore -import dom from '@packages/driver/src/dom' +import $dom from '@packages/driver/src/dom' import events from './events' import appState from './app-state' import { action } from 'mobx' @@ -16,7 +16,10 @@ class Shortcuts { _handleKeyDownEvent (event: KeyboardEvent) { // if typing into an input, textarea, etc, don't trigger any shortcuts // @ts-ignore - if (dom.isTextLike(event.target)) return + const isTextLike = $dom.isTextLike(event.target) + const isAnyModifierKeyPressed = event.altKey || event.ctrlKey || event.shiftKey || event.metaKey + + if (isAnyModifierKeyPressed || isTextLike) return switch (event.key) { case 'r': !appState.studioActive && events.emit('restart')