MCPcopy Create free account
hub / github.com/driangle/taskmd / TestParsePhasesConfig_FullConfig

Function TestParsePhasesConfig_FullConfig

apps/cli/internal/cli/validate_test.go:841–881  ·  view source on GitHub ↗

--- parsePhasesConfig tests ---

(t *testing.T)

Source from the content-addressed store, hash-verified

839// --- parsePhasesConfig tests ---
840
841func TestParsePhasesConfig_FullConfig(t *testing.T) {
842 raw := []any{
843 map[string]any{
844 "id": "core-cli",
845 "name": "v0.2",
846 "description": "Core CLI features",
847 "due": "2026-04-01",
848 },
849 map[string]any{
850 "id": "web-dashboard",
851 "name": "v0.3",
852 "description": "Web dashboard",
853 },
854 }
855
856 phases := parsePhasesConfig(raw)
857 if len(phases) != 2 {
858 t.Fatalf("expected 2 phases, got %d", len(phases))
859 }
860 if phases[0].ID != "core-cli" {
861 t.Errorf("ID = %q, want %q", phases[0].ID, "core-cli")
862 }
863 if phases[0].Name != "v0.2" {
864 t.Errorf("Name = %q, want %q", phases[0].Name, "v0.2")
865 }
866 if phases[0].Description != "Core CLI features" {
867 t.Errorf("Description = %q, want %q", phases[0].Description, "Core CLI features")
868 }
869 if phases[0].Due.IsZero() {
870 t.Error("expected non-zero due date for v0.2")
871 }
872 if phases[1].ID != "web-dashboard" {
873 t.Errorf("ID = %q, want %q", phases[1].ID, "web-dashboard")
874 }
875 if phases[1].Name != "v0.3" {
876 t.Errorf("Name = %q, want %q", phases[1].Name, "v0.3")
877 }
878 if !phases[1].Due.IsZero() {
879 t.Error("expected zero due date for v0.3 (no due set)")
880 }
881}
882
883func TestParsePhasesConfig_Nil(t *testing.T) {
884 phases := parsePhasesConfig(nil)

Callers

nothing calls this directly

Calls 2

parsePhasesConfigFunction · 0.85
ErrorMethod · 0.80

Tested by

no test coverage detected