package integration import ( "bytes" "fmt" "net/http" "testing" "github.com/gin-gonic/gin" "github.com/stretchr/testify/require" "edge-infra.dev/pkg/lib/fog" "edge-infra.dev/pkg/sds/emergencyaccess/authservice/server" "edge-infra.dev/pkg/sds/emergencyaccess/authservice/setup" "edge-infra.dev/pkg/sds/emergencyaccess/config" "edge-infra.dev/test/f2" "edge-infra.dev/test/f2/x/postgres" ) func TestHealth(t *testing.T) { var ( engine *gin.Engine ) feat := f2.NewFeature("Health tests"). Setup("Create service", func(ctx f2.Context, t *testing.T) f2.Context { var ( pg = postgres.FromContextT(ctx, t) ) // Dataset setup conf := setup.Config{ SQL: config.SQLConfig{ ConnectionName: pg.ConnectionName, DatabaseName: pg.Database, User: pg.User, Password: pg.Password, Host: pg.Host, Port: fmt.Sprint(pg.Port), Schema: pg.Schema(), }, } buf := new(bytes.Buffer) log := fog.New(fog.To(buf)) re, checks, err := setup.CreateAuthservice(log, conf) require.NoError(t, err) // Server Setup gin.SetMode(gin.TestMode) router := gin.New() res := server.New(router, log, re, checks...) engine = res.GinEngine return ctx }). Test("Test health ok", func(ctx f2.Context, t *testing.T) f2.Context { test := testCase{ url: "/health", method: http.MethodGet, expectedStatus: http.StatusOK, expectedOut: StringEq("ok"), } return testEndpoint(ctx, t, engine, test) }). Feature() f.Test(t, feat) }