Icu 15478 refactor credentials delete test selectors (#2867)

* Refactor credential-store/credentials update test selectors

* Refactor credential-store/credentials delete test selectors
This commit is contained in:
Carlos Alcaide Corvo authored and GitHub committed 2025-06-11 09:29:46 -07:00
1 parent b8eb2c3c9b
commit 4c7f3fad75
2 files changed
+75 -67

No files matched your search

@@ -9,6 +9,7 @@ import setupMirage from 'ember-cli-mirage/test-support/setup-mirage';
import { authenticateSession } from 'ember-simple-auth/test-support'; import { authenticateSession } from 'ember-simple-auth/test-support';
import { click, currentURL, visit } from '@ember/test-helpers'; import { click, currentURL, visit } from '@ember/test-helpers';
import { Response } from 'miragejs'; import { Response } from 'miragejs';
import * as selectors from './selectors';
import * as commonSelectors from 'admin/tests/helpers/selectors'; import * as commonSelectors from 'admin/tests/helpers/selectors';
module( module(
@@ -21,10 +22,18 @@ module(
let getUsernameKeyPairCredentialCount; let getUsernameKeyPairCredentialCount;
let getJSONCredentialCount; let getJSONCredentialCount;
const MANAGE_DROPDOWN_SELECTOR = const mockResponseMessage = 'Oops.';
'[data-test-manage-credentials-dropdown] button:first-child'; const mockResponse = () => {
const DELETE_ACTION_SELECTOR = return new Response(
'[data-test-manage-credentials-dropdown] ul li button'; 490,
{},
{
status: 490,
code: 'error',
message: mockResponseMessage,
},
);
};
const instances = { const instances = {
scopes: { scopes: {
@@ -100,8 +109,10 @@ module(
const usernamePasswordCredentialCount = const usernamePasswordCredentialCount =
getUsernamePasswordCredentialCount(); getUsernamePasswordCredentialCount();
await visit(urls.usernamePasswordCredential); await visit(urls.usernamePasswordCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_DELETE);
assert.strictEqual(currentURL(), urls.credentials); assert.strictEqual(currentURL(), urls.credentials);
assert.strictEqual( assert.strictEqual(
getUsernamePasswordCredentialCount(), getUsernamePasswordCredentialCount(),
@@ -113,8 +124,10 @@ module(
const usernameKeyPairCredentialCount = const usernameKeyPairCredentialCount =
getUsernameKeyPairCredentialCount(); getUsernameKeyPairCredentialCount();
await visit(urls.usernameKeyPairCredential); await visit(urls.usernameKeyPairCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_DELETE);
assert.strictEqual(currentURL(), urls.credentials); assert.strictEqual(currentURL(), urls.credentials);
assert.strictEqual( assert.strictEqual(
getUsernameKeyPairCredentialCount(), getUsernameKeyPairCredentialCount(),
@@ -125,8 +138,10 @@ module(
test('can delete JSON credential', async function (assert) { test('can delete JSON credential', async function (assert) {
const jsonCredentialCount = getJSONCredentialCount(); const jsonCredentialCount = getJSONCredentialCount();
await visit(urls.jsonCredential); await visit(urls.jsonCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_DELETE);
assert.strictEqual(currentURL(), urls.credentials); assert.strictEqual(currentURL(), urls.credentials);
assert.strictEqual(getJSONCredentialCount(), jsonCredentialCount - 1); assert.strictEqual(getJSONCredentialCount(), jsonCredentialCount - 1);
}); });
@@ -139,8 +154,9 @@ module(
(item) => item !== 'delete', (item) => item !== 'delete',
); );
await visit(urls.usernamePasswordCredential); await visit(urls.usernamePasswordCredential);
assert.strictEqual(currentURL(), urls.usernamePasswordCredential); assert.strictEqual(currentURL(), urls.usernamePasswordCredential);
assert.dom(MANAGE_DROPDOWN_SELECTOR).doesNotExist(); assert.dom(selectors.MANAGE_DROPDOWN).doesNotExist();
assert.strictEqual( assert.strictEqual(
getUsernamePasswordCredentialCount(), getUsernamePasswordCredentialCount(),
usernamePasswordCredentialCount, usernamePasswordCredentialCount,
@@ -155,8 +171,9 @@ module(
(item) => item !== 'delete', (item) => item !== 'delete',
); );
await visit(urls.usernameKeyPairCredential); await visit(urls.usernameKeyPairCredential);
assert.strictEqual(currentURL(), urls.usernameKeyPairCredential); assert.strictEqual(currentURL(), urls.usernameKeyPairCredential);
assert.dom(MANAGE_DROPDOWN_SELECTOR).doesNotExist(); assert.dom(selectors.MANAGE_DROPDOWN).doesNotExist();
assert.strictEqual( assert.strictEqual(
getUsernamePasswordCredentialCount(), getUsernamePasswordCredentialCount(),
usernameKeyPairCredentialCount, usernameKeyPairCredentialCount,
@@ -170,8 +187,9 @@ module(
(item) => item !== 'delete', (item) => item !== 'delete',
); );
await visit(urls.jsonCredential); await visit(urls.jsonCredential);
assert.strictEqual(currentURL(), urls.jsonCredential); assert.strictEqual(currentURL(), urls.jsonCredential);
assert.dom(MANAGE_DROPDOWN_SELECTOR).doesNotExist(); assert.dom(selectors.MANAGE_DROPDOWN).doesNotExist();
assert.strictEqual(getJSONCredentialCount(), jsonCredentialCount); assert.strictEqual(getJSONCredentialCount(), jsonCredentialCount);
}); });
@@ -181,8 +199,9 @@ module(
const usernamePasswordCredentialCount = const usernamePasswordCredentialCount =
getUsernamePasswordCredentialCount(); getUsernamePasswordCredentialCount();
await visit(urls.usernamePasswordCredential); await visit(urls.usernamePasswordCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_DELETE);
await click(commonSelectors.MODAL_WARNING_CONFIRM_BTN); await click(commonSelectors.MODAL_WARNING_CONFIRM_BTN);
assert.strictEqual(currentURL(), urls.credentials); assert.strictEqual(currentURL(), urls.credentials);
assert.strictEqual( assert.strictEqual(
@@ -197,9 +216,11 @@ module(
const usernameKeyPairCredentialCount = const usernameKeyPairCredentialCount =
getUsernameKeyPairCredentialCount(); getUsernameKeyPairCredentialCount();
await visit(urls.usernameKeyPairCredential); await visit(urls.usernameKeyPairCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_DELETE);
await click(commonSelectors.MODAL_WARNING_CONFIRM_BTN); await click(commonSelectors.MODAL_WARNING_CONFIRM_BTN);
assert.strictEqual(currentURL(), urls.credentials); assert.strictEqual(currentURL(), urls.credentials);
assert.strictEqual( assert.strictEqual(
getUsernameKeyPairCredentialCount(), getUsernameKeyPairCredentialCount(),
@@ -212,9 +233,11 @@ module(
confirmService.enabled = true; confirmService.enabled = true;
const jsonCredentialCount = getJSONCredentialCount(); const jsonCredentialCount = getJSONCredentialCount();
await visit(urls.jsonCredential); await visit(urls.jsonCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_DELETE);
await click(commonSelectors.MODAL_WARNING_CONFIRM_BTN); await click(commonSelectors.MODAL_WARNING_CONFIRM_BTN);
assert.strictEqual(currentURL(), urls.credentials); assert.strictEqual(currentURL(), urls.credentials);
assert.strictEqual(getJSONCredentialCount(), jsonCredentialCount - 1); assert.strictEqual(getJSONCredentialCount(), jsonCredentialCount - 1);
}); });
@@ -225,9 +248,11 @@ module(
const usernamePasswordCredentialCount = const usernamePasswordCredentialCount =
getUsernamePasswordCredentialCount(); getUsernamePasswordCredentialCount();
await visit(urls.usernamePasswordCredential); await visit(urls.usernamePasswordCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_DELETE);
await click(commonSelectors.MODAL_WARNING_CANCEL_BTN); await click(commonSelectors.MODAL_WARNING_CANCEL_BTN);
assert.strictEqual(currentURL(), urls.usernamePasswordCredential); assert.strictEqual(currentURL(), urls.usernamePasswordCredential);
assert.strictEqual( assert.strictEqual(
getUsernamePasswordCredentialCount(), getUsernamePasswordCredentialCount(),
@@ -241,9 +266,11 @@ module(
const usernameKeyPairCredentialCount = const usernameKeyPairCredentialCount =
getUsernameKeyPairCredentialCount(); getUsernameKeyPairCredentialCount();
await visit(urls.usernameKeyPairCredential); await visit(urls.usernameKeyPairCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_DELETE);
await click(commonSelectors.MODAL_WARNING_CANCEL_BTN); await click(commonSelectors.MODAL_WARNING_CANCEL_BTN);
assert.strictEqual(currentURL(), urls.usernameKeyPairCredential); assert.strictEqual(currentURL(), urls.usernameKeyPairCredential);
assert.strictEqual( assert.strictEqual(
getUsernameKeyPairCredentialCount(), getUsernameKeyPairCredentialCount(),
@@ -256,65 +283,43 @@ module(
confirmService.enabled = true; confirmService.enabled = true;
const jsonCredentialCount = getJSONCredentialCount(); const jsonCredentialCount = getJSONCredentialCount();
await visit(urls.jsonCredential); await visit(urls.jsonCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
await click(selectors.MANAGE_DROPDOWN_DELETE);
await click(commonSelectors.MODAL_WARNING_CANCEL_BTN); await click(commonSelectors.MODAL_WARNING_CANCEL_BTN);
assert.strictEqual(currentURL(), urls.jsonCredential); assert.strictEqual(currentURL(), urls.jsonCredential);
assert.strictEqual(getJSONCredentialCount(), jsonCredentialCount); assert.strictEqual(getJSONCredentialCount(), jsonCredentialCount);
}); });
test('deleting a username & password credential which errors displays error message', async function (assert) { test('deleting a username & password credential which errors displays error message', async function (assert) {
this.server.del('/credentials/:id', () => { this.server.del('/credentials/:id', mockResponse);
return new Response(
490,
{},
{
status: 490,
code: 'error',
message: 'Oops.',
},
);
});
await visit(urls.usernamePasswordCredential); await visit(urls.usernamePasswordCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
assert.dom(commonSelectors.ALERT_TOAST_BODY).hasText('Oops.'); await click(selectors.MANAGE_DROPDOWN_DELETE);
assert.dom(commonSelectors.ALERT_TOAST_BODY).hasText(mockResponseMessage);
}); });
test('deleting a username & key pair credential which errors displays error message', async function (assert) { test('deleting a username & key pair credential which errors displays error message', async function (assert) {
this.server.del('/credentials/:id', () => { this.server.del('/credentials/:id', mockResponse);
return new Response(
490,
{},
{
status: 490,
code: 'error',
message: 'Oops.',
},
);
});
await visit(urls.usernameKeyPairCredential); await visit(urls.usernameKeyPairCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
assert.dom(commonSelectors.ALERT_TOAST_BODY).hasText('Oops.'); await click(selectors.MANAGE_DROPDOWN_DELETE);
assert.dom(commonSelectors.ALERT_TOAST_BODY).hasText(mockResponseMessage);
}); });
test('deleting a JSON credential which errors displays error message', async function (assert) { test('deleting a JSON credential which errors displays error message', async function (assert) {
this.server.del('/credentials/:id', () => { this.server.del('/credentials/:id', mockResponse);
return new Response(
490,
{},
{
status: 490,
code: 'error',
message: 'Oops.',
},
);
});
await visit(urls.jsonCredential); await visit(urls.jsonCredential);
await click(MANAGE_DROPDOWN_SELECTOR);
await click(DELETE_ACTION_SELECTOR); await click(selectors.MANAGE_DROPDOWN);
assert.dom(commonSelectors.ALERT_TOAST_BODY).hasText('Oops.'); await click(selectors.MANAGE_DROPDOWN_DELETE);
assert.dom(commonSelectors.ALERT_TOAST_BODY).hasText(mockResponseMessage);
}); });
}, },
); );
@@ -15,6 +15,9 @@ export const FIELD_SSH_PRIVATE_KEY_ERROR =
export const FIELD_SSH_PRIVATE_KEY_PASSPHRASE = '[name=private_key_passphrase]'; export const FIELD_SSH_PRIVATE_KEY_PASSPHRASE = '[name=private_key_passphrase]';
export const EDITOR = '[data-test-code-editor-field-editor]'; export const EDITOR = '[data-test-code-editor-field-editor]';
export const MANAGE_DROPDOWN = '[data-test-manage-credentials-dropdown] button';
export const MANAGE_DROPDOWN_DELETE =
'[data-test-manage-credentials-dropdown] ul li button';
export const MANAGE_DROPDOWN_NEW_CREDENTIAL = export const MANAGE_DROPDOWN_NEW_CREDENTIAL =
'[data-test-manage-credential-stores-dropdown] a'; '[data-test-manage-credential-stores-dropdown] a';