open-consul/ui-v2/tests/acceptance/dc/kvs/update.feature
John Cowen 1d26be2415
ui: Ensure KV flags are passed through to Consul on update (#7216)
* ui: always pass KV flags through on update

* ui: Integration test to prove the flags queryParams gets passed through

* ui: Add Flags to the KV updating acceptance tests
2020-02-05 09:37:45 +00:00

121 lines
3.9 KiB
Gherkin

@setupApplicationTest
Feature: dc / kvs / update: KV Update
Background:
Given 1 datacenter model with the value "datacenter"
Scenario: Update to [Name] change value to [Value]
And 1 kv model from yaml
---
Key: "[Name]"
Flags: 12
---
When I visit the kv page for yaml
---
dc: datacenter
kv: "[Name]"
---
Then the url should be /datacenter/kv/[EncodedName]/edit
And the title should be "Edit Key/Value - Consul"
# Turn the Code Editor off so we can fill the value easier
And I click "[name=json]"
Then I fill in with yaml
---
value: [Value]
---
And I submit
Then a PUT request was made to "/v1/kv/[EncodedName]?dc=datacenter&flags=12&ns=@!namespace" with the body "[Value]"
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
Where:
---------------------------------------------------------
| Name | EncodedName | Value |
| key | key | value |
| #key | %23key | value |
| key-name | key-name | a value |
| key name | key%20name | a value |
| folder/key-name | folder/key-name | a value |
---------------------------------------------------------
Scenario: Update to a key change value to ' '
And 1 kv model from yaml
---
Key: key
Flags: 12
---
When I visit the kv page for yaml
---
dc: datacenter
kv: key
---
Then the url should be /datacenter/kv/key/edit
# Turn the Code Editor off so we can fill the value easier
And I click "[name=json]"
Then I fill in with yaml
---
value: ' '
---
And I submit
Then a PUT request was made to "/v1/kv/key?dc=datacenter&flags=12&ns=@!namespace" with the body " "
Then the url should be /datacenter/kv
And the title should be "Key/Value - Consul"
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
Scenario: Update to a key change value to ''
And 1 kv model from yaml
---
Key: key
Flags: 12
---
When I visit the kv page for yaml
---
dc: datacenter
kv: key
---
Then the url should be /datacenter/kv/key/edit
# Turn the Code Editor off so we can fill the value easier
And I click "[name=json]"
Then I fill in with yaml
---
value: ''
---
And I submit
Then a PUT request was made to "/v1/kv/key?dc=datacenter&flags=12&ns=@!namespace" with no body
Then the url should be /datacenter/kv
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
Scenario: Update to a key when the value is empty
And 1 kv model from yaml
---
Key: key
Value: ~
Flags: 12
---
When I visit the kv page for yaml
---
dc: datacenter
kv: key
---
Then the url should be /datacenter/kv/key/edit
And I submit
Then a PUT request was made to "/v1/kv/key?dc=datacenter&flags=12&ns=@!namespace" with no body
Then the url should be /datacenter/kv
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
Scenario: There was an error saving the key
When I visit the kv page for yaml
---
dc: datacenter
kv: key
---
Then the url should be /datacenter/kv/key/edit
Given the url "/v1/kv/key" responds with a 500 status
And I submit
Then the url should be /datacenter/kv/key/edit
Then "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "error" class
@ignore
Scenario: KV's with spaces are saved correctly
Then ok
@ignore
Scenario: KV's with returns are saved correctly
Then ok