71 lines
2 KiB
Go
71 lines
2 KiB
Go
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)
|
|
}
|
|
}
|