litellm/ui/litellm-dashboard/scripts
Yuneng Jiang 7d15c5b6da
test(ui): query antd controls accessibly instead of by internal CSS class
Dashboard tests located controls through antd's own class names
(.ant-form-item, .ant-select-selector, .ant-select-item-option). Those
break when a page moves to shadcn without any behaviour changing, and
they miss regressions a user would notice.

Replace them with role, label, title and accessible icon-name queries
where antd exposes one, and add local/no-antd-class-selectors to keep
them out. The rule is enabled as an error at zero violations, so there is
no budget file and no suppressions baseline. It found eight more sites a
'.ant-' search missed, written as bare class names.

Eleven couplings remain and carry an inline suppression naming why:
antd puts role="option" only on a hidden mirror list, so the visible
options have no role, no aria-disabled and a tooltip in title; Skeleton
and the modal mask expose nothing at all; and one assertion's whole
purpose is that no antd modal renders.

7231 tests passed before, 7233 pass after: one conflated ModelSelector
case became three focused ones.
2026-08-15 01:41:24 -07:00
..
eslint-rules test(ui): query antd controls accessibly instead of by internal CSS class 2026-08-15 01:41:24 -07:00
check-lint-budgets.mjs chore(ui): remove eslint-metrics.json lint-count snapshot 2026-07-11 11:54:42 -07:00
gen-api-types.mjs feat(proxy): type Customer Management response_model for OpenAPI coverage (#31043) 2026-06-30 09:58:01 -07:00
generate_compliance_prompts.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
lint-budget-lib.mjs chore(ui): remove eslint-metrics.json lint-count snapshot 2026-07-11 11:54:42 -07:00