synapsecns/sanguine

View on GitHub
core/ginhelper/server_test.go

Summary

Maintainability
A
0 mins
Test Coverage
package ginhelper_test

import (
    "github.com/google/uuid"
    . "github.com/stretchr/testify/assert"
    "github.com/synapsecns/sanguine/core/ginhelper"
    "github.com/temoto/robotstxt"
    _ "github.com/temoto/robotstxt"
    "net/http"
)

func (g *GinHelperSuite) TestRobots() {
    g.runOnAllURLs(func(url string) {
        getRequest, err := http.NewRequestWithContext(g.GetTestContext(), http.MethodGet, url+ginhelper.RobotsTxt, nil)
        Nil(g.T(), err)

        resp, err := http.DefaultClient.Do(getRequest)
        Nil(g.T(), err)
        defer func() {
            _ = resp.Body.Close()
        }()
        _, err = robotstxt.FromResponse(resp)
        Nil(g.T(), err)
    })
}

func (g *GinHelperSuite) TestHealth() {
    g.runOnAllURLs(func(url string) {
        getRequest, err := http.NewRequestWithContext(g.GetTestContext(), http.MethodGet, url+ginhelper.HealthCheck, nil)
        Nil(g.T(), err)

        resp, err := http.DefaultClient.Do(getRequest)
        defer func() {
            _ = resp.Body.Close()
        }()
        Nil(g.T(), err)
        Equal(g.T(), http.StatusOK, resp.StatusCode)
    })
}

func (g *GinHelperSuite) TestRequestID() {
    g.runOnAllURLs(func(url string) {
        getRequest, err := http.NewRequestWithContext(g.GetTestContext(), http.MethodGet, url, nil)
        Nil(g.T(), err)

        resp, err := http.DefaultClient.Do(getRequest)
        defer func() {
            _ = resp.Body.Close()
        }()
        Nil(g.T(), err)

        res := resp.Header.Get(ginhelper.RequestIDHeader)
        _, err = uuid.Parse(res)
        Nil(g.T(), err)
    })
}

// AssertContextWithFallback asserts that the context is set with the fallback value.
// this is required for using opentracing. Please use caution and ask @trajan0x before disabling.
func (g *GinHelperSuite) AssertContextWithFallback() {
    engine := ginhelper.New(g.logger)
    g.True(engine.ContextWithFallback)
}