Skip to content

Commit

Permalink
✅ Add E2E tests for toolbar zoom controls
Browse files Browse the repository at this point in the history
  • Loading branch information
sasamuku committed Feb 7, 2025
1 parent 4cee622 commit 4a09eee
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 2 deletions.
44 changes: 44 additions & 0 deletions frontend/packages/e2e/tests/e2e/toolbar.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import { expect, test } from '@playwright/test'

test.beforeEach(async ({ page }) => {
await page.goto('/')
const cookieButton = page.getByRole('button', {
name: 'Accept All Cookies',
})
await cookieButton.click({ timeout: 1000, force: true }).catch(() => {})
})

test('Desktop toolbar should be visible', async ({ page }) => {
const toolbar = page.locator('div[role="toolbar"][class*="DesktopToolbar"]')
await expect(toolbar).toBeVisible()
})

test('Zoom in button should increase zoom level', async ({ page }) => {
const toolbar = page.locator('div[role="toolbar"][class*="DesktopToolbar"]')
const zoomLevelText = toolbar.locator('span[class*="zoomLevelText"]')

const zoomLevelBefore = await zoomLevelText.textContent()

const zoomInButton = toolbar.getByTestId('zoom-in-button')
await zoomInButton.click()

const zoomLevelAfter = await zoomLevelText.textContent()
expect(Number.parseInt(zoomLevelBefore)).toBeLessThan(
Number.parseInt(zoomLevelAfter),
)
})

test('Zoom out button should decrease zoom level', async ({ page }) => {
const toolbar = page.locator('div[role="toolbar"][class*="DesktopToolbar"]')
const zoomLevelText = toolbar.locator('span[class*="zoomLevelText"]')

const zoomLevelBefore = await zoomLevelText.textContent()

const zoomOutButton = toolbar.getByTestId('zoom-out-button')
await zoomOutButton.click()

const zoomLevelAfter = await zoomLevelText.textContent()
expect(Number.parseInt(zoomLevelBefore)).toBeGreaterThan(
Number.parseInt(zoomLevelAfter),
)
})
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,21 @@ export const ZoomControls: FC = () => {
return (
<div className={styles.wrapper}>
<ToolbarButton asChild onClick={handleClickZoomOut}>
<IconButton icon={<Minus />} tooltipContent="Zoom Out" />
<IconButton
icon={<Minus />}
tooltipContent="Zoom Out"
data-testid="zoom-out-button"
/>
</ToolbarButton>
<span className={styles.zoomLevelText}>
{Math.floor(zoomLevel * 100)}%
</span>
<ToolbarButton asChild onClick={handleClickZoomIn}>
<IconButton icon={<Plus />} tooltipContent="Zoom In" />
<IconButton
icon={<Plus />}
tooltipContent="Zoom In"
data-testid="zoom-in-button"
/>
</ToolbarButton>
</div>
)
Expand Down

0 comments on commit 4a09eee

Please sign in to comment.