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