key tests updated

This commit is contained in:
Matthew R Kasun
2021-04-17 16:52:53 -04:00
parent 34512235f3
commit ed80a219b9
2 changed files with 12 additions and 5 deletions

View File

@@ -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 //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. //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-- { for i := len(network.AccessKeys) - 1; i >= 0; i-- {
currentkey := network.AccessKeys[i] currentkey := network.AccessKeys[i]
if currentkey.Name == keyname { if currentkey.Name == keyname {
network.AccessKeys = append(network.AccessKeys[:i], network.AccessKeys = append(network.AccessKeys[:i],
network.AccessKeys[i+1:]...) 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") collection := mongoconn.Client.Database("netmaker").Collection("networks")

View File

@@ -222,7 +222,8 @@ func TestCreateAccessKey(t *testing.T) {
} }
func TestDeleteKey(t *testing.T) { func TestDeleteKey(t *testing.T) {
//ensure key exists
createKey(t)
t.Run("KeyValid", func(t *testing.T) { t.Run("KeyValid", func(t *testing.T) {
//fails -- deletecount not returned //fails -- deletecount not returned
response, err := api(t, "", http.MethodDelete, baseURL+"/api/networks/skynet/keys/skynet", "secretkey") 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) { 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") response, err := api(t, "", http.MethodDelete, baseURL+"/api/networks/skynet/keys/badkey", "secretkey")
assert.Nil(t, err, err) assert.Nil(t, err, err)
defer response.Body.Close() defer response.Body.Close()
var message models.ErrorResponse var message models.ErrorResponse
err = json.NewDecoder(response.Body).Decode(&message) err = json.NewDecoder(response.Body).Decode(&message)
assert.Nil(t, err, err) assert.Nil(t, err, err)
assert.Equal(t, "W1R3: This key does not exist.", message.Message) assert.Equal(t, http.StatusBadRequest, message.Code)
assert.Equal(t, http.StatusNotFound, response.StatusCode) assert.Equal(t, "key badkey does not exist", message.Message)
assert.Equal(t, http.StatusBadRequest, response.StatusCode)
}) })
t.Run("KeyInValidnetwork", func(t *testing.T) { t.Run("KeyInValidnetwork", func(t *testing.T) {
response, err := api(t, "", http.MethodDelete, baseURL+"/api/networks/badnetwork/keys/skynet", "secretkey") response, err := api(t, "", http.MethodDelete, baseURL+"/api/networks/badnetwork/keys/skynet", "secretkey")