diff --git a/.ai/workflow-contract.json b/.ai/workflow-contract.json index af6bceb..be948e2 100644 --- a/.ai/workflow-contract.json +++ b/.ai/workflow-contract.json @@ -45,7 +45,7 @@ "parent_issue": "The original feature issue. Tracks overall status. Only the parent gets status label transitions.", "sub_issue_title_format": "{type}: {summary} (#{parent_index})", "sub_issue_body": "First line must be 'Relates to #{parent_index}'. Each sub-issue is a self-contained unit of work.", - "sub_issue_labels": "status/backlog + same type/* as parent. Sub-issues stay in backlog; parent issue tracks status.", + "sub_issue_labels": "status/in-progress + same type/* as parent. Sub-issues move to in-progress as they are worked on.", "sub_issue_milestone": "Same sprint milestone as parent.", "rules": [ "ONE branch for the parent issue. Never create branches per sub-issue.", diff --git a/frontend/.claude/tdd-guard/data/test.json b/frontend/.claude/tdd-guard/data/test.json index 6d8590e..fd77c20 100644 --- a/frontend/.claude/tdd-guard/data/test.json +++ b/frontend/.claude/tdd-guard/data/test.json @@ -1,5 +1,116 @@ { - "testModules": [], + "testModules": [ + { + "moduleId": "/Users/egullickson/Documents/Technology/coding/motovaultpro/frontend/src/shared/components/CameraCapture/CameraCapture.test.tsx", + "tests": [ + { + "name": "shows loading state while requesting permission", + "fullName": "CameraCapture Permission handling shows loading state while requesting permission", + "state": "passed" + }, + { + "name": "shows error when permission denied", + "fullName": "CameraCapture Permission handling shows error when permission denied", + "state": "passed" + }, + { + "name": "shows error when camera unavailable", + "fullName": "CameraCapture Permission handling shows error when camera unavailable", + "state": "passed" + }, + { + "name": "shows viewfinder when camera access granted", + "fullName": "CameraCapture Viewfinder shows viewfinder when camera access granted", + "state": "passed" + }, + { + "name": "shows cancel button in viewfinder", + "fullName": "CameraCapture Viewfinder shows cancel button in viewfinder", + "state": "passed" + }, + { + "name": "calls onCancel when cancel button clicked", + "fullName": "CameraCapture Viewfinder calls onCancel when cancel button clicked", + "state": "passed" + }, + { + "name": "shows VIN guidance when guidanceType is vin", + "fullName": "CameraCapture Guidance overlay shows VIN guidance when guidanceType is vin", + "state": "passed" + }, + { + "name": "shows receipt guidance when guidanceType is receipt", + "fullName": "CameraCapture Guidance overlay shows receipt guidance when guidanceType is receipt", + "state": "passed" + }, + { + "name": "shows upload file button in viewfinder", + "fullName": "CameraCapture File fallback shows upload file button in viewfinder", + "state": "passed" + }, + { + "name": "switches to file fallback when upload file clicked", + "fullName": "CameraCapture File fallback switches to file fallback when upload file clicked", + "state": "passed" + }, + { + "name": "renders upload area", + "fullName": "FileInputFallback renders upload area", + "state": "passed" + }, + { + "name": "shows accepted formats", + "fullName": "FileInputFallback shows accepted formats", + "state": "passed" + }, + { + "name": "shows max file size", + "fullName": "FileInputFallback shows max file size", + "state": "passed" + }, + { + "name": "calls onCancel when cancel clicked", + "fullName": "FileInputFallback calls onCancel when cancel clicked", + "state": "passed" + }, + { + "name": "shows error for invalid file type", + "fullName": "FileInputFallback shows error for invalid file type", + "state": "passed" + }, + { + "name": "shows error for file too large", + "fullName": "FileInputFallback shows error for file too large", + "state": "passed" + }, + { + "name": "calls onFileSelect with valid file", + "fullName": "FileInputFallback calls onFileSelect with valid file", + "state": "passed" + }, + { + "name": "renders nothing when type is none", + "fullName": "GuidanceOverlay renders nothing when type is none", + "state": "passed" + }, + { + "name": "renders VIN guidance with correct description", + "fullName": "GuidanceOverlay renders VIN guidance with correct description", + "state": "passed" + }, + { + "name": "renders receipt guidance with correct description", + "fullName": "GuidanceOverlay renders receipt guidance with correct description", + "state": "passed" + }, + { + "name": "renders document guidance with correct description", + "fullName": "GuidanceOverlay renders document guidance with correct description", + "state": "passed" + } + ] + } + ], "unhandledErrors": [], - "reason": "failed" + "reason": "passed" } \ No newline at end of file