8000 Name the masthead options toggle shown on narrow screens by atishay-kasliwal · Pull Request #54780 · keycloak/keycloak · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ edit=Edit
otp-display-name=Authenticator application
selectALocale=Select a locale
signOut=Sign out
options=Options
linkedEmpty=No linked providers
directMembership=Direct membership
accept=Accept
Expand Down
11 changes: 11 additions & 0 deletions js/apps/account-ui/test/mobile-nav.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,17 @@ test.describe("Mobile nav", () => {
await expect(page.getByTestId("password/credential-list")).toBeVisible();
});

test("names the masthead options toggle", async ({ page }) => {
await using testBed = await createTestBed();

await page.setViewportSize(MOBILE_VIEWPORT);
await login(page, testBed.realm);

await expect(page.getByTestId("options-kebab-toggle")).toHaveAccessibleName(
"Options",
);
});

test("leaves the persistent nav open on desktop viewports", async ({
page,
}) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1672,6 +1672,7 @@ authData=Authorization data
realmInfo=Realm info
chooseAPolicyType=Choose a policy type
signOut=Sign out
options=Options
deleteExecutorError=Could not delete executor\: {{error}}
userProfileError=Could not update user profile settings\: {{error}}
validatorDialogColNames.colName=Role name
Expand Down
6 changes: 6 additions & 0 deletions js/apps/admin-ui/test/masthead/main.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,12 @@ test.describe.serial("Masthead tests", () => {
await assertIsMobileView(page);
});

test("Mobile menu toggle has an accessible name", async ({ page }) => {
await expect(
page.getByTestId("options-kebab-toggle"),
).toHaveAccessibleName("Options");
});

test("Enable/disable help mode in mobile view", async ({ page }) => {
await assertIsMobileView(page);
await toggleUsernameDropdown(page);
Expand Down
3 changes: 3 additions & 0 deletions js/libs/ui-shared/src/masthead/KeycloakDropdown.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@ type KeycloakDropdownProps = Omit<DropdownProps, "toggle"> & {
"data-testid"?: string;
isKebab?: boolean;
title?: ReactNode;
toggleLabel?: string;
dropDownItems: ReactNode[];
};

export const KeycloakDropdown = ({
isKebab = false,
title,
toggleLabel,
dropDownItems,
...rest
}: KeycloakDropdownProps) => {
Expand All @@ -32,6 +34,7 @@ export const KeycloakDropdown = ({
toggle={(ref) => (
<MenuToggle
data-testid={`${rest["data-testid"]}-toggle`}
aria-label={toggleLabel}
ref={ref}
=> setOpen(!open)}
isExpanded={open}
Expand Down
1 change: 1 addition & 0 deletions js/libs/ui-shared/src/masthead/Masthead.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ const KeycloakMasthead = ({
<KeycloakDropdown
data-testid="options-kebab"
isKebab
toggleLabel={t("options")}
dropDownItems={[
...(kebabDropdownItems || dropdownItems),
extraItems,
Expand Down
Loading
0