litellm/tests/e2e/ui
yuneng-jiang 3c28f4bf1e
fix(ui): show the budget spend limit and rate limits without a collapsed section (#47662)
* fix(ui): show the budget spend limit and rate limits without a collapsed section

The create and edit budget dialogs hid max budget and reset period behind a collapsed Optional Settings section that sat 80px below the last field, and dropped both values from the request unless the section was open on submit

Both dialogs now share BudgetFormFields. Budget ID comes first, then the spend limit as one row ("$500 per month"), then the three rate limits as short fields beside their labels. A secondary Optional badge marks the spend limit and the rate limits group, so people can still tell those fields are optional. Every field is always submitted, and the edit dialog sends the existing spend limit and reset period back unchanged

* fix(ui): send only changed fields when editing a budget

Saving the edit budget dialog resent every field, so an unrelated rate
limit edit rounded a stored sub-cent spend limit to 2 decimals (0.001
became 0) and resent the reset period, which makes the proxy recompute
the next reset for custom durations. The dialog now sends the budget ID
plus the fields the user changed, and the proxy keeps everything else.

Also updates the budgets Playwright spec for the new field labels and
the removed Optional Settings section.

* fix(ui): track budget edit changes from render so a reverted field cannot hide a later one

react-hook-form's formState is a render-time snapshot. Reading dirtyFields
only inside the submit handler meant that after a field was changed and
changed back, a later edit to another field was missing from the first
save. Reading dirtyFields during render keeps the snapshot current.

* refactor(ui): rename the budget components to PascalCase

Renames budget_modal, edit_budget_modal and budget_panel (and their tests) to BudgetModal, EditBudgetModal and BudgetPanel, and drops their filename-pascal-case suppressions.
2026-10-20 17:58:05 -07:00
..
fixtures fix(ui): label Decisions playground issues by question key and fix the Response header row (#46145) 2026-10-14 10:47:05 -07:00
helpers feat(ui): redesign the playground chat around a single composer and inspector (#46934) 2026-10-16 14:04:36 -07:00
oidc fix(auth): give UI/CLI session tokens their own AES-GCM context and header-safe shape (#43790) 2026-09-29 18:42:24 -07:00
tests fix(ui): show the budget spend limit and rate limits without a collapsed section (#47662) 2026-10-20 17:58:05 -07:00
constants.ts test(e2e): wait for serving propagation in UI journeys 2026-09-11 10:25:43 -07:00
globalSetup.ts fix(security): remove the publicly known master key from the repo (#44718) 2026-10-06 10:55:24 -07:00
integration.config.ts test(ui): send Connection: close on every integration browser request (#46805) 2026-10-16 01:11:57 +00:00
migration.serverRootPath.config.ts ci: run every CircleCI check from the integration workflow (#45938) 2026-10-11 07:39:16 -07:00
migration.serverRootPath.globalSetup.ts test(e2e): move Admin UI Playwright suite to tests/e2e/ui (#34196) 2026-07-22 19:43:10 +00:00
oidcSetup.ts test: bind management E2E callers and isolate JWT actors 2026-09-12 13:29:04 -07:00
package-lock.json test(e2e-ui): check the MCP Tools tab against the upstream's own tools/list (#42397) 2026-09-21 20:35:30 -07:00
package.json test(e2e-ui): check the MCP Tools tab against the upstream's own tools/list (#42397) 2026-09-21 20:35:30 -07:00
playwright.config.ts fix(auth): give UI/CLI session tokens their own AES-GCM context and header-safe shape (#43790) 2026-09-29 18:42:24 -07:00
playwright.oidc.config.ts test: bind management E2E callers and isolate JWT actors 2026-09-12 13:29:04 -07:00
run_e2e.sh fix(security): remove the publicly known master key from the repo (#44718) 2026-10-06 10:55:24 -07:00
tsconfig.json test(e2e): move Admin UI Playwright suite to tests/e2e/ui (#34196) 2026-07-22 19:43:10 +00:00