diff --git a/packages/trace-viewer/src/ui/uiModeView.tsx b/packages/trace-viewer/src/ui/uiModeView.tsx index d1bd521168..d3a2e3889b 100644 --- a/packages/trace-viewer/src/ui/uiModeView.tsx +++ b/packages/trace-viewer/src/ui/uiModeView.tsx @@ -117,27 +117,6 @@ export const UIModeView: React.FC<{}> = ({ }); }, [reloadTests]); - React.useEffect(() => { - const onShortcutEvent = (e: KeyboardEvent) => { - if (e.code === 'KeyR' && (e.metaKey || e.ctrlKey)){ - e.preventDefault(); - runTests('bounce-if-busy', visibleTestIds) - } else if (e.code === 'KeyS' && (e.metaKey || e.ctrlKey)) { - e.preventDefault(); - sendMessageNoReply('stop') - } else if (e.code === 'KeyU' && (e.metaKey || e.ctrlKey)) { - e.preventDefault(); - reloadTests() - } - } - - addEventListener("keydown", onShortcutEvent); - - return () => { - removeEventListener("keydown", onShortcutEvent) - } - }, [visibleTestIds]); - updateRootSuite = React.useCallback((config: reporterTypes.FullConfig, rootSuite: reporterTypes.Suite, loadErrors: reporterTypes.TestError[], newProgress: Progress | undefined) => { const selectedProjects = config.configFile ? settings.getObject(config.configFile + ':projects', undefined) : undefined; for (const projectName of projectFilters.keys()) { @@ -198,6 +177,27 @@ export const UIModeView: React.FC<{}> = ({ }); }, [projectFilters, runningState, testModel]); + React.useEffect(() => { + const onShortcutEvent = (e: KeyboardEvent) => { + if (e.code === 'KeyR' && (e.metaKey || e.ctrlKey)){ + e.preventDefault(); + runTests('bounce-if-busy', visibleTestIds); + } else if (e.code === 'KeyS' && (e.metaKey || e.ctrlKey)) { + e.preventDefault(); + sendMessageNoReply('stop'); + } else if (e.code === 'KeyU' && (e.metaKey || e.ctrlKey)) { + e.preventDefault(); + reloadTests(); + } + }; + + addEventListener('keydown', onShortcutEvent); + + return () => { + removeEventListener('keydown', onShortcutEvent); + }; + }, [runTests, reloadTests, visibleTestIds]); + const isRunningTest = !!runningState; const dialogRef = React.useRef(null); const openInstallDialog = React.useCallback((e: React.MouseEvent) => { diff --git a/tests/playwright-test/ui-mode-test-shortcut.spec.ts b/tests/playwright-test/ui-mode-test-shortcut.spec.ts index 52a3256d05..15d763b6d9 100644 --- a/tests/playwright-test/ui-mode-test-shortcut.spec.ts +++ b/tests/playwright-test/ui-mode-test-shortcut.spec.ts @@ -26,7 +26,7 @@ const basicTestTree = { test('test 2', async () => { await new Promise(() => {}); }); test('test 3', async () => {}); ` -} +}; test('should run on Meta(command) with R', async ({ runUITest }) => { const { page } = await runUITest(basicTestTree);