(t *testing.T)
| 1413 | } |
| 1414 | |
| 1415 | func TestProjectNotFound_Returns404(t *testing.T) { |
| 1416 | defaultDir := createTestTaskDir(t) |
| 1417 | defaultDP := NewDataProvider(defaultDir, false) |
| 1418 | resolver := NewProjectResolver(func(_ string) (string, []PhaseInfo, error) { |
| 1419 | return "", nil, ErrProjectNotFound |
| 1420 | }, false) |
| 1421 | |
| 1422 | handler := setupProjectMiddleware(resolver, handleTasks(defaultDP)) |
| 1423 | |
| 1424 | req := httptest.NewRequest(http.MethodGet, "/api/tasks?project=nonexistent", nil) |
| 1425 | rec := httptest.NewRecorder() |
| 1426 | handler.ServeHTTP(rec, req) |
| 1427 | |
| 1428 | if rec.Code != http.StatusNotFound { |
| 1429 | t.Fatalf("expected 404, got %d: %s", rec.Code, rec.Body.String()) |
| 1430 | } |
| 1431 | |
| 1432 | var errResp ErrorResponse |
| 1433 | if err := json.Unmarshal(rec.Body.Bytes(), &errResp); err != nil { |
| 1434 | t.Fatalf("invalid JSON: %v", err) |
| 1435 | } |
| 1436 | if !strings.Contains(errResp.Error, "nonexistent") { |
| 1437 | t.Fatalf("expected error to mention project id, got %q", errResp.Error) |
| 1438 | } |
| 1439 | } |
| 1440 | |
| 1441 | func TestHandleConfig_WithProject(t *testing.T) { |
| 1442 | defaultPhases := []PhaseInfo{{ID: "default-phase", Name: "Default Phase"}} |
nothing calls this directly
no test coverage detected