...

Source file src/edge-infra.dev/pkg/edge/controllers/sequel/controller_test.go

Documentation: edge-infra.dev/pkg/edge/controllers/sequel

     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