package schema

import (
	"testing"

	"github.com/stretchr/testify/require"
)

func TestValidateGraphPreservesUADomainStepID(t *testing.T) {
	graph := KnowledgeGraph{
		Version: "1.0.0", Project: ProjectMeta{Languages: []string{}, Frameworks: []string{}},
		Nodes: []GraphNode{
			{ID: "domain:orders", Type: "domain", Name: "Orders", Summary: "Orders", Tags: []string{"orders"}, Complexity: "simple"},
			{ID: "flow:create-order", Type: "flow", Name: "Create Order", Summary: "Create", Tags: []string{"create"}, Complexity: "simple"},
			{ID: "step:create-order:validate", Type: "step", Name: "Validate", FilePath: "orders.go", Summary: "Validate", Tags: []string{"validate"}, Complexity: "simple"},
		},
		Edges: []GraphEdge{
			{Source: "domain:orders", Target: "flow:create-order", Type: "contains_flow", Direction: "forward", Weight: 1},
			{Source: "flow:create-order", Target: "step:create-order:validate", Type: "flow_step", Direction: "forward", Weight: 0.1},
		}, Layers: []Layer{}, Tour: []TourStep{},
	}
	result := ValidateGraph(graph)
	require.True(t, result.Success, result.Fatal)
	require.Equal(t, "step:create-order:validate", result.Data.Nodes[2].ID)
	require.NoError(t, ValidateDomainGraph(*result.Data))
}
