refactor(client): group pages by entity and add scenario/step crud
- move environment, scenario, session pages into entity subdirs - add CreateScenarioPage and EditScenarioPage - add CreateStepPage and EditStepPage with order/type/session/code fields - add per-step edit and delete row actions on ScenarioDetailPage - add step api methods (get, create, update, remove) to api client - add sectionToolbar, formField, fieldLabel, textarea css utilities
This commit is contained in:
@@ -113,3 +113,42 @@ export const scenarios = {
|
||||
return request(`/scenarios/${scenarioId}/runs?page=${page}&limit=${limit}`);
|
||||
},
|
||||
};
|
||||
|
||||
// ── Scenario Steps ────────────────────────────────────────────────────────────
|
||||
|
||||
export interface CreateStepPayload {
|
||||
order: number;
|
||||
type: 'login' | 'exec' | 'sign';
|
||||
sessionName: string;
|
||||
execCode?: string;
|
||||
validateCode?: string;
|
||||
}
|
||||
|
||||
export interface UpdateStepPayload {
|
||||
order?: number;
|
||||
type?: 'login' | 'exec' | 'sign';
|
||||
sessionName?: string;
|
||||
execCode?: string;
|
||||
validateCode?: string;
|
||||
}
|
||||
|
||||
export const steps = {
|
||||
get(scenarioId: number, stepId: number): Promise<ScenarioStep> {
|
||||
return request(`/scenarios/${scenarioId}/steps/${stepId}`);
|
||||
},
|
||||
create(scenarioId: number, payload: CreateStepPayload): Promise<ScenarioStep> {
|
||||
return request(`/scenarios/${scenarioId}/steps`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify(payload),
|
||||
});
|
||||
},
|
||||
update(scenarioId: number, stepId: number, payload: UpdateStepPayload): Promise<ScenarioStep> {
|
||||
return request(`/scenarios/${scenarioId}/steps/${stepId}`, {
|
||||
method: 'PATCH',
|
||||
body: JSON.stringify(payload),
|
||||
});
|
||||
},
|
||||
remove(scenarioId: number, stepId: number): Promise<void> {
|
||||
return request(`/scenarios/${scenarioId}/steps/${stepId}`, { method: 'DELETE' });
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user