package mcpserver

import (
	"context"
	"testing"

	"github.com/google/uuid"
	"github.com/modelcontextprotocol/go-sdk/mcp"

	"git.warky.dev/wdevs/amcs/internal/session"
)

func TestCleanupEventStoreSessionClosedClearsActiveProject(t *testing.T) {
	activeProjects := session.NewActiveProjects()
	activeProjects.Set("session-1", uuid.New())

	store := newCleanupEventStore(mcp.NewMemoryEventStore(nil), activeProjects.Clear)

	if _, ok := activeProjects.Get("session-1"); !ok {
		t.Fatal("active project missing before SessionClosed")
	}

	if err := store.SessionClosed(context.Background(), "session-1"); err != nil {
		t.Fatalf("SessionClosed() error = %v", err)
	}

	if _, ok := activeProjects.Get("session-1"); ok {
		t.Fatal("active project still present after SessionClosed")
	}
}
