From 3bcc5aabd8bf45a4c73b1da31368bb12a235e785 Mon Sep 17 00:00:00 2001 From: Wadi <58947248+CaptFalc@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:52:53 -0400 Subject: [PATCH] ICU-13879 (#2372) * 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 --- .../components/roles/role/actions/index.hbs | 37 +++++++------------ .../tests/acceptance/roles/delete-test.js | 9 ++++- .../acceptance/roles/global-scope-test.js | 13 +++++++ .../tests/acceptance/roles/org-scope-test.js | 10 +++++ .../tests/acceptance/roles/principals-test.js | 3 ++ 5 files changed, 47 insertions(+), 25 deletions(-) diff --git a/ui/admin/app/components/roles/role/actions/index.hbs b/ui/admin/app/components/roles/role/actions/index.hbs index bdd40e5f5..caf919ce4 100644 --- a/ui/admin/app/components/roles/role/actions/index.hbs +++ b/ui/admin/app/components/roles/role/actions/index.hbs @@ -3,38 +3,29 @@ SPDX-License-Identifier: BUSL-1.1 }} -{{!TODO Refactor page to use hds dropdown in ICU-13879}} - + + {{#if (can 'addPrincipals role' @model)}} - - {{t 'resources.role.principal.actions.add-principals'}} - + /> {{/if}} - {{#if (can 'setGrantScopes role' @model)}} - - {{t 'resources.role.scope.actions.manage-scopes'}} - + /> {{/if}} - {{#if (can 'delete model' @model)}} - - + - {{t 'resources.role.actions.delete'}} - + /> {{/if}} - \ No newline at end of file + \ No newline at end of file diff --git a/ui/admin/tests/acceptance/roles/delete-test.js b/ui/admin/tests/acceptance/roles/delete-test.js index fd31e8b8c..ec5a94d48 100644 --- a/ui/admin/tests/acceptance/roles/delete-test.js +++ b/ui/admin/tests/acceptance/roles/delete-test.js @@ -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.', diff --git a/ui/admin/tests/acceptance/roles/global-scope-test.js b/ui/admin/tests/acceptance/roles/global-scope-test.js index cad512abf..4ef68dede 100644 --- a/ui/admin/tests/acceptance/roles/global-scope-test.js +++ b/ui/admin/tests/acceptance/roles/global-scope-test.js @@ -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( diff --git a/ui/admin/tests/acceptance/roles/org-scope-test.js b/ui/admin/tests/acceptance/roles/org-scope-test.js index c863cbd8a..ce992464b 100644 --- a/ui/admin/tests/acceptance/roles/org-scope-test.js +++ b/ui/admin/tests/acceptance/roles/org-scope-test.js @@ -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}"]`); diff --git a/ui/admin/tests/acceptance/roles/principals-test.js b/ui/admin/tests/acceptance/roles/principals-test.js index c1e0253e4..5edd32147 100644 --- a/ui/admin/tests/acceptance/roles/principals-test.js +++ b/ui/admin/tests/acceptance/roles/principals-test.js @@ -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');