Browse Source

Merge pull request #4247 from hashicorp/feature/acl-sort-by-name

UI - Sort ACL tokens by name
pull/4251/head
John Cowen 7 years ago committed by GitHub
parent
commit
894667b87a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      ui-v2/app/templates/dc/acls/index.hbs
  2. 38
      ui-v2/tests/acceptance/dc/acls/list-order.feature
  3. 10
      ui-v2/tests/acceptance/steps/dc/acls/list-order-steps.js
  4. 7
      ui-v2/tests/steps.js

2
ui-v2/app/templates/dc/acls/index.hbs

@ -15,7 +15,7 @@
{{#block-slot 'content'}}
{{#if (gt filtered.length 0)}}
{{#tabular-collection
items=filtered as |item index|
items=(sort-by 'Name:asc' filtered) as |item index|
}}
{{#block-slot 'header'}}
<th>Name</th>

38
ui-v2/tests/acceptance/dc/acls/list-order.feature

@ -0,0 +1,38 @@
@setupApplicationTest
Feature: dc / acls / list-order
In order to be able to find ACL tokens easier
As a user
I want to see the ACL listed alphabetically by Name
Scenario: I have 10 randomly sorted tokens
Given 1 datacenter model with the value "datacenter"
And 10 acl model from yaml
---
- Name: zz
- Name: 123
- Name: aa
- Name: 9857
- Name: sfgr
- Name: foo
- Name: bar
- Name: xft
- Name: z-35y
- Name: __acl
---
When I visit the acls page for yaml
---
dc: datacenter
---
Then I see name on the acls like yaml
---
- __acl
- 123
- 9857
- aa
- bar
- foo
- sfgr
- xft
- z-35y
- zz
---

10
ui-v2/tests/acceptance/steps/dc/acls/list-order-steps.js

@ -0,0 +1,10 @@
import steps from '../../steps';
// step definitions that are shared between features should be moved to the
// tests/acceptance/steps/steps.js file
export default function(assert) {
return steps(assert).then('I should find a file', function() {
assert.ok(true, this.step);
});
}

7
ui-v2/tests/steps.js

@ -220,7 +220,12 @@ export default function(assert) {
const iterator = new Array(_component.length).fill(true);
iterator.forEach(function(item, i, arr) {
const actual = _component.objectAt(i)[property];
const expected = yaml[i];
// anything coming from the DOM is going to be text/strings
// if the yaml has numbers, cast them to strings
// TODO: This would get problematic for deeper objects
// will have to look to do this recursively
const expected = typeof yaml[i] === 'number' ? yaml[i].toString() : yaml[i];
assert.deepEqual(
actual,
expected,

Loading…
Cancel
Save