diff --git a/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/client_scopes/client_scope_details/tabs/mappers/MapperDetailsPage.ts b/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/client_scopes/client_scope_details/tabs/mappers/MapperDetailsPage.ts index 951f4d7cb7d..6f4b42a2c25 100644 --- a/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/client_scopes/client_scope_details/tabs/mappers/MapperDetailsPage.ts +++ b/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/client_scopes/client_scope_details/tabs/mappers/MapperDetailsPage.ts @@ -10,7 +10,7 @@ export enum ClaimJsonType { export default class MapperDetailsPage extends CommonPage { #userAttributeInput = '[data-testid="config.user🍺attribute"]'; - #tokenClaimNameInput = '[id="claim.name"]'; + #tokenClaimNameInput = '[data-testid="claim.name"]'; #claimJsonType = '[id="jsonType.label"]'; fillUserAttribute(userAttribute: string) { diff --git a/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/realm_settings/RealmSettingsPage.ts b/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/realm_settings/RealmSettingsPage.ts index 1f7cac1f1a3..061f9be5229 100644 --- a/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/realm_settings/RealmSettingsPage.ts +++ b/js/apps/admin-ui/cypress/support/pages/admin-ui/manage/realm_settings/RealmSettingsPage.ts @@ -207,7 +207,7 @@ export default class RealmSettingsPage extends CommonPage { #availablePeriodExecutorFld = "available-period"; #editExecutorBtn = '[aria-label="Executors"] > li > div:first-child [data-testid="editExecutor"]'; - #executorAvailablePeriodInput = "#available-period"; + #executorAvailablePeriodInput = "[data-testid='available-period']"; #listingPage = new ListingPage(); #addCondition = "addCondition"; diff --git a/js/apps/admin-ui/src/components/dynamic/StringComponent.tsx b/js/apps/admin-ui/src/components/dynamic/StringComponent.tsx index 3da266c1a81..7bff36d3fa1 100644 --- a/js/apps/admin-ui/src/components/dynamic/StringComponent.tsx +++ b/js/apps/admin-ui/src/components/dynamic/StringComponent.tsx @@ -1,8 +1,5 @@ -import { FormGroup, TextInput } from "@patternfly/react-core"; -import { useFormContext } from "react-hook-form"; +import { TextControl } from "@keycloak/keycloak-ui-shared"; import { useTranslation } from "react-i18next"; -import { HelpItem } from "@keycloak/keycloak-ui-shared"; - import { convertToName } from "./DynamicComponents"; import type { ComponentProps } from "./components"; @@ -10,27 +7,17 @@ export const StringComponent = ({ name, label, helpText, - defaultValue, - isDisabled = false, - required, + ...props }: ComponentProps) => { const { t } = useTranslation(); - const { register } = useFormContext(); return ( - } - fieldId={name!} - isRequired={required} - > - - + helperText={t(helpText!)} + data-testid={name} + {...props} + /> ); }; diff --git a/js/libs/ui-shared/src/controls/TextControl.tsx b/js/libs/ui-shared/src/controls/TextControl.tsx index b29e10f6901..668ec2868b9 100644 --- a/js/libs/ui-shared/src/controls/TextControl.tsx +++ b/js/libs/ui-shared/src/controls/TextControl.tsx @@ -26,6 +26,7 @@ export type TextControlProps< labelIcon?: string | ReactNode; isDisabled?: boolean; helperText?: string; + "data-testid"?: string; }; export const TextControl = < @@ -34,7 +35,7 @@ export const TextControl = < >( props: TextControlProps, ) => { - const { labelIcon, ...rest } = props; + const { labelIcon, helperText, ...rest } = props; const required = !!props.rules?.required; const defaultValue = props.defaultValue ?? ("" as PathValue); @@ -54,7 +55,7 @@ export const TextControl = < - {props.helperText && ( + {helperText && ( - {props.helperText} + {helperText} )}