Icu 16393 managed groups read (#2709)

* chore: 🤖 update managed-groups read test selectors

* chore: 🤖 add test selectors to managed-groups delete

* chore: 🤖 use test selectors in managed-groups list tests

* chore: 🤖 refactor managed-groups members tests

* refactor: 💡 update selector name for DELETE action
This commit is contained in:
Cameron Perera authored and GitHub committed 2025-03-06 14:42:45 -06:00
1 parent 29bde998ed
commit 42bcefa068
6 files changed
+60 -63

No files matched your search

@@ -77,7 +77,7 @@ module('Acceptance | managed-groups | create', function (hooks) {
test('can create a new managed group', async function (assert) {
const managedGroupsCount = getManagedGroupCount();
await visit(urls.authMethod);
await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_AUTH_METHOD);
await click(commonSelectors.HREF(urls.newManagedGroup));
await fillIn(commonSelectors.FIELD_NAME, commonSelectors.FIELD_NAME_VALUE);
@@ -101,7 +101,7 @@ module('Acceptance | managed-groups | create', function (hooks) {
test('can create a new ldap managed group', async function (assert) {
const managedGroupsCount = getManagedGroupCount();
await visit(urls.ldapAuthMethod);
await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_AUTH_METHOD);
await click(commonSelectors.HREF(urls.newLdapManagedGroup));
await fillIn(commonSelectors.FIELD_NAME, commonSelectors.FIELD_NAME_VALUE);
@@ -168,7 +168,7 @@ module('Acceptance | managed-groups | create', function (hooks) {
test('User can cancel a new managed group creation', async function (assert) {
const managedGroupsCount = getManagedGroupCount();
await visit(urls.authMethod);
await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_AUTH_METHOD);
await click(commonSelectors.HREF(urls.newManagedGroup));
await fillIn(commonSelectors.FIELD_NAME, commonSelectors.FIELD_NAME_VALUE);
@@ -181,7 +181,7 @@ module('Acceptance | managed-groups | create', function (hooks) {
test('User can cancel a new ldap managed group creation', async function (assert) {
const managedGroupsCount = getManagedGroupCount();
await visit(urls.ldapAuthMethod);
await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_AUTH_METHOD);
await click(commonSelectors.HREF(urls.newLdapManagedGroup));
await fillIn(commonSelectors.FIELD_NAME, commonSelectors.FIELD_NAME_VALUE);
@@ -212,7 +212,7 @@ module('Acceptance | managed-groups | create', function (hooks) {
);
});
await visit(urls.authMethod);
await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_AUTH_METHOD);
await click(commonSelectors.HREF(urls.newManagedGroup));
await click(commonSelectors.SAVE_BTN);
@@ -245,7 +245,7 @@ module('Acceptance | managed-groups | create', function (hooks) {
);
});
await visit(urls.ldapAuthMethod);
await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_AUTH_METHOD);
await click(commonSelectors.HREF(urls.newLdapManagedGroup));
await click(commonSelectors.SAVE_BTN);
@@ -15,6 +15,7 @@ import {
TYPE_AUTH_METHOD_LDAP,
} from 'api/models/auth-method';
import * as commonSelectors from 'admin/tests/helpers/selectors';
import * as selectors from './selectors';
module('Acceptance | managed-groups | delete', function (hooks) {
setupApplicationTest(hooks);
@@ -22,11 +23,6 @@ module('Acceptance | managed-groups | delete', function (hooks) {
let getManagedGroupCount;
const MANAGE_DROPDOWN_SELECTOR =
'[data-test-managed-group-dropdown] button:first-child';
const DELETE_ACTION_SELECTOR =
'[data-test-managed-group-dropdown] ul li button';
const instances = {
scopes: {
global: null,
@@ -39,7 +35,6 @@ module('Acceptance | managed-groups | delete', function (hooks) {
};
const urls = {
orgScope: null,
authMethods: null,
authMethod: null,
ldapAuthMethod: null,
@@ -73,8 +68,7 @@ module('Acceptance | managed-groups | delete', function (hooks) {
authMethod: instances.ldapAuthMethod,
});
// Generate route URLs for resources
urls.orgScope = `/scopes/${instances.scopes.org.id}`;
urls.authMethods = `${urls.orgScope}/auth-methods`;
urls.authMethods = `/scopes/${instances.scopes.org.id}/auth-methods`;
urls.authMethod = `${urls.authMethods}/${instances.authMethod.id}`;
urls.ldapAuthMethod = `${urls.authMethods}/${instances.ldapAuthMethod.id}`;
urls.managedGroups = `${urls.authMethod}/managed-groups`;
@@ -90,9 +84,9 @@ module('Acceptance | managed-groups | delete', function (hooks) {
const managedGroupsCount = getManagedGroupCount();
await visit(urls.managedGroups);
await click(`[href="${urls.managedGroup}"]`);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR);
await click(commonSelectors.HREF(urls.managedGroup));
await click(selectors.MANAGE_DROPDOWN_MANAGED_GROUPS);
await click(selectors.MANAGE_DROPDOWN_MANAGED_GROUP_DELETE);
assert.strictEqual(getManagedGroupCount(), managedGroupsCount - 1);
assert.strictEqual(currentURL(), urls.managedGroups);
@@ -102,9 +96,9 @@ module('Acceptance | managed-groups | delete', function (hooks) {
const managedGroupsCount = getManagedGroupCount();
await visit(urls.ldapManagedGroups);
await click(`[href="${urls.ldapManagedGroup}"]`);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR);
await click(commonSelectors.HREF(urls.ldapManagedGroup));
await click(selectors.MANAGE_DROPDOWN_MANAGED_GROUPS);
await click(selectors.MANAGE_DROPDOWN_MANAGED_GROUP_DELETE);
assert.strictEqual(getManagedGroupCount(), managedGroupsCount - 1);
assert.strictEqual(currentURL(), urls.ldapManagedGroups);
@@ -117,9 +111,9 @@ module('Acceptance | managed-groups | delete', function (hooks) {
);
await visit(urls.managedGroups);
await click(`[href="${urls.managedGroup}"]`);
await click(commonSelectors.HREF(urls.managedGroup));
assert.dom(MANAGE_DROPDOWN_SELECTOR).doesNotExist();
assert.dom(selectors.MANAGE_DROPDOWN_MANAGED_GROUPS).doesNotExist();
});
test('User cannot delete a ldap managed-group without proper authorization', async function (assert) {
@@ -129,9 +123,9 @@ module('Acceptance | managed-groups | delete', function (hooks) {
);
await visit(urls.ldapManagedGroups);
await click(`[href="${urls.ldapManagedGroup}"]`);
await click(commonSelectors.HREF(urls.ldapManagedGroup));
assert.dom(MANAGE_DROPDOWN_SELECTOR).doesNotExist();
assert.dom(selectors.MANAGE_DROPDOWN_MANAGED_GROUPS).doesNotExist();
});
test('Errors are displayed when delete on managed group fails', async function (assert) {
@@ -148,9 +142,9 @@ module('Acceptance | managed-groups | delete', function (hooks) {
});
await visit(urls.managedGroups);
await click(`[href="${urls.managedGroup}"]`);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR);
await click(commonSelectors.HREF(urls.managedGroup));
await click(selectors.MANAGE_DROPDOWN_MANAGED_GROUPS);
await click(selectors.MANAGE_DROPDOWN_MANAGED_GROUP_DELETE);
await a11yAudit();
assert.dom(commonSelectors.ALERT_TOAST_BODY).hasText('Oops.');
@@ -171,9 +165,9 @@ module('Acceptance | managed-groups | delete', function (hooks) {
});
await visit(urls.ldapManagedGroups);
await click(`[href="${urls.ldapManagedGroup}"]`);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR);
await click(commonSelectors.HREF(urls.ldapManagedGroup));
await click(selectors.MANAGE_DROPDOWN_MANAGED_GROUPS);
await click(selectors.MANAGE_DROPDOWN_MANAGED_GROUP_DELETE);
await a11yAudit();
assert.dom(commonSelectors.ALERT_TOAST_BODY).hasText('Oops.');
@@ -13,6 +13,8 @@ import {
TYPE_AUTH_METHOD_OIDC,
TYPE_AUTH_METHOD_LDAP,
} from 'api/models/auth-method';
import * as commonSelectors from 'admin/tests/helpers/selectors';
import * as selectors from './selectors';
module('Acceptance | managed-groups | list', function (hooks) {
setupApplicationTest(hooks);
@@ -20,8 +22,6 @@ module('Acceptance | managed-groups | list', function (hooks) {
setupIndexedDb(hooks);
let featuresService;
const MANAGE_DROPDOWN_SELECTOR =
'[data-test-manage-auth-method] button:first-child';
const instances = {
scopes: {
@@ -33,7 +33,6 @@ module('Acceptance | managed-groups | list', function (hooks) {
managedGroup: null,
};
const urls = {
orgScope: null,
authMethods: null,
authMethod: null,
ldapAuthMethod: null,
@@ -64,8 +63,7 @@ module('Acceptance | managed-groups | list', function (hooks) {
});
// Generate route URLs for resources
urls.orgScope = `/scopes/${instances.scopes.org.id}`;
urls.authMethods = `${urls.orgScope}/auth-methods`;
urls.authMethods = `/scopes/${instances.scopes.org.id}/auth-methods`;
urls.authMethod = `${urls.authMethods}/${instances.authMethod.id}`;
urls.ldapAuthMethod = `${urls.authMethods}/${instances.ldapAuthMethod.id}`;
urls.managedGroups = `${urls.authMethod}/managed-groups`;
@@ -78,7 +76,7 @@ module('Acceptance | managed-groups | list', function (hooks) {
test('User can navigate to managed groups with proper authorization', async function (assert) {
await visit(urls.authMethods);
await click(`[href="${urls.authMethod}"]`);
await click(commonSelectors.HREF(urls.authMethod));
assert.true(
instances.authMethod.authorized_collection_actions[
@@ -90,14 +88,14 @@ module('Acceptance | managed-groups | list', function (hooks) {
'managed-groups'
].includes('create'),
);
assert.dom(`[href="${urls.managedGroups}"]`).exists();
assert.dom(commonSelectors.HREF(urls.managedGroups)).exists();
});
test('User can navigate to ldap managed groups with proper authorization', async function (assert) {
featuresService.enable('ldap-auth-methods');
await visit(urls.authMethods);
await click(`[href="${urls.ldapAuthMethod}"]`);
await click(commonSelectors.HREF(urls.ldapAuthMethod));
assert.true(
instances.ldapAuthMethod.authorized_collection_actions[
@@ -109,14 +107,14 @@ module('Acceptance | managed-groups | list', function (hooks) {
'managed-groups'
].includes('create'),
);
assert.dom(`[href="${urls.ldapManagedGroups}"]`).exists();
assert.dom(commonSelectors.HREF(urls.ldapManagedGroups)).exists();
});
test('User cannot navigate to index without either list or create actions', async function (assert) {
instances.authMethod.authorized_collection_actions['managed-groups'] = [];
await visit(urls.authMethods);
await click(`[href="${urls.authMethod}"]`);
await click(commonSelectors.HREF(urls.authMethod));
assert.false(
instances.authMethod.authorized_collection_actions[
@@ -128,7 +126,7 @@ module('Acceptance | managed-groups | list', function (hooks) {
'managed-groups'
].includes('create'),
);
assert.dom(`[href="${urls.managedGroups}"]`).doesNotExist();
assert.dom(commonSelectors.HREF(urls.managedGroups)).doesNotExist();
});
test('User cannot navigate to ldap managed group index without either list or create actions', async function (assert) {
@@ -137,7 +135,7 @@ module('Acceptance | managed-groups | list', function (hooks) {
[];
await visit(urls.authMethods);
await click(`[href="${urls.ldapAuthMethod}"]`);
await click(commonSelectors.HREF(urls.ldapAuthMethod));
assert.false(
instances.ldapAuthMethod.authorized_collection_actions[
@@ -149,7 +147,7 @@ module('Acceptance | managed-groups | list', function (hooks) {
'managed-groups'
].includes('create'),
);
assert.dom(`[href="${urls.ldapManagedGroups}"]`).doesNotExist();
assert.dom(commonSelectors.HREF(urls.ldapManagedGroups)).doesNotExist();
});
test('User can navigate to index with only create action', async function (assert) {
@@ -158,11 +156,11 @@ module('Acceptance | managed-groups | list', function (hooks) {
];
await visit(urls.authMethods);
await click(`[href="${urls.authMethod}"]`);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(commonSelectors.HREF(urls.authMethod));
await click(selectors.MANAGE_DROPDOWN_AUTH_METHOD);
assert.dom(`[href="${urls.managedGroups}"]`).exists();
assert.dom(`[href="${urls.newManagedGroup}"]`).exists();
assert.dom(commonSelectors.HREF(urls.managedGroups)).exists();
assert.dom(commonSelectors.HREF(urls.newManagedGroup)).exists();
});
test('User can navigate to ldap managed groups index with only create action', async function (assert) {
@@ -171,10 +169,11 @@ module('Acceptance | managed-groups | list', function (hooks) {
'create',
];
await visit(urls.authMethods);
await click(`[href="${urls.ldapAuthMethod}"]`);
await click(MANAGE_DROPDOWN_SELECTOR);
assert.dom(`[href="${urls.ldapManagedGroups}"]`).exists();
assert.dom(`[href="${urls.newLdapManagedGroup}"]`).exists();
await click(commonSelectors.HREF(urls.ldapAuthMethod));
await click(selectors.MANAGE_DROPDOWN_AUTH_METHOD);
assert.dom(commonSelectors.HREF(urls.ldapManagedGroups)).exists();
assert.dom(commonSelectors.HREF(urls.newLdapManagedGroup)).exists();
});
});
@@ -4,7 +4,7 @@
*/
import { module, test } from 'qunit';
import { visit, currentURL, findAll } from '@ember/test-helpers';
import { visit, currentURL } from '@ember/test-helpers';
import { setupApplicationTest } from 'admin/tests/helpers';
import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
import a11yAudit from 'ember-a11y-testing/test-support/audit';
@@ -25,7 +25,6 @@ module('Acceptance | managed-groups | members', function (hooks) {
accounts: null,
};
const urls = {
orgScope: null,
authMethods: null,
authMethod: null,
managedGroups: null,
@@ -51,8 +50,7 @@ module('Acceptance | managed-groups | members', function (hooks) {
instances.managedGroup = this.server.db.managedGroups[0];
// Generate route URLs for resources
urls.orgScope = `/scopes/${instances.scopes.org.id}`;
urls.authMethods = `${urls.orgScope}/auth-methods`;
urls.authMethods = `/scopes/${instances.scopes.org.id}/auth-methods`;
urls.authMethod = `${urls.authMethods}/${instances.authMethod.id}`;
urls.managedGroups = `${urls.authMethod}/managed-groups`;
urls.managedGroup = `${urls.managedGroups}/${instances.managedGroup.id}`;
@@ -62,9 +60,10 @@ module('Acceptance | managed-groups | members', function (hooks) {
test('User can navigate to index', async function (assert) {
const membersCount = instances.managedGroup.memberIds.length;
await visit(urls.managedGroupMembers);
await a11yAudit();
assert.strictEqual(currentURL(), urls.managedGroupMembers);
assert.ok(membersCount);
assert.strictEqual(findAll('tbody tr').length, membersCount);
assert.dom('tbody tr').exists({ count: membersCount });
});
});
@@ -13,6 +13,7 @@ import {
TYPE_AUTH_METHOD_OIDC,
TYPE_AUTH_METHOD_LDAP,
} from 'api/models/auth-method';
import * as commonSelectors from 'admin/tests/helpers/selectors';
module('Acceptance | managed-groups | read', function (hooks) {
setupApplicationTest(hooks);
@@ -76,7 +77,7 @@ module('Acceptance | managed-groups | read', function (hooks) {
test('User can navigate to a managed group form', async function (assert) {
await visit(urls.managedGroups);
await click(`[href="${urls.managedGroup}"]`);
await click(commonSelectors.HREF(urls.managedGroup));
await a11yAudit();
assert.strictEqual(currentURL(), urls.managedGroup);
@@ -85,7 +86,7 @@ module('Acceptance | managed-groups | read', function (hooks) {
test('User can navigate to a ldap managed group form', async function (assert) {
await visit(urls.ldapManagedGroups);
await click(`[href="${urls.ldapManagedGroup}"]`);
await click(commonSelectors.HREF(urls.ldapManagedGroup));
await a11yAudit();
assert.strictEqual(currentURL(), urls.ldapManagedGroup);
@@ -98,9 +99,9 @@ module('Acceptance | managed-groups | read', function (hooks) {
);
await visit(urls.authMethod);
await click(`[href="${urls.managedGroups}"]`);
await click(commonSelectors.HREF(urls.managedGroups));
assert.dom(`[href="${urls.managedGroup}"]`).doesNotExist();
assert.dom(commonSelectors.HREF(urls.managedGroup)).doesNotExist();
});
test('User cannot navigate to a ldap managed group form without proper authorization', async function (assert) {
@@ -110,9 +111,9 @@ module('Acceptance | managed-groups | read', function (hooks) {
);
await visit(urls.ldapAuthMethod);
await click(`[href="${urls.ldapManagedGroups}"]`);
await click(commonSelectors.HREF(urls.ldapManagedGroups));
assert.dom(`[href="${urls.ldapManagedGroup}"]`).doesNotExist();
assert.dom(commonSelectors.HREF(urls.ldapManagedGroup)).doesNotExist();
});
test('User can navigate to managed group and incorrect url autocorrects', async function (assert) {
@@ -3,8 +3,12 @@
* SPDX-License-Identifier: BUSL-1.1
*/
export const MANAGE_DROPDOWN =
export const MANAGE_DROPDOWN_AUTH_METHOD =
'[data-test-manage-auth-method] button:first-child';
export const MANAGE_DROPDOWN_MANAGED_GROUPS =
'[data-test-managed-group-dropdown] button:first-child';
export const MANAGE_DROPDOWN_MANAGED_GROUP_DELETE =
'[data-test-managed-group-dropdown] ul li button';
export const FIELD_GROUP_NAMES = '[name="group_names"] input';
export const FIELD_GROUP_NAMES_VALUE = 'group name';