refactor: api tests
ci/woodpecker/push/govulncheck Pipeline was successful Details
ci/woodpecker/push/test Pipeline was successful Details

This commit is contained in:
Dawid Wysokiński 2024-03-07 07:01:52 +01:00
parent eb2c19cc8a
commit 660fee7ddc
Signed by: Kichiyaki
GPG Key ID: B5445E357FB8B892
6 changed files with 22 additions and 45 deletions

View File

@ -1349,7 +1349,7 @@ func TestGetPlayer(t *testing.T) {
t.Parallel()
handler := newAPIHTTPHandler(t)
player := randPlayer(t, handler)
player := randSliceElement(getAllPlayers(t, handler))
tests := []struct {
name string
@ -1563,9 +1563,3 @@ func getAllPlayers(tb testing.TB, h http.Handler) []playerWithServer {
return players
}
func randPlayer(tb testing.TB, h http.Handler) playerWithServer {
tb.Helper()
players := getAllPlayers(tb, h)
return players[gofakeit.IntRange(0, len(players)-1)]
}

View File

@ -441,7 +441,7 @@ func TestGetServer(t *testing.T) {
t.Parallel()
handler := newAPIHTTPHandler(t)
server := randServer(t, handler)
server := randSliceElement(getAllServers(t, handler))
tests := []struct {
name string
@ -582,7 +582,7 @@ func TestGetServerConfig(t *testing.T) {
t.Parallel()
handler := newAPIHTTPHandler(t)
server := randServer(t, handler)
server := randSliceElement(getAllServers(t, handler))
tests := []struct {
name string
@ -689,7 +689,7 @@ func TestGetServerUnitInfo(t *testing.T) {
t.Parallel()
handler := newAPIHTTPHandler(t)
server := randServer(t, handler)
server := randSliceElement(getAllServers(t, handler))
tests := []struct {
name string
@ -796,7 +796,7 @@ func TestGetServerBuildingInfo(t *testing.T) {
t.Parallel()
handler := newAPIHTTPHandler(t)
server := randServer(t, handler)
server := randSliceElement(getAllServers(t, handler))
tests := []struct {
name string
@ -905,15 +905,11 @@ type serverWithVersion struct {
func getAllServers(tb testing.TB, h http.Handler) []serverWithVersion {
tb.Helper()
respVersions := doRequest(h, http.MethodGet, endpointListVersions, nil)
defer respVersions.Body.Close()
require.Equal(tb, http.StatusOK, respVersions.StatusCode)
bodyVersions := decodeJSON[apimodel.ListVersionsResponse](tb, respVersions.Body)
require.NotEmpty(tb, bodyVersions.Data)
versions := getAllVersions(tb, h)
var servers []serverWithVersion
for _, v := range bodyVersions.Data {
for _, v := range versions {
respServers := doRequest(h, http.MethodGet, fmt.Sprintf(endpointListServers, v.Code), nil)
require.Equal(tb, http.StatusOK, respServers.StatusCode)
@ -932,9 +928,3 @@ func getAllServers(tb testing.TB, h http.Handler) []serverWithVersion {
return servers
}
func randServer(tb testing.TB, h http.Handler) serverWithVersion {
tb.Helper()
servers := getAllServers(tb, h)
return servers[gofakeit.IntRange(0, len(servers)-1)]
}

View File

@ -13,6 +13,7 @@ import (
"gitea.dwysokinski.me/twhelp/corev3/internal/app"
"gitea.dwysokinski.me/twhelp/corev3/internal/bun/buntest"
"gitea.dwysokinski.me/twhelp/corev3/internal/port"
"github.com/brianvoe/gofakeit/v7"
"github.com/stretchr/testify/require"
)
@ -64,3 +65,7 @@ func decodeJSON[T any](tb testing.TB, r io.Reader) T {
require.NoError(tb, json.NewDecoder(r).Decode(&res))
return res
}
func randSliceElement[S ~[]E, E any](s S) E {
return s[gofakeit.IntRange(0, len(s)-1)]
}

View File

@ -722,7 +722,7 @@ func TestGetTribe(t *testing.T) {
t.Parallel()
handler := newAPIHTTPHandler(t)
tribe := randTribe(t, handler)
tribe := randSliceElement(getAllTribes(t, handler))
tests := []struct {
name string
@ -936,9 +936,3 @@ func getAllTribes(tb testing.TB, h http.Handler) []tribeWithServer {
return tribes
}
func randTribe(tb testing.TB, h http.Handler) tribeWithServer {
tb.Helper()
tribes := getAllTribes(tb, h)
return tribes[gofakeit.IntRange(0, len(tribes)-1)]
}

View File

@ -325,7 +325,7 @@ func TestGetVersion(t *testing.T) {
t.Parallel()
handler := newAPIHTTPHandler(t)
version := randVersion(t, handler)
version := randSliceElement(getAllVersions(t, handler))
tests := []struct {
name string
@ -429,12 +429,12 @@ func TestGetVersion(t *testing.T) {
}
}
func randVersion(tb testing.TB, h http.Handler) apimodel.Version {
func getAllVersions(tb testing.TB, h http.Handler) []apimodel.Version {
tb.Helper()
resp := doRequest(h, http.MethodGet, endpointListVersions, nil)
defer resp.Body.Close()
require.Equal(tb, http.StatusOK, resp.StatusCode)
body := decodeJSON[apimodel.ListVersionsResponse](tb, resp.Body)
require.NotEmpty(tb, body.Data)
return body.Data[gofakeit.IntRange(0, len(body.Data)-1)]
respVersions := doRequest(h, http.MethodGet, endpointListVersions, nil)
defer respVersions.Body.Close()
require.Equal(tb, http.StatusOK, respVersions.StatusCode)
bodyVersions := decodeJSON[apimodel.ListVersionsResponse](tb, respVersions.Body)
require.NotEmpty(tb, bodyVersions.Data)
return bodyVersions.Data
}

View File

@ -496,7 +496,7 @@ func TestGetVillage(t *testing.T) {
t.Parallel()
handler := newAPIHTTPHandler(t)
village := randVillage(t, handler)
village := randSliceElement(getAllVillages(t, handler))
tests := []struct {
name string
@ -710,9 +710,3 @@ func getAllVillages(tb testing.TB, h http.Handler) []villageWithServer {
return villages
}
func randVillage(tb testing.TB, h http.Handler) villageWithServer {
tb.Helper()
villages := getAllVillages(tb, h)
return villages[gofakeit.IntRange(0, len(villages)-1)]
}