package sequel import ( "context" "fmt" "net/http" "net/http/httptest" "os" "testing" "time" "google.golang.org/api/option" ctrl "sigs.k8s.io/controller-runtime" "edge-infra.dev/pkg/edge/api/testutils/seededpostgres" "edge-infra.dev/pkg/edge/controllers/sequel/dbctl" "edge-infra.dev/pkg/lib/fog" "edge-infra.dev/test/f2" "edge-infra.dev/test/f2/x/ktest" ) var ( f f2.Framework svr *httptest.Server ) func TestMain(m *testing.M) { ctrl.SetLogger(fog.New()) f = f2.New( context.Background(), f2.WithExtensions( ktest.New( ktest.WithCtrlManager(createMgr), ktest.WithKonfigKonnector(), ), ), ). Setup(func(ctx f2.Context) (f2.Context, error) { k, err := ktest.FromContext(ctx) if err != nil { return ctx, err } if !*k.Env.UseExistingCluster { k.Timeout = 5 * time.Second k.Tick = 10 * time.Millisecond } databaseName := "sequel" databaseUser := "sequel4you" databasePassword := "123456" pg, err := seededpostgres.NewWithUser(databaseName, databaseUser, databasePassword) if err != nil { return ctx, err } conn, err := pg.DB() if err != nil { return ctx, err } svr = createSecretManagerTestServer() svr.Start() if err := registerControllers(ctx, k.Manager, &config{ host: "localhost", name: databaseName, user: databaseUser, password: databasePassword, db: dbctl.New(conn), namespace: k.Namespace, projectID: "ret-dev-sequel", concurrency: 5, }, option.WithEndpoint(svr.URL)); err != nil { return ctx, err } return ctx, nil }). Teardown(func(ctx f2.Context) (f2.Context, error) { svr.Close() return ctx, nil }) os.Exit(f.Run(m)) } func createSecretManagerTestServer() *httptest.Server { return httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Println(r.URL.String()) w.WriteHeader(200) })) }