...
1 package sequel
2
3 import (
4 "context"
5 "fmt"
6 "net/http"
7 "net/http/httptest"
8 "os"
9 "testing"
10 "time"
11
12 "google.golang.org/api/option"
13 ctrl "sigs.k8s.io/controller-runtime"
14
15 "edge-infra.dev/pkg/edge/api/testutils/seededpostgres"
16 "edge-infra.dev/pkg/edge/controllers/sequel/dbctl"
17 "edge-infra.dev/pkg/lib/fog"
18 "edge-infra.dev/test/f2"
19 "edge-infra.dev/test/f2/x/ktest"
20 )
21
22 var (
23 f f2.Framework
24 svr *httptest.Server
25 )
26
27 func TestMain(m *testing.M) {
28 ctrl.SetLogger(fog.New())
29
30 f = f2.New(
31 context.Background(),
32 f2.WithExtensions(
33 ktest.New(
34 ktest.WithCtrlManager(createMgr),
35 ktest.WithKonfigKonnector(),
36 ),
37 ),
38 ).
39 Setup(func(ctx f2.Context) (f2.Context, error) {
40 k, err := ktest.FromContext(ctx)
41 if err != nil {
42 return ctx, err
43 }
44
45 if !*k.Env.UseExistingCluster {
46 k.Timeout = 5 * time.Second
47 k.Tick = 10 * time.Millisecond
48 }
49
50 databaseName := "sequel"
51 databaseUser := "sequel4you"
52 databasePassword := "123456"
53
54 pg, err := seededpostgres.NewWithUser(databaseName, databaseUser, databasePassword)
55 if err != nil {
56 return ctx, err
57 }
58 conn, err := pg.DB()
59 if err != nil {
60 return ctx, err
61 }
62
63 svr = createSecretManagerTestServer()
64 svr.Start()
65
66 if err := registerControllers(ctx, k.Manager, &config{
67 host: "localhost",
68 name: databaseName,
69 user: databaseUser,
70 password: databasePassword,
71 db: dbctl.New(conn),
72 namespace: k.Namespace,
73 projectID: "ret-dev-sequel",
74 concurrency: 5,
75 }, option.WithEndpoint(svr.URL)); err != nil {
76 return ctx, err
77 }
78
79 return ctx, nil
80 }).
81 Teardown(func(ctx f2.Context) (f2.Context, error) {
82 svr.Close()
83 return ctx, nil
84 })
85
86 os.Exit(f.Run(m))
87 }
88
89 func createSecretManagerTestServer() *httptest.Server {
90 return httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
91 fmt.Println(r.URL.String())
92 w.WriteHeader(200)
93 }))
94 }
95
View as plain text