From d05f3c00b96b70b6393364893f63620c48446e67 Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Mon, 19 Aug 2024 20:17:23 -0700 Subject: [PATCH] test keyboard shortcuts from help menu (#3553) Signed-off-by: Jess Frazelle --- e2e/playwright/projects.spec.ts | 68 +++++++++++++++++++++++++++++++++ src/components/HelpMenu.tsx | 6 ++- 2 files changed, 73 insertions(+), 1 deletion(-) diff --git a/e2e/playwright/projects.spec.ts b/e2e/playwright/projects.spec.ts index 81e04851a..203099716 100644 --- a/e2e/playwright/projects.spec.ts +++ b/e2e/playwright/projects.spec.ts @@ -15,6 +15,74 @@ test.afterEach(async ({ page }, testInfo) => { await tearDown(page, testInfo) }) +test( + 'click help/keybindings from home page', + { tag: '@electron' }, + async ({ browserName }, testInfo) => { + const { electronApp, page } = await setupElectron({ + testInfo, + folderSetupFn: async () => {}, + }) + + await page.setViewportSize({ width: 1200, height: 500 }) + + page.on('console', console.log) + + // click ? button + await page.getByTestId('help-button').click() + await expect(page.getByTestId('keybindings-button')).toBeVisible() + // Click keyboard shortcuts button. + await page.getByTestId('keybindings-button').click() + // Make sure the keyboard shortcuts modal is visible. + await expect(page.getByText('Enter Sketch Mode')).toBeVisible() + + await electronApp.close() + } +) + +test( + 'click help/keybindings from project page', + { tag: '@electron' }, + async ({ browserName }, testInfo) => { + const { electronApp, page } = await setupElectron({ + testInfo, + folderSetupFn: async (dir) => { + await fsp.mkdir(`${dir}/bracket`, { recursive: true }) + await fsp.copyFile( + 'src/wasm-lib/tests/executor/inputs/focusrite_scarlett_mounting_braket.kcl', + `${dir}/bracket/main.kcl` + ) + }, + }) + + await page.setViewportSize({ width: 1200, height: 500 }) + + page.on('console', console.log) + + page.on('console', console.log) + + // expect to see the text bracket + await expect(page.getByText('bracket')).toBeVisible() + + await page.getByText('bracket').click() + + await expect(page.getByTestId('loading')).toBeAttached() + await expect(page.getByTestId('loading')).not.toBeAttached({ + timeout: 20_000, + }) + + // click ? button + await page.getByTestId('help-button').click() + await expect(page.getByTestId('keybindings-button')).toBeVisible() + // Click keyboard shortcuts button. + await page.getByTestId('keybindings-button').click() + // Make sure the keyboard shortcuts modal is visible. + await expect(page.getByText('Enter Sketch Mode')).toBeVisible() + + await electronApp.close() + } +) + test( 'when code with error first loads you get errors in console', { tag: '@electron' }, diff --git a/src/components/HelpMenu.tsx b/src/components/HelpMenu.tsx index 771bb9f69..240875f0e 100644 --- a/src/components/HelpMenu.tsx +++ b/src/components/HelpMenu.tsx @@ -23,7 +23,10 @@ export function HelpMenu(props: React.PropsWithChildren) { return ( - + Keyboard shortcuts