package commitintel_test

import (
	"testing"

	"bit.admedia.com/scm/ad/adpilot-indexing-commit-intel.com/internal/contracts/events"
	"bit.admedia.com/scm/ad/adpilot-indexing-commit-intel.com/internal/service/commitintel"
	"bit.admedia.com/scm/ad/adpilot-indexing-commit-intel.com/internal/store"
)

func TestCommitAnalysisReadyFromResult(t *testing.T) {
	deltaEvent := events.NewGraphDeltaReadyEvent(
		"evt_delta_01",
		"ad/example",
		"base1234567890",
		"target4567890ab",
		"delta_id",
		"file:///delta.json",
		"v1",
	)
	result := store.AnalysisResult{
		AnalysisID:      "analysis_ad_example_abc",
		RepoID:          "ad/example",
		CommitSHA:       "target4567890ab",
		ImpactedSymbols: []string{"Run"},
		ChangedFiles:    []string{"main.go"},
		Summary:         "1 files changed",
	}

	out := commitintel.CommitAnalysisReadyFromResult(deltaEvent, result)
	if out.AnalysisID != result.AnalysisID {
		t.Fatalf("analysis_id: got %q", out.AnalysisID)
	}
	if out.GraphSchemaVersion != "v1" {
		t.Fatalf("graph_schema_version: got %q", out.GraphSchemaVersion)
	}
	if len(out.ImpactedSymbols) != 1 {
		t.Fatal("expected impacted symbols on output event")
	}
}
