github.com/cozy/cozy-stack@v0.0.0-20240603063001-31110fa4cae1/web/status/status_test.go (about)

     1  package status
     2  
     3  import (
     4  	"net/http/httptest"
     5  	"testing"
     6  
     7  	"github.com/cozy/cozy-stack/pkg/config/config"
     8  	"github.com/cozy/cozy-stack/tests/testutils"
     9  	"github.com/cozy/cozy-stack/web/errors"
    10  	"github.com/labstack/echo/v4"
    11  )
    12  
    13  func TestStatus(t *testing.T) {
    14  	if testing.Short() {
    15  		t.Skip("an instance is required for this test: test skipped due to the use of --short flag")
    16  	}
    17  
    18  	config.UseTestFile(t)
    19  
    20  	t.Run("Routes", func(t *testing.T) {
    21  		handler := echo.New()
    22  		handler.HTTPErrorHandler = errors.ErrorHandler
    23  		Routes(handler.Group("/status"))
    24  
    25  		ts := httptest.NewServer(handler)
    26  		t.Cleanup(ts.Close)
    27  
    28  		e := testutils.CreateTestClient(t, ts.URL)
    29  
    30  		obj := e.GET("/status").
    31  			Expect().Status(200).
    32  			JSON().Object()
    33  
    34  		obj.ValueEqual("cache", "healthy")
    35  		obj.ValueEqual("couchdb", "healthy")
    36  		obj.ValueEqual("fs", "healthy")
    37  		obj.ValueEqual("status", "OK")
    38  		obj.ValueEqual("message", "OK")
    39  		latencies := obj.Value("latency").Object()
    40  		latencies.Value("cache").String().NotEmpty()
    41  		latencies.Value("couchdb").String().NotEmpty()
    42  		latencies.Value("fs").String().NotEmpty()
    43  	})
    44  }