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) } }