diff options
Diffstat (limited to 'src/k8splugin/api')
-rw-r--r-- | src/k8splugin/api/defhandler.go | 6 | ||||
-rw-r--r-- | src/k8splugin/api/defhandler_test.go | 25 |
2 files changed, 30 insertions, 1 deletions
diff --git a/src/k8splugin/api/defhandler.go b/src/k8splugin/api/defhandler.go index 31b0f38f..f53acdd2 100644 --- a/src/k8splugin/api/defhandler.go +++ b/src/k8splugin/api/defhandler.go @@ -54,6 +54,12 @@ func (h rbDefinitionHandler) createHandler(w http.ResponseWriter, r *http.Reques return } + // Chart Name is required + if v.ChartName == "" { + http.Error(w, "Missing chart name in POST request", http.StatusBadRequest) + return + } + ret, err := h.client.Create(v) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) diff --git a/src/k8splugin/api/defhandler_test.go b/src/k8splugin/api/defhandler_test.go index fd17f50e..e638ca05 100644 --- a/src/k8splugin/api/defhandler_test.go +++ b/src/k8splugin/api/defhandler_test.go @@ -90,13 +90,15 @@ func TestRBDefCreateHandler(t *testing.T) { label: "Create without UUID", expectedCode: http.StatusCreated, reader: bytes.NewBuffer([]byte(`{ - "name":"testdomain", + "name":"testresourcebundle", + "chart-name":"testchart", "description":"test description", "service-type":"firewall" }`)), expected: rb.Definition{ UUID: "123e4567-e89b-12d3-a456-426655440000", Name: "testresourcebundle", + ChartName: "testchart", Description: "test description", ServiceType: "firewall", }, @@ -106,12 +108,33 @@ func TestRBDefCreateHandler(t *testing.T) { { UUID: "123e4567-e89b-12d3-a456-426655440000", Name: "testresourcebundle", + ChartName: "testchart", Description: "test description", ServiceType: "firewall", }, }, }, }, + { + label: "Missing Name in Request Body", + reader: bytes.NewBuffer([]byte(`{ + "chart-name":"testchart", + "description":"test description", + "service-type":"firewall" + }`)), + expectedCode: http.StatusBadRequest, + rbDefClient: &mockRBDefinition{}, + }, + { + label: "Missing Chart Name in Request Body", + reader: bytes.NewBuffer([]byte(`{ + "name":"testresourcebundle", + "description":"test description", + "service-type":"firewall" + }`)), + expectedCode: http.StatusBadRequest, + rbDefClient: &mockRBDefinition{}, + }, } for _, testCase := range testCases { |