package detectors_test

import (
	"testing"

	"bit.admedia.com/scm/ad/adpilot-indexing-code-parser.com/internal/service/parser/analyzers/common"
	"bit.admedia.com/scm/ad/adpilot-indexing-code-parser.com/internal/service/parser/analyzers/detectors"
)

func TestFastAPIDetector(t *testing.T) {
	source := []byte(`from fastapi import FastAPI
@app.get("/items")
def list_items():
    return []
`)
	b := common.NewBuilder("main.py", "python")
	ok := detectors.NewFastAPIDetector().Apply(detectors.Context{
		Source:   source,
		FilePath: "main.py",
		Language: "python",
		Builder:  b,
	})
	if !ok {
		t.Fatal("expected detector to match")
	}
	found := false
	for _, node := range b.Artifact().Nodes {
		if node.Metadata != nil && node.Metadata["route"] == "/items" {
			found = true
		}
	}
	if !found {
		t.Fatalf("nodes: %+v", b.Artifact().Nodes)
	}
}
