test: add test data directories (testMusic and testCharacters)
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"music-server/internal/backend"
|
||||
"music-server/internal/db"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// TestHealthCheck verifies the health endpoint returns database status
|
||||
func TestHealthCheck(t *testing.T) {
|
||||
// Setup database
|
||||
db.TestSetupDB(t)
|
||||
defer db.TestTearDownDB(t)
|
||||
|
||||
e := StartTestServer(t)
|
||||
|
||||
resp := MakeTestRequest(t, e, "GET", "/health")
|
||||
assert.Equal(t, http.StatusOK, resp.Code)
|
||||
|
||||
var healthData map[string]string
|
||||
err := json.Unmarshal(resp.Body.Bytes(), &healthData)
|
||||
assert.NoError(t, err)
|
||||
assert.NotEmpty(t, healthData)
|
||||
assert.Equal(t, "up", healthData["status"])
|
||||
}
|
||||
|
||||
// TestGetVersion verifies the version endpoint returns version history
|
||||
func TestGetVersion(t *testing.T) {
|
||||
e := StartTestServer(t)
|
||||
|
||||
resp := MakeTestRequest(t, e, "GET", "/version")
|
||||
assert.Equal(t, http.StatusOK, resp.Code)
|
||||
|
||||
var versionData backend.VersionData
|
||||
err := json.Unmarshal(resp.Body.Bytes(), &versionData)
|
||||
assert.NoError(t, err)
|
||||
assert.NotEmpty(t, versionData.Version)
|
||||
assert.NotEmpty(t, versionData.Changelog)
|
||||
assert.NotEmpty(t, versionData.History)
|
||||
}
|
||||
|
||||
// TestGetCharacterList verifies the characters endpoint returns list of characters
|
||||
func TestGetCharacterList(t *testing.T) {
|
||||
e := StartTestServer(t)
|
||||
|
||||
resp := MakeTestRequest(t, e, "GET", "/characters")
|
||||
assert.Equal(t, http.StatusOK, resp.Code)
|
||||
|
||||
var characters []string
|
||||
err := json.Unmarshal(resp.Body.Bytes(), &characters)
|
||||
assert.NoError(t, err)
|
||||
assert.NotEmpty(t, characters)
|
||||
// Should contain our test characters
|
||||
assert.Contains(t, characters, "char1.jpg")
|
||||
assert.Contains(t, characters, "char2.png")
|
||||
}
|
||||
|
||||
// TestGetCharacter verifies the character endpoint returns a file
|
||||
func TestGetCharacter(t *testing.T) {
|
||||
e := StartTestServer(t)
|
||||
|
||||
resp := MakeTestRequest(t, e, "GET", "/character?name=char1.jpg")
|
||||
assert.Equal(t, http.StatusOK, resp.Code)
|
||||
// The response should be the file content
|
||||
assert.NotEmpty(t, resp.Body.Bytes())
|
||||
}
|
||||
|
||||
// TestGetCharacterNotFound verifies handling of non-existent character
|
||||
func TestGetCharacterNotFound(t *testing.T) {
|
||||
e := StartTestServer(t)
|
||||
|
||||
resp := MakeTestRequest(t, e, "GET", "/character?name=nonexistent.jpg")
|
||||
// Should return 404 or similar error
|
||||
assert.NotEqual(t, http.StatusOK, resp.Code)
|
||||
}
|
||||
|
||||
// TestDBTest verifies the database test endpoint
|
||||
func TestDBTest(t *testing.T) {
|
||||
// Setup database
|
||||
db.TestSetupDB(t)
|
||||
defer db.TestTearDownDB(t)
|
||||
|
||||
e := StartTestServer(t)
|
||||
|
||||
resp := MakeTestRequest(t, e, "GET", "/dbtest")
|
||||
assert.Equal(t, http.StatusOK, resp.Code)
|
||||
assert.Contains(t, resp.Body.String(), "TestedDB")
|
||||
}
|
||||
Reference in New Issue
Block a user