51 lines
1.3 KiB
Go
51 lines
1.3 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 != "男" {
|
|
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)
|
|
}
|
|
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)
|
|
}
|
|
}
|