Skip to content

Commit 024124a

Browse files
authored
ActionBar: Add a few fixes and tests (#4536)
* Add a few fixes and a test plan * Add test for overflow * Add overflow e2e test to actionbar * Add tests * Create mean-terms-bathe.md * test(vrt): update snapshots --------- Co-authored-by: pksjce <[email protected]>
1 parent 564db1d commit 024124a

13 files changed

+61
-2
lines changed

.changeset/mean-terms-bathe.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@primer/react": patch
3+
---
4+
5+
ActionBar: Add a few fixes and relevant tests
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import {test, expect} from '@playwright/test'
2+
import {visit} from '../../test-helpers/storybook'
3+
import {themes} from '../../test-helpers/themes'
4+
import {viewports} from '../../test-helpers/viewports'
5+
6+
test.describe('ActionBar', () => {
7+
test.describe('Default state', () => {
8+
for (const theme of themes) {
9+
test.describe(theme, () => {
10+
test('default @vrt', async ({page}) => {
11+
await visit(page, {
12+
id: 'drafts-components-actionbar--comment-box',
13+
globals: {
14+
colorScheme: theme,
15+
},
16+
})
17+
expect(await page.screenshot()).toMatchSnapshot(`drafts.ActionBar.CommentBox.${theme}.png`)
18+
})
19+
20+
test('axe @aat', async ({page}) => {
21+
await visit(page, {
22+
id: 'drafts-components-actionbar--comment-box',
23+
globals: {
24+
colorScheme: theme,
25+
},
26+
})
27+
await expect(page).toHaveNoViolations()
28+
})
29+
})
30+
}
31+
})
32+
33+
test.describe('ActionBar Interactions', () => {
34+
for (const theme of themes) {
35+
test.describe(theme, () => {
36+
test('Overflow interaction @vrt', async ({page}) => {
37+
await visit(page, {
38+
id: 'drafts-components-actionbar--comment-box',
39+
globals: {
40+
colorScheme: theme,
41+
},
42+
})
43+
const toolbarButtonSelector = `button[data-component="IconButton"]`
44+
await expect(page.locator(toolbarButtonSelector)).toHaveCount(10)
45+
await page.setViewportSize({width: viewports['primer.breakpoint.xs'], height: 768})
46+
await expect(page.locator(toolbarButtonSelector)).toHaveCount(6)
47+
const moreButtonSelector = `button[aria-label="More Comment box toolbar items"]`
48+
await page.locator(moreButtonSelector).click()
49+
await expect(page.locator('ul[role="menu"]>li')).toHaveCount(5)
50+
})
51+
})
52+
}
53+
})
54+
})

packages/react/src/drafts/ActionBar/ActionBar.stories.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export const CommentBox = (props: CommentBoxProps) => {
6868
const [value, setValue] = React.useState('')
6969
const [isOpen, setIsOpen] = React.useState(false)
7070
const buttonRef = React.useRef(null)
71-
const toolBarLabel = `${ariaLabel} toolbar`
71+
const toolBarLabel = `${ariaLabel ? ariaLabel : 'Comment box'} toolbar`
7272
return (
7373
<Box
7474
sx={{

packages/react/src/drafts/ActionBar/ActionBar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ export const ActionBarIconButton = forwardRef((props: ActionBarIconButtonProps,
299299
const domRect = (ref as MutableRefObject<HTMLElement>).current.getBoundingClientRect()
300300
setChildrenWidth({text, width: domRect.width})
301301
}, [ref, setChildrenWidth])
302-
return <IconButton ref={ref} size={size} {...props} variant="invisible" />
302+
return <IconButton ref={ref} size={size} {...props} variant="invisible" unsafeDisableTooltip={false} />
303303
})
304304

305305
const sizeToHeight = {

0 commit comments

Comments
 (0)