feat: add progression readiness api

This commit is contained in:
user
2026-04-26 16:39:19 +09:00
parent 600acf7303
commit a413f1ef15
16 changed files with 637 additions and 15 deletions

View File

@@ -10,13 +10,15 @@ import (
"tutor/internal/config"
"tutor/internal/interview"
"tutor/internal/learnermemory"
"tutor/internal/progression"
"tutor/internal/workflows"
)
func TestDiagnosticHTTPFlow(t *testing.T) {
memory := learnermemory.NewService(learnermemory.NewMemoryStore())
service := interview.NewService(interview.NewMemoryStore(), workflows.NewStubRunner(), memory)
handler := NewHandler(config.Config{Environment: "test", ModelKey: "deepseek-v4-flash"}, service, memory)
progress := progression.NewService(memory)
handler := NewHandler(config.Config{Environment: "test", ModelKey: "deepseek-v4-flash"}, service, memory, progress)
routes := handler.Routes()
createBody := bytes.NewBufferString(`{
@@ -93,4 +95,20 @@ func TestDiagnosticHTTPFlow(t *testing.T) {
if len(snapshot.Mastery) == 0 {
t.Fatal("expected mastery entries")
}
readinessReq := httptest.NewRequest(http.MethodGet, "/api/v1/learners/user-1/readiness-map", nil)
readinessRec := httptest.NewRecorder()
routes.ServeHTTP(readinessRec, readinessReq)
if readinessRec.Code != http.StatusOK {
t.Fatalf("readiness status = %d, body = %s", readinessRec.Code, readinessRec.Body.String())
}
challengeReq := httptest.NewRequest(http.MethodGet, "/api/v1/learners/user-1/next-challenge", nil)
challengeRec := httptest.NewRecorder()
routes.ServeHTTP(challengeRec, challengeReq)
if challengeRec.Code != http.StatusOK {
t.Fatalf("challenge status = %d, body = %s", challengeRec.Code, challengeRec.Body.String())
}
}