* Updated Dropdown in Roles menu to reflect Hds Dropdown

* Added data-test attributes

* Removed mixed rose code

* Fixed lint issues

* Fixed up tests and removed bare text to be replaced with translation.

* Fixed lint issues

* Updated Manage Scopes to reflect HDS self-closing element

* Lint issues
This commit is contained in:
Wadi authored and Lisbet Alvarez committed 2024-07-15 17:23:00 -07:00
1 parent 4004431c6a
commit 3bcc5aabd8
5 files changed
+47 -25

No files matched your search

@@ -3,38 +3,29 @@
SPDX-License-Identifier: BUSL-1.1
}}
{{!TODO Refactor page to use hds dropdown in ICU-13879}}
<Rose::Dropdown
@text={{t 'actions.manage'}}
@dropdownRight={{true}}
as |dropdown|
>
<Hds::Dropdown as |dd|>
<dd.ToggleButton @text={{t 'actions.manage'}} @color='secondary' />
{{#if (can 'addPrincipals role' @model)}}
<dropdown.link
<dd.Interactive
@text={{t 'resources.role.principal.actions.add-principals'}}
@route='scopes.scope.roles.role.add-principals'
data-test-manage-dropdown-principals
>
{{t 'resources.role.principal.actions.add-principals'}}
</dropdown.link>
/>
{{/if}}
{{#if (can 'setGrantScopes role' @model)}}
<dropdown.link
<dd.Interactive
@text={{t 'resources.role.scope.actions.manage-scopes'}}
@route='scopes.scope.roles.role.manage-scopes'
data-test-manage-dropdown-scopes
>
{{t 'resources.role.scope.actions.manage-scopes'}}
</dropdown.link>
/>
{{/if}}
{{#if (can 'delete model' @model)}}
<dropdown.separator />
<dropdown.button
@style='danger'
<dd.Separator />
<dd.Interactive
@text={{t 'resources.role.actions.delete'}}
@color='critical'
@disabled={{@model.canSave}}
{{on 'click' (fn @delete @model)}}
>
{{t 'resources.role.actions.delete'}}
</dropdown.button>
/>
{{/if}}
</Rose::Dropdown>
</Hds::Dropdown>
@@ -19,6 +19,9 @@ module('Acceptance | roles | delete', function (hooks) {
setupApplicationTest(hooks);
setupMirage(hooks);
const MANAGE_DROPDOWN_SELECTOR = '.hds-dropdown-toggle-button';
const DELETE_DROPDOWN_SELECTOR = '.hds-dropdown-list-item--color-critical button'
const instances = {
scopes: {
global: null,
@@ -63,7 +66,8 @@ module('Acceptance | roles | delete', function (hooks) {
test('can delete a role', async function (assert) {
const rolesCount = this.server.db.roles.length;
await visit(urls.role);
await click('.rose-layout-page-actions .rose-dropdown-button-danger');
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_DROPDOWN_SELECTOR);
assert.strictEqual(this.server.db.roles.length, rolesCount - 1);
});
@@ -89,7 +93,8 @@ module('Acceptance | roles | delete', function (hooks) {
);
});
await visit(urls.role);
await click('.rose-layout-page-actions .rose-dropdown-button-danger');
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_DROPDOWN_SELECTOR);
assert.strictEqual(
find('.rose-notification-body').textContent.trim(),
'Oops.',
@@ -37,6 +37,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
const TABLE_PARENT_SCOPE_SELECTOR = 'tbody tr:nth-child(2) td:nth-child(3) a';
const SAVE_BTN_SELECTOR = 'form [type="submit"]';
const CANCEL_BTN_SELECTOR = '.rose-form-actions [type="button"]';
const MANAGE_DROPDOWN_SELECTOR = '.hds-dropdown-toggle-button';
const MANAGE_SCOPES_SELECTOR = '[data-test-manage-dropdown-scopes]';
const TOAST_SELECTOR = '[role="alert"]';
const SEARCH_INPUT_SELECTOR = '.search-filtering [type="search"]';
@@ -154,6 +155,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
test('correct toggles are visible for global level role on manage scopes page', async function (assert) {
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
assert.strictEqual(currentURL(), urls.manageScopes);
@@ -170,6 +172,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
assert.strictEqual(findAll(TABLE_ROW_SELECTOR).length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await a11yAudit();
@@ -193,6 +196,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
assert.strictEqual(findAll(TABLE_ROW_SELECTOR).length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
assert.strictEqual(currentURL(), urls.manageScopes);
@@ -223,6 +227,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
instances.role.update({ grant_scope_ids: [] });
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(SCOPE_TOGGLE_SELECTOR(GRANT_SCOPE_THIS));
await click(SAVE_BTN_SELECTOR);
@@ -238,6 +243,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
assert.strictEqual(findAll(TABLE_ROW_SELECTOR).length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
assert.strictEqual(currentURL(), urls.manageScopes);
@@ -269,6 +275,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
assert.strictEqual(findAll(TABLE_ROW_SELECTOR).length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
assert.strictEqual(currentURL(), urls.manageScopes);
@@ -305,6 +312,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
instances.role.update({ grant_scope_ids: [] });
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageCustomScopes}"]`);
await click(SCOPE_CHECKBOX_SELECTOR('org', instances.scopes.org.id));
@@ -370,6 +378,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
assert.strictEqual(findAll(TABLE_ROW_SELECTOR).length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageCustomScopes}"]`);
await click(
@@ -409,6 +418,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
assert.strictEqual(findAll(TABLE_ROW_SELECTOR).length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageCustomScopes}"]`);
await click(
@@ -455,6 +465,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
instances.role.update({ grant_scope_ids: [] });
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageCustomScopes}"]`);
await click(
@@ -475,6 +486,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
});
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageCustomScopes}"]`);
await click(
@@ -508,6 +520,7 @@ module('Acceptance | roles | global-scope', function (hooks) {
});
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageCustomScopes}"]`);
await click(
@@ -37,6 +37,7 @@ module('Acceptance | roles | org-scope', function (hooks) {
const TABLE_PARENT_SCOPE_SELECTOR = 'tbody tr:nth-child(2) td:nth-child(3) a';
const SAVE_BTN_SELECTOR = 'form [type="submit"]';
const CANCEL_BTN_SELECTOR = '.rose-form-actions [type="button"]';
const MANAGE_DROPDOWN_SELECTOR = '.hds-dropdown-toggle-button';
const MANAGE_SCOPES_SELECTOR = '[data-test-manage-dropdown-scopes]';
const TOAST_SELECTOR = '[role="alert"]';
const SEARCH_INPUT_SELECTOR = '.search-filtering [type="search"]';
@@ -151,6 +152,7 @@ module('Acceptance | roles | org-scope', function (hooks) {
test('correct toggles are visible for org level role on manage scopes page', async function (assert) {
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
assert.strictEqual(currentURL(), urls.manageScopes);
@@ -167,6 +169,7 @@ module('Acceptance | roles | org-scope', function (hooks) {
assert.strictEqual(findAll(TABLE_ROW_SELECTOR).length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await a11yAudit();
@@ -190,6 +193,7 @@ module('Acceptance | roles | org-scope', function (hooks) {
assert.strictEqual(findAll(TABLE_ROW_SELECTOR).length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
assert.strictEqual(currentURL(), urls.manageScopes);
@@ -220,6 +224,7 @@ module('Acceptance | roles | org-scope', function (hooks) {
instances.role.update({ grant_scope_ids: [] });
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(SCOPE_TOGGLE_SELECTOR(GRANT_SCOPE_THIS));
await click(SAVE_BTN_SELECTOR);
@@ -235,6 +240,7 @@ module('Acceptance | roles | org-scope', function (hooks) {
assert.strictEqual(findAll(TABLE_ROW_SELECTOR).length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageOrgProjects}"]`);
await a11yAudit();
@@ -267,6 +273,7 @@ module('Acceptance | roles | org-scope', function (hooks) {
assert.strictEqual(findAll(TABLE_ROW_SELECTOR).length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageOrgProjects}"]`);
await a11yAudit();
@@ -307,6 +314,7 @@ module('Acceptance | roles | org-scope', function (hooks) {
instances.role.update({ grant_scope_ids: [] });
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageOrgProjects}"]`);
await click(
@@ -324,6 +332,7 @@ module('Acceptance | roles | org-scope', function (hooks) {
});
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageOrgProjects}"]`);
@@ -354,6 +363,7 @@ module('Acceptance | roles | org-scope', function (hooks) {
});
await visit(urls.role);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(MANAGE_SCOPES_SELECTOR);
await click(`[href="${urls.manageOrgProjects}"]`);
@@ -22,6 +22,7 @@ module('Acceptance | roles | principals', function (hooks) {
setupMirage(hooks);
setupIndexedDb(hooks);
const MANAGE_DROPDOWN_SELECTOR = '.hds-dropdown-toggle-button';
const ADD_PRINCIPALS_SELECTOR = '[data-test-manage-dropdown-principals]';
const instances = {
@@ -120,6 +121,7 @@ module('Acceptance | roles | principals', function (hooks) {
instances.role.update({ userIds: [], groupIds: [], managedGroupIds: [] });
await visit(urls.rolePrincipals);
assert.strictEqual(findAll('tbody tr').length, 0);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(ADD_PRINCIPALS_SELECTOR);
assert.strictEqual(currentURL(), urls.addPrincipals);
// Click three times to select, unselect, then reselect (for coverage)
@@ -138,6 +140,7 @@ module('Acceptance | roles | principals', function (hooks) {
await click('.hds-dropdown-toggle-icon');
await click('tbody tr .hds-dropdown-list-item button');
assert.strictEqual(findAll('tbody tr').length, principalsCount - 1);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(ADD_PRINCIPALS_SELECTOR);
assert.strictEqual(currentURL(), urls.addPrincipals);
await click('tbody label');