...

Source file src/edge-infra.dev/pkg/sds/emergencyaccess/authservice/integration/health_test.go

Documentation: edge-infra.dev/pkg/sds/emergencyaccess/authservice/integration

     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  			// Dataset setup
    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  			// Server Setup
    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