package http import ( "encoding/json" "testing" "github.com/nomadcode/nomadcode-core/internal/adapters/plane" ) func TestBuildPlaneCreateTaskInputUsesCommentBeforeDescription(t *testing.T) { input, err := buildPlaneCreateTaskInput(createPlaneTaskRequest{ WorkspaceSlug: "general", ProjectID: "project-1", WorkItemID: "work-1", Comment: "operator instruction", }, plane.WorkItem{ ID: "work-1", Name: "Fix issue", DescriptionStripped: "plane description", }) if err != nil { t.Fatalf("buildPlaneCreateTaskInput returned error: %v", err) } if input.Title != "Fix issue" { t.Fatalf("unexpected title: %q", input.Title) } if input.Source != "plane" { t.Fatalf("unexpected source: %q", input.Source) } var payload map[string]any if err := json.Unmarshal(input.Payload, &payload); err != nil { t.Fatalf("decode payload: %v", err) } if payload["message"] != "operator instruction" { t.Fatalf("unexpected message: %#v", payload) } } func TestBuildPlaneCreateTaskInputStoresExternalMetadata(t *testing.T) { input, err := buildPlaneCreateTaskInput(createPlaneTaskRequest{ WorkspaceSlug: "general", ProjectID: "project-1", WorkItemID: "work-1", StateID: "state-1", ExternalURL: "https://plane.example/work-1", }, plane.WorkItem{ ID: "work-1", Name: "Fix issue", }) if err != nil { t.Fatalf("buildPlaneCreateTaskInput returned error: %v", err) } if input.External == nil { t.Fatal("expected external ref") } if input.External.Provider != "plane" || input.External.ID != "work-1" { t.Fatalf("unexpected external ref: %#v", input.External) } var metadata map[string]string if err := json.Unmarshal(input.External.Metadata, &metadata); err != nil { t.Fatalf("decode metadata: %v", err) } if metadata["workspace_slug"] != "general" || metadata["project_id"] != "project-1" || metadata["work_item_id"] != "work-1" || metadata["state_id"] != "state-1" { t.Fatalf("unexpected metadata: %#v", metadata) } }