feat(osi): 实现老年人自理能力查询(T-303)
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package osi
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestQueryElderlySelfCareUsesDocumentedContract(t *testing.T) {
|
||||
var seenPath string
|
||||
var seenBody map[string]any
|
||||
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||
seenPath = r.URL.Path
|
||||
if err := json.NewDecoder(r.Body).Decode(&seenBody); err != nil {
|
||||
t.Fatalf("decode request: %v", err)
|
||||
}
|
||||
_, _ = w.Write([]byte(`{"code":"01","message":"操作成功","data":[{"phrId":"PHR-1","checkId":"LNR-1","jc":"1","jcdj":"1","jcpf":"10","zp":"1","zpdj":"1","zpfs":"100","createDate":"2026-01-01"}]}`))
|
||||
}))
|
||||
defer server.Close()
|
||||
|
||||
client := newTestJKDAClient(t, server.URL)
|
||||
rows, result, err := client.QueryElderlySelfCare(context.Background(), ElderlySelfCareQuery{
|
||||
IDCard: "TEST-ID",
|
||||
PHRID: "PHR-1",
|
||||
CheckID: "LNR-1",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("QueryElderlySelfCare: %v", err)
|
||||
}
|
||||
if seenPath != "/osi/api/auto/lnr/query" {
|
||||
t.Fatalf("path = %q", seenPath)
|
||||
}
|
||||
if seenBody["serviceId"] != ServiceIDLNRSelfCareQuery {
|
||||
t.Fatalf("serviceId = %v", seenBody["serviceId"])
|
||||
}
|
||||
baseInfo := seenBody["uploadinfo"].(map[string]any)["baseInfo"].(map[string]any)
|
||||
if baseInfo["idCard"] != "TEST-ID" || baseInfo["phrId"] != "PHR-1" || baseInfo["checkId"] != "LNR-1" {
|
||||
t.Fatalf("baseInfo = %#v", baseInfo)
|
||||
}
|
||||
if !result.Success || len(rows) != 1 {
|
||||
t.Fatalf("rows=%d result=%#v", len(rows), result)
|
||||
}
|
||||
if rows[0].Meal != "1" || rows[0].TotalScore != "100" || rows[0].CheckID != "LNR-1" {
|
||||
t.Fatalf("row = %#v", rows[0])
|
||||
}
|
||||
}
|
||||
|
||||
func TestElderlySelfCareQueryRequiresIDCard(t *testing.T) {
|
||||
if _, err := (ElderlySelfCareQuery{PHRID: "PHR-1"}).baseInfo(); err == nil {
|
||||
t.Fatal("missing idCard should error")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user