package controller import ( "testing" "github.com/goodrain/rainbond/api/handler" ) func TestBuildNsResourceCreatePayloadUsesStatusAndMessage(t *testing.T) { result := &handler.NsResourceCreateResponse{ Message: "共创建 3 个资源,2 个成功,1 个失败", Summary: handler.NsResourceCreateSummary{ Total: 3, SuccessCount: 2, FailureCount: 1, PartialSuccess: true, }, Results: []handler.NsResourceCreateResult{ {Index: 1, Kind: "Deployment", Name: "demo", Success: true}, }, } payload := buildNsResourceCreatePayload(207, result) if payload["code"] != 207 { t.Fatalf("expected code 207, got %#v", payload["code"]) } if payload["msg"] != result.Message { t.Fatalf("expected msg %q, got %#v", result.Message, payload["msg"]) } if payload["msg_show"] != result.Message { t.Fatalf("expected msg_show %q, got %#v", result.Message, payload["msg_show"]) } data, ok := payload["data"].(map[string]interface{}) if !ok { t.Fatalf("expected payload data map, got %#v", payload["data"]) } bean, ok := data["bean"].(*handler.NsResourceCreateResponse) if !ok { t.Fatalf("expected bean payload, got %#v", data["bean"]) } if bean.Summary.FailureCount != 1 { t.Fatalf("expected bean failure count 1, got %d", bean.Summary.FailureCount) } }