From 660fee7ddc369570973561c68197159adeaa0828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Wysoki=C5=84ski?= Date: Thu, 7 Mar 2024 07:01:52 +0100 Subject: [PATCH] refactor: api tests --- internal/port/handler_http_api_player_test.go | 8 +------ internal/port/handler_http_api_server_test.go | 22 +++++-------------- internal/port/handler_http_api_test.go | 5 +++++ internal/port/handler_http_api_tribe_test.go | 8 +------ .../port/handler_http_api_version_test.go | 16 +++++++------- .../port/handler_http_api_village_test.go | 8 +------ 6 files changed, 22 insertions(+), 45 deletions(-) diff --git a/internal/port/handler_http_api_player_test.go b/internal/port/handler_http_api_player_test.go index e051f83..1ec7cba 100644 --- a/internal/port/handler_http_api_player_test.go +++ b/internal/port/handler_http_api_player_test.go @@ -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)] -} diff --git a/internal/port/handler_http_api_server_test.go b/internal/port/handler_http_api_server_test.go index 5484b7d..1185da2 100644 --- a/internal/port/handler_http_api_server_test.go +++ b/internal/port/handler_http_api_server_test.go @@ -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)] -} diff --git a/internal/port/handler_http_api_test.go b/internal/port/handler_http_api_test.go index 26f2044..6cfae14 100644 --- a/internal/port/handler_http_api_test.go +++ b/internal/port/handler_http_api_test.go @@ -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)] +} diff --git a/internal/port/handler_http_api_tribe_test.go b/internal/port/handler_http_api_tribe_test.go index 96cbc39..22940e4 100644 --- a/internal/port/handler_http_api_tribe_test.go +++ b/internal/port/handler_http_api_tribe_test.go @@ -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)] -} diff --git a/internal/port/handler_http_api_version_test.go b/internal/port/handler_http_api_version_test.go index d7fc95e..204d700 100644 --- a/internal/port/handler_http_api_version_test.go +++ b/internal/port/handler_http_api_version_test.go @@ -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 } diff --git a/internal/port/handler_http_api_village_test.go b/internal/port/handler_http_api_village_test.go index 225f43b..d208281 100644 --- a/internal/port/handler_http_api_village_test.go +++ b/internal/port/handler_http_api_village_test.go @@ -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)] -}