spark-server/internal/transport/http/meta_test.go
2026-09-22 17:07:26 +08:00

66 lines
1.8 KiB
Go

package httpx
import (
"encoding/json"
"net/http"
"net/http/httptest"
"testing"
"spark-server/internal/module/meta/entity"
"spark-server/internal/pkg/reply"
)
func TestMetaEnumsPublic(t *testing.T) {
r := testLoginEngine(t)
req := httptest.NewRequest(http.MethodGet, "/v1/meta/enums", nil)
w := httptest.NewRecorder()
r.ServeHTTP(w, req)
var env reply.Envelope
if err := json.Unmarshal(w.Body.Bytes(), &env); err != nil {
t.Fatal(err)
}
if w.Code != http.StatusOK || env.Code != "0" {
t.Fatalf("%d %+v", w.Code, env)
}
var cat entity.Catalog
if err := json.Unmarshal(env.Data, &cat); err != nil {
t.Fatal(err)
}
if len(cat.Gender) != 3 || cat.Gender[1].Name != "male" || cat.Gender[1].Label != "Male" {
t.Fatalf("gender %+v", cat.Gender)
}
if len(cat.MessageType) != 9 || len(cat.TCPCommand) != 15 || cat.Language[0].Value != "zh-CN" {
t.Fatalf("catalog %+v", cat)
}
zhReq := httptest.NewRequest(http.MethodGet, "/v1/meta/enums", nil)
zhReq.Header.Set("X-Language", "zh-CN")
zhW := httptest.NewRecorder()
r.ServeHTTP(zhW, zhReq)
var zhEnv reply.Envelope
if err := json.Unmarshal(zhW.Body.Bytes(), &zhEnv); err != nil {
t.Fatal(err)
}
var zhCat entity.Catalog
if err := json.Unmarshal(zhEnv.Data, &zhCat); err != nil {
t.Fatal(err)
}
if zhCat.Gender[1].Label != "男" {
t.Fatalf("zh label %+v", zhCat.Gender)
}
enReq := httptest.NewRequest(http.MethodGet, "/v1/meta/enums", nil)
enReq.Header.Set("X-Language", "en")
enW := httptest.NewRecorder()
r.ServeHTTP(enW, enReq)
var enEnv reply.Envelope
if err := json.Unmarshal(enW.Body.Bytes(), &enEnv); err != nil {
t.Fatal(err)
}
var enCat entity.Catalog
if err := json.Unmarshal(enEnv.Data, &enCat); err != nil {
t.Fatal(err)
}
if enCat.Gender[1].Label != "Male" {
t.Fatalf("en label %+v", enCat.Gender)
}
}