feat: add diagnostic interview loop

This commit is contained in:
user
2026-04-26 16:24:35 +09:00
parent 0e232ff405
commit 4a4240fea2
21 changed files with 926 additions and 23 deletions

View File

@@ -6,7 +6,7 @@ import (
"testing"
)
func TestStubRunnerReturnsTypedNotImplemented(t *testing.T) {
func TestStubRunnerDiagnoseReturnsTypedNotImplemented(t *testing.T) {
runner := NewStubRunner()
_, err := runner.DiagnoseJobSeeker(context.Background(), DiagnosticInput{
@@ -19,3 +19,28 @@ func TestStubRunnerReturnsTypedNotImplemented(t *testing.T) {
t.Fatalf("err = %v, want %v", err, ErrNotImplemented)
}
}
func TestStubRunnerGradesAnswer(t *testing.T) {
runner := NewStubRunner()
grade, err := runner.GradeInterviewAnswer(context.Background(), GradeAnswerInput{
QuestionID: "q-1",
AnswerID: "a-1",
AnswerText: "Indexes can speed reads by helping the database find rows, but they add write overhead.",
Concepts: []ConceptRef{
{ID: "database-indexes", Label: "Database indexes", Track: "backend-developer"},
},
})
if err != nil {
t.Fatalf("GradeInterviewAnswer error: %v", err)
}
if grade.AnswerID != "a-1" {
t.Fatalf("AnswerID = %q", grade.AnswerID)
}
if len(grade.Concepts) != 1 {
t.Fatalf("concepts = %d, want 1", len(grade.Concepts))
}
if len(grade.Evidence) != 1 {
t.Fatalf("evidence = %d, want 1", len(grade.Evidence))
}
}