package mongo

import (
	"context"
	"testing"

	"bit.admedia.com/scm/ad/adpilot-indexing-commit-intel.com/internal/config"
)

func setupMongoStore(t *testing.T) (*Store, func()) {
	t.Helper()

	cfg := config.MongoConfig{
		URI:                  "mongodb://localhost:27018/adpilot_commit_intel_test",
		Database:             "adpilot_commit_intel_test",
		DeltasDatabase:       "adpilot_code_parser_test",
		IndexingRunsDatabase: "adpilot_repo_sync_test",
		IndexingRunsEnabled:  false,
	}

	store, err := New(cfg)
	if err != nil {
		t.Skipf("mongo not available: %v", err)
	}

	ctx := context.Background()
	if err := store.Ping(ctx); err != nil {
		_ = store.Close(ctx)
		t.Skipf("mongo not reachable: %v", err)
	}
	if err := store.EnsureIndexes(ctx); err != nil {
		_ = store.Close(ctx)
		t.Fatalf("EnsureIndexes: %v", err)
	}

	cleanup := func() {
		_ = store.Close(context.Background())
	}
	return store, cleanup
}
