FILE / ScuroNeko/mtg

network/v2/base_http_test.go

Исходный файл и его история в репозитории.
FILE 94e4179fb724eabf530a799d7968cea911458052
Files
mtg/network/v2/base_http_test.go
T

50 lines
1.0 KiB
Go

package network_test
import (
"io"
"net/http"
"net/http/httptest"
"testing"
"github.com/9seconds/mtg/v2/network/v2"
"github.com/stretchr/testify/suite"
)
type BaseHTTPTestSuite struct {
suite.Suite
http *httptest.Server
client *http.Client
}
func (suite *BaseHTTPTestSuite) SetupSuite() {
suite.http = httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
w.Write([]byte(r.Header.Get("User-Agent"))) //nolint: errcheck
}))
}
func (suite *BaseHTTPTestSuite) SetupTest() {
suite.client = network.New(nil, "mtg/1", 0, 0, 0).MakeHTTPClient(nil)
}
func (suite *BaseHTTPTestSuite) TestGet() {
resp, err := suite.client.Get(suite.http.URL)
suite.NoError(err)
defer resp.Body.Close() //nolint: errcheck
data, err := io.ReadAll(resp.Body)
suite.NoError(err)
suite.Equal("mtg/1", string(data))
}
func (suite *BaseHTTPTestSuite) TearDownSuite() {
suite.http.Close()
}
func TestBaseHTTP(t *testing.T) {
t.Parallel()
suite.Run(t, &BaseHTTPTestSuite{})
}