nomadcode/services/core/internal/http/handlers_test.go
toki 424de604ee feat: plane integration and workflow updates
- Add plane adapter client with test coverage
- Add task external refs migration
- Update workflow service with tests
- Add HTTP handler tests
- Update router and middleware tests
- Update database models and queries
- Update scheduler jobs
- Update storage store
- Update server main and docker-compose
- Update roadmaps and documentation
2026-05-22 13:37:47 +09:00

69 lines
1.9 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",
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" {
t.Fatalf("unexpected metadata: %#v", metadata)
}
}