diff --git a/ui/admin/app/templates/scopes/scope/auth-methods/index.hbs b/ui/admin/app/templates/scopes/scope/auth-methods/index.hbs
index 363f58028..490aeab83 100644
--- a/ui/admin/app/templates/scopes/scope/auth-methods/index.hbs
+++ b/ui/admin/app/templates/scopes/scope/auth-methods/index.hbs
@@ -149,7 +149,6 @@
/>
{{#unless B.data.isPrimary}}
{{t 'resources.auth-method.actions.make-primary'}}
@@ -174,7 +173,7 @@
@currentPageSize={{this.pageSize}}
/>
{{else}}
-
+
- `.search-filtering [name="${name}"] button`;
- const FILTER_APPLY_BUTTON_SELECTOR =
- '.search-filtering [data-test-dropdown-apply-button]';
- const AUTH_ACTIONS_SELECTOR = (id) =>
- `tbody [data-test-auth-methods-table-row="${id}"] .hds-table__td:last-child .hds-dropdown button`;
- const MAKE_PRIMARY_ACTION_SELECTOR = '[data-test-make-primary-action]';
-
const instances = {
scopes: {
global: null,
@@ -76,28 +68,28 @@ module('Acceptance | auth-methods | list', function (hooks) {
test('users can navigate to auth methods with proper authorization', async function (assert) {
await visit(urls.globalScope);
- await click(`[href="${urls.orgScope}"]`);
+ await click(commonSelectors.HREF(urls.orgScope));
assert.true(
instances.scopes.org.authorized_collection_actions[
'auth-methods'
].includes('list'),
);
- assert.dom(`[href="${urls.authMethods}"]`).exists();
+ assert.dom(commonSelectors.HREF(urls.authMethods)).isVisible();
});
test('users cannot navigate to index without either list or create actions', async function (assert) {
instances.scopes.org.authorized_collection_actions['auth-methods'] = [];
await visit(urls.globalScope);
- await click(`[href="${urls.orgScope}"]`);
+ await click(commonSelectors.HREF(urls.orgScope));
assert.false(
instances.scopes.org.authorized_collection_actions[
'auth-methods'
].includes('list'),
);
- assert.dom(`[href="${urls.authMethods}"]`).doesNotExist();
+ assert.dom(commonSelectors.HREF(urls.authMethods)).isNotVisible();
});
test('users can navigate to index with only create action', async function (assert) {
@@ -106,73 +98,79 @@ module('Acceptance | auth-methods | list', function (hooks) {
];
await visit(urls.globalScope);
- await click(`[href="${urls.orgScope}"]`);
-
- assert.dom(`[href="${urls.authMethods}"]`).exists();
+ await click(commonSelectors.HREF(urls.orgScope));
+ assert.dom(commonSelectors.HREF(urls.authMethods)).isVisible();
});
test('user can search for a specifc auth-method by id', async function (assert) {
await visit(urls.orgScope);
- await click(`[href="${urls.authMethods}"]`);
+ await click(commonSelectors.HREF(urls.authMethods));
+ assert.dom(commonSelectors.HREF(urls.passwordAuthMethod)).isVisible();
+ assert.dom(commonSelectors.HREF(urls.oidcAuthMethod)).isVisible();
- assert.dom(`[href="${urls.passwordAuthMethod}"]`).exists();
- assert.dom(`[href="${urls.oidcAuthMethod}"]`).exists();
+ await fillIn(selectors.SEARCH_BAR_INPUT, instances.passwordAuthMethod.id);
+ await waitFor(commonSelectors.HREF(urls.oidcAuthMethod), { count: 0 });
- await fillIn(SEARCH_INPUT_SELECTOR, instances.passwordAuthMethod.id);
- await waitFor(`[href="${urls.oidcAuthMethod}"]`, { count: 0 });
-
- assert.dom(`[href="${urls.passwordAuthMethod}"]`).exists();
- assert.dom(`[href="${urls.oidcAuthMethod}"]`).doesNotExist();
+ assert.dom(commonSelectors.HREF(urls.passwordAuthMethod)).isVisible();
+ assert.dom(commonSelectors.HREF(urls.oidcAuthMethod)).isNotVisible();
});
test('user can search for auth-methods and get no results', async function (assert) {
await visit(urls.orgScope);
- await click(`[href="${urls.authMethods}"]`);
+ await click(commonSelectors.HREF(urls.authMethods));
+ assert.dom(commonSelectors.HREF(urls.passwordAuthMethod)).isVisible();
+ assert.dom(commonSelectors.HREF(urls.oidcAuthMethod)).isVisible();
- assert.dom(`[href="${urls.passwordAuthMethod}"]`).exists();
- assert.dom(`[href="${urls.oidcAuthMethod}"]`).exists();
+ await fillIn(selectors.SEARCH_BAR_INPUT, 'fake target that does not exist');
+ await waitFor(commonSelectors.PAGE_MESSAGE_HEADER, { count: 1 });
- await fillIn(SEARCH_INPUT_SELECTOR, 'fake target that does not exist');
- await waitFor(NO_RESULTS_MSG_SELECTOR, { count: 1 });
-
- assert.dom(`[href="${urls.passwordAuthMethod}"]`).doesNotExist();
- assert.dom(`[href="${urls.oidcAuthMethod}"]`).doesNotExist();
- assert.dom(NO_RESULTS_MSG_SELECTOR).includesText('No results found');
+ assert.dom(commonSelectors.HREF(urls.passwordAuthMethod)).isNotVisible();
+ assert.dom(commonSelectors.HREF(urls.oidcAuthMethod)).isNotVisible();
+ assert
+ .dom(commonSelectors.PAGE_MESSAGE_HEADER)
+ .includesText('No results found');
});
test('user can filter for auth-methods by type', async function (assert) {
await visit(urls.orgScope);
- await click(`[href="${urls.authMethods}"]`);
+ await click(commonSelectors.HREF(urls.authMethods));
+ assert.dom(commonSelectors.HREF(urls.passwordAuthMethod)).isVisible();
+ assert.dom(commonSelectors.HREF(urls.oidcAuthMethod)).isVisible();
- assert.dom(`[href="${urls.passwordAuthMethod}"]`).exists();
- assert.dom(`[href="${urls.oidcAuthMethod}"]`).exists();
+ await click(commonSelectors.FILTER_DROPDOWN('type'));
+ await click(
+ commonSelectors.FILTER_DROPDOWN_ITEM(TYPE_AUTH_METHOD_PASSWORD),
+ );
+ await click(commonSelectors.FILTER_DROPDOWN_ITEM_APPLY_BTN('type'));
- await click(FILTER_DROPDOWN_SELECTOR('type'));
- await click(`input[value="${TYPE_AUTH_METHOD_PASSWORD}"]`);
- await click(FILTER_APPLY_BUTTON_SELECTOR);
-
- assert.dom(`[href="${urls.oidcAuthMethod}"]`).doesNotExist();
- assert.dom(`[href="${urls.passwordAuthMethod}"]`).exists();
+ assert.dom(commonSelectors.HREF(urls.oidcAuthMethod)).isNotVisible();
+ assert.dom(commonSelectors.HREF(urls.passwordAuthMethod)).isVisible();
});
test('user can filter for auth-methods by primary', async function (assert) {
await visit(urls.orgScope);
- await click(`[href="${urls.authMethods}"]`);
+ await click(commonSelectors.HREF(urls.authMethods));
+ assert.dom(commonSelectors.HREF(urls.passwordAuthMethod)).isVisible();
+ assert.dom(commonSelectors.HREF(urls.oidcAuthMethod)).isVisible();
- assert.dom(`[href="${urls.passwordAuthMethod}"]`).exists();
- assert.dom(`[href="${urls.oidcAuthMethod}"]`).exists();
+ await click(
+ selectors.TABLE_ACTION_DROPDOWN(instances.passwordAuthMethod.id),
+ );
+ await click(
+ selectors.TABLE_ACTION_DROPDOWN_MAKE_PRIMARY(
+ instances.passwordAuthMethod.id,
+ ),
+ );
- await click(AUTH_ACTIONS_SELECTOR(instances.passwordAuthMethod.id));
- await click(MAKE_PRIMARY_ACTION_SELECTOR);
- await click(FILTER_DROPDOWN_SELECTOR('primary'));
- await click(`input[value="true"]`);
- await click(FILTER_APPLY_BUTTON_SELECTOR);
+ await click(commonSelectors.FILTER_DROPDOWN('primary'));
+ await click(commonSelectors.FILTER_DROPDOWN_ITEM('true'));
+ await click(commonSelectors.FILTER_DROPDOWN_ITEM_APPLY_BTN('primary'));
- assert.dom(`[href="${urls.oidcAuthMethod}"]`).doesNotExist();
- assert.dom(`[href="${urls.passwordAuthMethod}"]`).exists();
+ assert.dom(commonSelectors.HREF(urls.oidcAuthMethod)).isNotVisible();
+ assert.dom(commonSelectors.HREF(urls.passwordAuthMethod)).isVisible();
});
});
diff --git a/ui/admin/tests/acceptance/auth-methods/selectors.js b/ui/admin/tests/acceptance/auth-methods/selectors.js
index 9479a0370..2c4be3fd2 100644
--- a/ui/admin/tests/acceptance/auth-methods/selectors.js
+++ b/ui/admin/tests/acceptance/auth-methods/selectors.js
@@ -90,3 +90,10 @@ export const TABLE_FIRST_ROW_ACTION_DROPDOWN =
'tbody tr:first-child td:last-child button';
export const TABLE_FIRST_ROW_ACTION_FIRST_ITEM =
'tbody tr:first-child td:last-child ul li:first-child button';
+
+export const SEARCH_BAR_INPUT = '[type=search]';
+
+export const TABLE_ACTION_DROPDOWN = (authMethodId) =>
+ `tbody [data-test-auth-methods-table-row="${authMethodId}"] .hds-table__td:last-child .hds-dropdown button`;
+export const TABLE_ACTION_DROPDOWN_MAKE_PRIMARY = (authMethodId) =>
+ `tbody tr[data-test-auth-methods-table-row="${authMethodId}"] td:last-child ul li:first-child button`;
diff --git a/ui/admin/tests/helpers/selectors.js b/ui/admin/tests/helpers/selectors.js
index eac041772..ab0448489 100644
--- a/ui/admin/tests/helpers/selectors.js
+++ b/ui/admin/tests/helpers/selectors.js
@@ -20,6 +20,7 @@ export const RESOURCE_NOT_FOUND_SUBTITLE =
'[data-test-error-application-state] .hds-application-state__error-code';
export const RESOURCE_NOT_FOUND_VALUE = 'ERROR 404';
+export const PAGE_MESSAGE_HEADER = '.hds-application-state__header';
export const PAGE_MESSAGE_DESCRIPTION = '.hds-application-state__body-text';
export const PAGE_MESSAGE_LINK =
'.hds-application-state__footer .hds-link-standalone';
@@ -41,3 +42,9 @@ export const MODAL_WARNING_CANCEL_BTN =
'dialog .hds-modal__footer button:last-child';
export const MODAL_WARNING_TITLE = '.hds-modal__header';
export const MODAL_WARNING_MESSAGE = '.hds-modal__body';
+
+export const FILTER_DROPDOWN = (filterName) =>
+ `.search-filtering [name="${filterName}"] button`;
+export const FILTER_DROPDOWN_ITEM = (itemList) => `input[value="${itemList}"]`;
+export const FILTER_DROPDOWN_ITEM_APPLY_BTN = (filterName) =>
+ `.search-filtering [name="${filterName}"] .hds-dropdown__footer button`;