fix: resolve test failures after merge and add missing labels

- Fix tool-workshop test selectors to match component labels
- Fix API test mocks for axios client
- Add htmlFor attributes to form labels in tool-workshop
- Update type signatures to match API interfaces

Quality gates: 43/43 tests pass, typecheck pass, lint pass
This commit is contained in:
2026-05-22 21:15:06 +02:00
parent 6f35eb77ae
commit 99097090e6
4 changed files with 215 additions and 228 deletions
+20 -12
View File
@@ -5,7 +5,6 @@ import {
deleteToolType,
listToolTypes,
updateToolType,
validateToolType,
type CreateToolTypeRequest,
type ReadinessProbe,
type ToolType,
@@ -14,7 +13,6 @@ import {
import {
createToolConfig,
deleteToolConfig,
getToolConfigDefaults,
listToolConfigs,
updateToolConfig,
type CreateToolConfigRequest,
@@ -605,8 +603,9 @@ export const ToolWorkshopPage = () => {
</div>
<div className="form-group">
<label>Readiness Probe Command</label>
<label htmlFor="readiness-command">Readiness Probe Command</label>
<input
id="readiness-command"
type="text"
value={toolTypeForm.readiness_command}
onChange={(e) => setToolTypeForm({ ...toolTypeForm, readiness_command: e.target.value })}
@@ -617,8 +616,9 @@ export const ToolWorkshopPage = () => {
<div className="row" style={{ gap: "1rem" }}>
<div className="form-group" style={{ flex: 1 }}>
<label>Timeout (seconds)</label>
<label htmlFor="readiness-timeout">Timeout (seconds)</label>
<input
id="readiness-timeout"
type="number"
value={toolTypeForm.readiness_timeout}
onChange={(e) => setToolTypeForm({ ...toolTypeForm, readiness_timeout: e.target.value })}
@@ -626,8 +626,9 @@ export const ToolWorkshopPage = () => {
/>
</div>
<div className="form-group" style={{ flex: 1 }}>
<label>Interval (seconds)</label>
<label htmlFor="readiness-interval">Interval (seconds)</label>
<input
id="readiness-interval"
type="number"
value={toolTypeForm.readiness_interval}
onChange={(e) => setToolTypeForm({ ...toolTypeForm, readiness_interval: e.target.value })}
@@ -764,8 +765,9 @@ export const ToolWorkshopPage = () => {
)}
<div className="form-group">
<label>Value</label>
<label htmlFor="config-value">Value</label>
<textarea
id="config-value"
value={configForm.value}
onChange={(e) => setConfigForm({ ...configForm, value: e.target.value })}
placeholder={configForm.config_type === "env" ? "Enter value..." : "Enter file contents..."}
@@ -777,8 +779,9 @@ export const ToolWorkshopPage = () => {
<div className="row" style={{ gap: "1rem" }}>
<div className="form-group" style={{ flex: 1 }}>
<label>Port Override</label>
<label htmlFor="config-port-override">Port Override</label>
<input
id="config-port-override"
type="number"
value={configForm.port_override}
onChange={(e) => setConfigForm({ ...configForm, port_override: e.target.value })}
@@ -787,8 +790,9 @@ export const ToolWorkshopPage = () => {
/>
</div>
<div className="form-group" style={{ flex: 1 }}>
<label>Start Command</label>
<label htmlFor="config-start-command">Start Command</label>
<input
id="config-start-command"
type="text"
value={configForm.start_command}
onChange={(e) => setConfigForm({ ...configForm, start_command: e.target.value })}
@@ -918,8 +922,9 @@ export const ToolWorkshopPage = () => {
<h3>{selectedFolder ? "Edit" : "Create"} Config Folder</h3>
<form onSubmit={handleFolderSubmit} className="stack">
<div className="form-group">
<label>Name *</label>
<label htmlFor="folder-name">Name *</label>
<input
id="folder-name"
type="text"
value={folderForm.name}
onChange={(e) => setFolderForm({ ...folderForm, name: e.target.value })}
@@ -930,8 +935,9 @@ export const ToolWorkshopPage = () => {
</div>
<div className="form-group">
<label>Description</label>
<label htmlFor="folder-description">Description</label>
<input
id="folder-description"
type="text"
value={folderForm.description}
onChange={(e) => setFolderForm({ ...folderForm, description: e.target.value })}
@@ -941,8 +947,9 @@ export const ToolWorkshopPage = () => {
</div>
<div className="form-group">
<label>Mount Path *</label>
<label htmlFor="folder-mount-path">Mount Path *</label>
<input
id="folder-mount-path"
type="text"
value={folderForm.mount_path}
onChange={(e) => setFolderForm({ ...folderForm, mount_path: e.target.value })}
@@ -953,8 +960,9 @@ export const ToolWorkshopPage = () => {
</div>
<div className="form-group">
<label>Files (JSON object)</label>
<label htmlFor="folder-files">Files (JSON object)</label>
<textarea
id="folder-files"
value={folderForm.files_json}
onChange={(e) => setFolderForm({ ...folderForm, files_json: e.target.value })}
placeholder='{".zshrc": "export ZSH=...", ".gitconfig": "[user]\\nname = ..."}'