diff --git a/src/components/mika/skills/SkillTestPanel.tsx b/src/components/mika/skills/SkillTestPanel.tsx index 98d9ddb..2039430 100644 --- a/src/components/mika/skills/SkillTestPanel.tsx +++ b/src/components/mika/skills/SkillTestPanel.tsx @@ -78,30 +78,28 @@ export function SkillTestPanel({ mutationFn: async (): Promise => { if (stateless) { // Modo preview sem persistĂȘncia: chama AI direto via edge function - const start = Date.now(); - const { data, error } = await supabase.functions.invoke("test-skill-dry-run", { - body: { skill_version_id: skillVersionId, test_input: input }, - }); - if (error) { - return { - status: "error", - duration_ms: Date.now() - start, - error_message: error.message, - }; - } - return data as TestResult; + const runTest = useMutation({ + mutationFn: async (): Promise => { + const start = Date.now(); + const requestBody: Record = { test_input: input }; + if (stateless) { + requestBody.markdown_content = stateless.markdown_content; + } else { + requestBody.skill_version_id = skillVersionId; } const { data, error } = await supabase.functions.invoke("test-skill-dry-run", { - body: { skill_version_id: skillVersionId, test_input: input }, + body: requestBody, }); - if (error) throw new Error(error.message); + if (error) { + return { + status: "error", + duration_ms: Date.now() - start, + error_message: error.message, + }; + } return data as TestResult; }, - onSuccess: (r) => { - setResult(r); - qc.invalidateQueries({ queryKey: ["skill-test-runs", skillVersionId] }); - }, - onError: (e: unknown) => { + setResult({ status: "error", duration_ms: 0,