open-consul/ui-v2/tests/acceptance/dc/acls/roles/as-many/add-new.feature

140 lines
4.7 KiB
Gherkin

@setupApplicationTest
Feature: dc / acls / roles / as many / add new: Add new
Background:
Given 1 datacenter model with the value "datacenter"
And 1 token model from yaml
---
AccessorID: key
Description: The Description
Roles: ~
Policies: ~
ServiceIdentities: ~
---
And 1 policy model from yaml
---
ID: policy-1
Name: policy
---
When I visit the token page for yaml
---
dc: datacenter
token: key
---
Then the url should be /datacenter/acls/tokens/key
And I click roles.create
Then I fill in the roles.form with yaml
---
Name: New-Role
Description: New Role Description
---
Scenario: Add Policy-less Role
And I click submit on the roles.form
Then the last PUT request was made to "/v1/acl/role?dc=datacenter" with the body from yaml
---
Name: New-Role
Description: New Role Description
---
And I submit
Then a PUT request is made to "/v1/acl/token/key?dc=datacenter" with the body from yaml
---
Description: The Description
Roles:
- Name: New-Role
ID: ee52203d-989f-4f7a-ab5a-2bef004164ca-1
---
Then the url should be /datacenter/acls/tokens
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
Scenario: Add Role that has an existing Policy
And I click "#new-role-toggle + div .ember-power-select-trigger"
And I click ".ember-power-select-option:first-child"
And I click submit on the roles.form
Then the last PUT request was made to "/v1/acl/role?dc=datacenter" with the body from yaml
---
Name: New-Role
Description: New Role Description
Policies:
- ID: policy-1
Name: policy
---
And I submit
Then a PUT request is made to "/v1/acl/token/key?dc=datacenter" with the body from yaml
---
Description: The Description
Roles:
- Name: New-Role
ID: ee52203d-989f-4f7a-ab5a-2bef004164ca-1
---
Then the url should be /datacenter/acls/tokens
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
Scenario: Add Role and add a new Policy
And I click roles.form.policies.create
Then I fill in the roles.form.policies.form with yaml
---
Name: New-Policy
Description: New Policy Description
Rules: key {}
---
# This next line is actually the popped up policyForm due to the way things currently work
And I click submit on the roles.form
Then the last PUT request was made to "/v1/acl/policy?dc=datacenter" with the body from yaml
---
Name: New-Policy
Description: New Policy Description
Rules: key {}
---
And I click submit on the roles.form
Then the last PUT request was made to "/v1/acl/role?dc=datacenter" with the body from yaml
---
Name: New-Role
Description: New Role Description
Policies:
# TODO: Ouch, we need to do deep partial comparisons here
- ID: ee52203d-989f-4f7a-ab5a-2bef004164ca-1
Name: New-Policy
---
And I submit
Then a PUT request is made to "/v1/acl/token/key?dc=datacenter" with the body from yaml
---
Description: The Description
Roles:
- Name: New-Role
ID: ee52203d-989f-4f7a-ab5a-2bef004164ca-1
---
Then the url should be /datacenter/acls/tokens
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
Scenario: Add Role and add a new Service Identity
And I click roles.form.policies.create
Then I fill in the roles.form.policies.form with yaml
---
Name: New-Service-Identity
---
And I click "[value='service-identity']"
# This next line is actually the popped up policyForm due to the way things currently work
And I click submit on the roles.form
And I click submit on the roles.form
Then the last PUT request was made to "/v1/acl/role?dc=datacenter" with the body from yaml
---
Name: New-Role
Description: New Role Description
ServiceIdentities:
- ServiceName: New-Service-Identity
---
And I submit
Then a PUT request is made to "/v1/acl/token/key?dc=datacenter" with the body from yaml
---
Description: The Description
Roles:
- Name: New-Role
ID: ee52203d-989f-4f7a-ab5a-2bef004164ca-1
---
Then the url should be /datacenter/acls/tokens
And "[data-notification]" has the "notification-update" class
And "[data-notification]" has the "success" class
@ignore:
Scenario: Click the cancel form
Then ok
# And I click cancel on the policyForm