...
1 package integration
2
3 import (
4 "bytes"
5 "fmt"
6 "net/http"
7 "testing"
8
9 "github.com/gin-gonic/gin"
10 "github.com/stretchr/testify/require"
11
12 "edge-infra.dev/pkg/lib/fog"
13 "edge-infra.dev/pkg/sds/emergencyaccess/authservice/server"
14 "edge-infra.dev/pkg/sds/emergencyaccess/authservice/setup"
15 "edge-infra.dev/pkg/sds/emergencyaccess/config"
16 "edge-infra.dev/test/f2"
17 "edge-infra.dev/test/f2/x/postgres"
18 )
19
20 func TestHealth(t *testing.T) {
21 var (
22 engine *gin.Engine
23 )
24
25 feat := f2.NewFeature("Health tests").
26 Setup("Create service", func(ctx f2.Context, t *testing.T) f2.Context {
27 var (
28 pg = postgres.FromContextT(ctx, t)
29 )
30
31
32 conf := setup.Config{
33 SQL: config.SQLConfig{
34 ConnectionName: pg.ConnectionName,
35 DatabaseName: pg.Database,
36 User: pg.User,
37 Password: pg.Password,
38 Host: pg.Host,
39 Port: fmt.Sprint(pg.Port),
40 Schema: pg.Schema(),
41 },
42 }
43
44 buf := new(bytes.Buffer)
45 log := fog.New(fog.To(buf))
46
47 re, checks, err := setup.CreateAuthservice(log, conf)
48 require.NoError(t, err)
49
50
51 gin.SetMode(gin.TestMode)
52 router := gin.New()
53
54 res := server.New(router, log, re, checks...)
55
56 engine = res.GinEngine
57 return ctx
58 }).
59 Test("Test health ok", func(ctx f2.Context, t *testing.T) f2.Context {
60 test := testCase{
61 url: "/health",
62 method: http.MethodGet,
63
64 expectedStatus: http.StatusOK,
65 expectedOut: StringEq("ok"),
66 }
67
68 return testEndpoint(ctx, t, engine, test)
69 }).
70 Feature()
71
72 f.Test(t, feat)
73 }
74
View as plain text