Browse Source

key tests updated

Matthew R Kasun 4 years ago
parent
commit
ed80a219b9
2 changed files with 12 additions and 5 deletions
  1. 7 0
      controllers/networkHttpController.go
  2. 5 5
      test/group_test.go

+ 7 - 0
controllers/networkHttpController.go

@@ -673,14 +673,21 @@ func deleteAccessKey(w http.ResponseWriter, r *http.Request) {
 	}
 	//basically, turn the list of access keys into the list of access keys before and after the item
 	//have not done any error handling for if there's like...1 item. I think it works? need to test.
+	found := false
 	for i := len(network.AccessKeys) - 1; i >= 0; i-- {
 
 		currentkey := network.AccessKeys[i]
 		if currentkey.Name == keyname {
 			network.AccessKeys = append(network.AccessKeys[:i],
 				network.AccessKeys[i+1:]...)
+			found = true
 		}
 	}
+	if !found {
+		err = errors.New("key " + keyname + " does not exist")
+		returnErrorResponse(w, r, formatError(err, "badrequest"))
+		return
+	}
 
 	collection := mongoconn.Client.Database("netmaker").Collection("networks")
 

+ 5 - 5
test/group_test.go

@@ -222,7 +222,8 @@ func TestCreateAccessKey(t *testing.T) {
 }
 
 func TestDeleteKey(t *testing.T) {
-
+	//ensure key exists
+	createKey(t)
 	t.Run("KeyValid", func(t *testing.T) {
 		//fails -- deletecount not returned
 		response, err := api(t, "", http.MethodDelete, baseURL+"/api/networks/skynet/keys/skynet", "secretkey")
@@ -238,16 +239,15 @@ func TestDeleteKey(t *testing.T) {
 		}
 	})
 	t.Run("InValidKey", func(t *testing.T) {
-
-		//responds ok, will nil record returned..  should be an error.
 		response, err := api(t, "", http.MethodDelete, baseURL+"/api/networks/skynet/keys/badkey", "secretkey")
 		assert.Nil(t, err, err)
 		defer response.Body.Close()
 		var message models.ErrorResponse
 		err = json.NewDecoder(response.Body).Decode(&message)
 		assert.Nil(t, err, err)
-		assert.Equal(t, "W1R3: This key does not exist.", message.Message)
-		assert.Equal(t, http.StatusNotFound, response.StatusCode)
+		assert.Equal(t, http.StatusBadRequest, message.Code)
+		assert.Equal(t, "key badkey does not exist", message.Message)
+		assert.Equal(t, http.StatusBadRequest, response.StatusCode)
 	})
 	t.Run("KeyInValidnetwork", func(t *testing.T) {
 		response, err := api(t, "", http.MethodDelete, baseURL+"/api/networks/badnetwork/keys/skynet", "secretkey")