feat(ECR-012–016): 合规、题库、时辰刷新、头像、MBTI OEJTS 与埋点
落地输入合规、探索题库、报告日/时辰刷新、账号头像、OEJTS 量表,并补齐 H5 埋点与 Admin 漏斗;同步 ESS 工件、切至自建 Git、清理 GitHub Actions。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -43,3 +43,49 @@ func TestGrowthPlanCheckin(t *testing.T) {
|
||||
t.Fatal("expected checkin")
|
||||
}
|
||||
}
|
||||
|
||||
func TestScaleBankResultRoundtrip(t *testing.T) {
|
||||
r, _ := setupAPI(t)
|
||||
key := mustRegister(t, r)
|
||||
|
||||
env, key := doJSON(t, r, http.MethodGet, "/api/v1/scale-bank/catalog", nil, key)
|
||||
cat := decodeData[map[string]any](t, env.Data)
|
||||
featured, _ := cat["featured"].([]any)
|
||||
if len(featured) < 1 {
|
||||
t.Fatal("expected featured bank scales")
|
||||
}
|
||||
|
||||
env, key = doJSON(t, r, http.MethodPost, "/api/v1/profiles", map[string]any{
|
||||
"relation": "self", "birth_date": "1991-07-07", "display_name": "我",
|
||||
}, key)
|
||||
profile := decodeData[map[string]any](t, env.Data)
|
||||
profileID, _ := profile["id"].(string)
|
||||
|
||||
env, key = doJSON(t, r, http.MethodGet, "/api/v1/scales/sm1", nil, key)
|
||||
detail := decodeData[map[string]any](t, env.Data)
|
||||
qs, _ := detail["questions"].([]any)
|
||||
if len(qs) < 1 {
|
||||
t.Fatal("expected sm1 questions")
|
||||
}
|
||||
answers := map[string]string{}
|
||||
for _, raw := range qs {
|
||||
q, _ := raw.(map[string]any)
|
||||
id, _ := q["id"].(string)
|
||||
answers[id] = "3"
|
||||
}
|
||||
|
||||
env, key = doJSON(t, r, http.MethodPost, "/api/v1/scales/sm1/result", map[string]any{
|
||||
"profile_id": profileID, "answers": answers,
|
||||
}, key)
|
||||
submitted := decodeData[map[string]any](t, env.Data)
|
||||
if submitted["result"] == nil {
|
||||
t.Fatalf("missing result: %#v", submitted)
|
||||
}
|
||||
|
||||
env, _ = doJSON(t, r, http.MethodGet, "/api/v1/scales/sm1/result", nil, key)
|
||||
latest := decodeData[map[string]any](t, env.Data)
|
||||
res, ok := latest["result"].(map[string]any)
|
||||
if !ok || res["label"] == nil || res["label"] == "" {
|
||||
t.Fatalf("expected latest label, got %#v", latest)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user