Merge pull request #668 from mirumee/fix/menu-testing-context

Add static test id to the menu items
This commit is contained in:
M.Graczyk 2020-08-25 11:51:49 +02:00 committed by GitHub
commit c86206d35f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 5 deletions

View file

@ -258,7 +258,8 @@ const MenuList: React.FC<MenuListProps> = props => {
[classes.menuListItemActive]: isAnyChildActive [classes.menuListItemActive]: isAnyChildActive
})} })}
key={menuItem.label} key={menuItem.label}
data-testid={menuItem.label.toLowerCase()} data-testid={menuItem.testingContextId}
data-test="menuItemEntry"
> >
<div <div
className={classNames(classes.menuItemHover, { className={classNames(classes.menuItemHover, {
@ -266,7 +267,6 @@ const MenuList: React.FC<MenuListProps> = props => {
menuItem.ariaLabel === activeSubMenu.label && menuItem.ariaLabel === activeSubMenu.label &&
activeSubMenu.isActive activeSubMenu.isActive
})} })}
data-test={menuItem.label}
onClick={() => handleSubMenu(menuItem.ariaLabel)} onClick={() => handleSubMenu(menuItem.ariaLabel)}
> >
<SVG <SVG
@ -313,6 +313,8 @@ const MenuList: React.FC<MenuListProps> = props => {
href={createHref(menuItem.url)} href={createHref(menuItem.url)}
onClick={event => closeSubMenu(menuItem.url, event)} onClick={event => closeSubMenu(menuItem.url, event)}
key={menuItem.label} key={menuItem.label}
data-testid={menuItem.testingContextId}
data-test="menuItemEntry"
> >
<div className={classes.menuItemHover}> <div className={classes.menuItemHover}>
<SVG <SVG

View file

@ -24,6 +24,7 @@ export interface IMenuItem {
icon?: any; icon?: any;
label: string; label: string;
permission?: PermissionEnum; permission?: PermissionEnum;
testingContextId: string;
url?: string; url?: string;
} }
@ -33,6 +34,7 @@ function createMenuStructure(intl: IntlShape): IMenuItem[] {
ariaLabel: "home", ariaLabel: "home",
icon: homeIcon, icon: homeIcon,
label: intl.formatMessage(sectionNames.home), label: intl.formatMessage(sectionNames.home),
testingContextId: "home",
url: "/" url: "/"
}, },
{ {
@ -41,22 +43,26 @@ function createMenuStructure(intl: IntlShape): IMenuItem[] {
{ {
ariaLabel: "products", ariaLabel: "products",
label: intl.formatMessage(sectionNames.products), label: intl.formatMessage(sectionNames.products),
testingContextId: "products",
url: productListUrl() url: productListUrl()
}, },
{ {
ariaLabel: "categories", ariaLabel: "categories",
label: intl.formatMessage(sectionNames.categories), label: intl.formatMessage(sectionNames.categories),
testingContextId: "categories",
url: categoryListUrl() url: categoryListUrl()
}, },
{ {
ariaLabel: "collections", ariaLabel: "collections",
label: intl.formatMessage(sectionNames.collections), label: intl.formatMessage(sectionNames.collections),
testingContextId: "collections",
url: collectionListUrl() url: collectionListUrl()
} }
], ],
icon: catalogIcon, icon: catalogIcon,
label: intl.formatMessage(commonMessages.catalog), label: intl.formatMessage(commonMessages.catalog),
permission: PermissionEnum.MANAGE_PRODUCTS permission: PermissionEnum.MANAGE_PRODUCTS,
testingContextId: "catalogue"
}, },
{ {
ariaLabel: "orders", ariaLabel: "orders",
@ -65,24 +71,28 @@ function createMenuStructure(intl: IntlShape): IMenuItem[] {
ariaLabel: "orders", ariaLabel: "orders",
label: intl.formatMessage(sectionNames.orders), label: intl.formatMessage(sectionNames.orders),
permission: PermissionEnum.MANAGE_ORDERS, permission: PermissionEnum.MANAGE_ORDERS,
testingContextId: "orders",
url: orderListUrl() url: orderListUrl()
}, },
{ {
ariaLabel: "order drafts", ariaLabel: "order drafts",
label: intl.formatMessage(commonMessages.drafts), label: intl.formatMessage(commonMessages.drafts),
permission: PermissionEnum.MANAGE_ORDERS, permission: PermissionEnum.MANAGE_ORDERS,
testingContextId: "order drafts",
url: orderDraftListUrl() url: orderDraftListUrl()
} }
], ],
icon: ordersIcon, icon: ordersIcon,
label: intl.formatMessage(sectionNames.orders), label: intl.formatMessage(sectionNames.orders),
permission: PermissionEnum.MANAGE_ORDERS permission: PermissionEnum.MANAGE_ORDERS,
testingContextId: "orders"
}, },
{ {
ariaLabel: "customers", ariaLabel: "customers",
icon: customerIcon, icon: customerIcon,
label: intl.formatMessage(sectionNames.customers), label: intl.formatMessage(sectionNames.customers),
permission: PermissionEnum.MANAGE_USERS, permission: PermissionEnum.MANAGE_USERS,
testingContextId: "customers",
url: customerListUrl() url: customerListUrl()
}, },
@ -92,23 +102,27 @@ function createMenuStructure(intl: IntlShape): IMenuItem[] {
{ {
ariaLabel: "sales", ariaLabel: "sales",
label: intl.formatMessage(sectionNames.sales), label: intl.formatMessage(sectionNames.sales),
testingContextId: "sales",
url: saleListUrl() url: saleListUrl()
}, },
{ {
ariaLabel: "vouchers", ariaLabel: "vouchers",
label: intl.formatMessage(sectionNames.vouchers), label: intl.formatMessage(sectionNames.vouchers),
testingContextId: "vouchers",
url: voucherListUrl() url: voucherListUrl()
} }
], ],
icon: discountsIcon, icon: discountsIcon,
label: intl.formatMessage(commonMessages.discounts), label: intl.formatMessage(commonMessages.discounts),
permission: PermissionEnum.MANAGE_DISCOUNTS permission: PermissionEnum.MANAGE_DISCOUNTS,
testingContextId: "discounts"
}, },
{ {
ariaLabel: "apps", ariaLabel: "apps",
icon: appsIcon, icon: appsIcon,
label: intl.formatMessage(sectionNames.apps), label: intl.formatMessage(sectionNames.apps),
permission: PermissionEnum.MANAGE_APPS, permission: PermissionEnum.MANAGE_APPS,
testingContextId: "apps",
url: appsListPath url: appsListPath
}, },
{ {
@ -116,6 +130,7 @@ function createMenuStructure(intl: IntlShape): IMenuItem[] {
icon: translationIcon, icon: translationIcon,
label: intl.formatMessage(sectionNames.translations), label: intl.formatMessage(sectionNames.translations),
permission: PermissionEnum.MANAGE_TRANSLATIONS, permission: PermissionEnum.MANAGE_TRANSLATIONS,
testingContextId: "translations",
url: languageListUrl url: languageListUrl
} }
]; ];