58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package router_test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"galaxy/game/internal/controller"
|
|
"galaxy/game/internal/router"
|
|
"galaxy/game/internal/router/handler"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestHealthzReturnsOKWithoutInit(t *testing.T) {
|
|
r := router.SetupRouter(handler.NewDefaultConfigExecutor(func(p *controller.Param) {
|
|
p.StoragePath = ""
|
|
}))
|
|
|
|
w := httptest.NewRecorder()
|
|
req, _ := http.NewRequest(http.MethodGet, "/healthz", nil)
|
|
r.ServeHTTP(w, req)
|
|
|
|
require.Equal(t, http.StatusOK, w.Code, w.Body)
|
|
|
|
var body map[string]string
|
|
require.NoError(t, json.Unmarshal(w.Body.Bytes(), &body))
|
|
assert.Equal(t, "ok", body["status"])
|
|
}
|
|
|
|
func TestResolveStoragePathPrecedence(t *testing.T) {
|
|
t.Setenv("STORAGE_PATH", "/tmp/storage")
|
|
t.Setenv("GAME_STATE_PATH", "/tmp/state")
|
|
|
|
got, err := handler.ResolveStoragePath()
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "/tmp/storage", got)
|
|
}
|
|
|
|
func TestResolveStoragePathFallback(t *testing.T) {
|
|
t.Setenv("STORAGE_PATH", "")
|
|
t.Setenv("GAME_STATE_PATH", "/tmp/state")
|
|
|
|
got, err := handler.ResolveStoragePath()
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "/tmp/state", got)
|
|
}
|
|
|
|
func TestResolveStoragePathMissing(t *testing.T) {
|
|
t.Setenv("STORAGE_PATH", "")
|
|
t.Setenv("GAME_STATE_PATH", "")
|
|
|
|
_, err := handler.ResolveStoragePath()
|
|
require.Error(t, err)
|
|
}
|