Add a per-row "Test" button to the external MCP servers list so admins can
check a server's connection straight from the list, without opening the edit
modal.
- Extract each list row into its own AiMcpServerRow component, each owning a
dedicated useTestAiMcpServerMutation instance. This isolates loading/result
state per row — a single list-level mutation would make every row's spinner
and colour jump on any test.
- Button reflects the outcome with both colour AND label (a11y / colour-blind
safe): idle "Test", loading, green "OK · {n}" (tool count), red "Failed".
Fixed miw so the row does not jump as the label changes. A tooltip surfaces
the tools list (success) or the sanitized error (failure).
- Reset the mutation when url/transport/hasHeaders change so a stale result
does not stick on the non-remounting (keyed-by-id) row.
- Reuse the existing /workspace/ai-mcp-servers/test endpoint and mutation;
backend/service/query unchanged.
- i18n: add "Failed" and "OK · {{count}}" (en + ru); add the missing "Test"
key to ru-RU.
- Add a vitest suite covering idle/success/failure states and per-row
isolation.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
75 KiB
75 KiB