From aa18f599ce8de83952396e04f3631eda4ac32f7e Mon Sep 17 00:00:00 2001 From: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com> Date: Thu, 10 Jul 2025 15:34:24 -0700 Subject: [PATCH] =?UTF-8?q?test:=20=F0=9F=92=8D=20refactor=20target=20work?= =?UTF-8?q?er=20test=20selectors=20(#2910)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test: 💍 refactor target worker test selectors ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16438 * test: 💍 update selector ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-16438 --- .../credential-store/create-test.js | 2 +- .../acceptance/credential-store/selectors.js | 1 - .../credential-store/update-test.js | 2 +- .../acceptance/storage-buckets/create-test.js | 14 +- .../acceptance/storage-buckets/selectors.js | 2 - .../acceptance/storage-buckets/update-test.js | 6 +- .../tests/acceptance/targets/selectors.js | 7 + .../tests/acceptance/targets/workers-test.js | 202 ++++++++++-------- ui/admin/tests/helpers/selectors.js | 3 + 9 files changed, 134 insertions(+), 105 deletions(-) diff --git a/ui/admin/tests/acceptance/credential-store/create-test.js b/ui/admin/tests/acceptance/credential-store/create-test.js index a880dd889..b8dbe5e1f 100644 --- a/ui/admin/tests/acceptance/credential-store/create-test.js +++ b/ui/admin/tests/acceptance/credential-store/create-test.js @@ -98,7 +98,7 @@ module('Acceptance | credential-stores | create', function (hooks) { await fillIn(commonSelectors.FIELD_NAME, commonSelectors.FIELD_NAME_VALUE); await click(selectors.TYPE_VAULT); await fillIn( - selectors.CODE_EDITOR_BODY, + commonSelectors.CODE_EDITOR_CONTENT, selectors.EDITOR_WORKER_FILTER_VALUE, ); await click(commonSelectors.SAVE_BTN); diff --git a/ui/admin/tests/acceptance/credential-store/selectors.js b/ui/admin/tests/acceptance/credential-store/selectors.js index e0f4df4f5..73d2f7d7d 100644 --- a/ui/admin/tests/acceptance/credential-store/selectors.js +++ b/ui/admin/tests/acceptance/credential-store/selectors.js @@ -16,7 +16,6 @@ export const DELETE_ACTION = // Search filtering selectors export const NO_RESULTS_MSG = '[data-test-no-credential-store-results]'; -export const CODE_EDITOR_BODY = '[data-test-code-editor-field-editor] textarea'; export const CODE_BLOCK_BODY = '.hds-code-block__code'; export const EDITOR_WORKER_FILTER_VALUE = '"dev" in "/tags/env"'; diff --git a/ui/admin/tests/acceptance/credential-store/update-test.js b/ui/admin/tests/acceptance/credential-store/update-test.js index 05ed1767f..93091815c 100644 --- a/ui/admin/tests/acceptance/credential-store/update-test.js +++ b/ui/admin/tests/acceptance/credential-store/update-test.js @@ -381,7 +381,7 @@ module('Acceptance | credential-stores | update', function (hooks) { await click(commonSelectors.HREF(urls.workerFilter)); await click(selectors.MANAGE_DROPDOWN); await click(selectors.EDIT_WORKER_FILTER_ACTION); - await fillIn(selectors.CODE_EDITOR_BODY, '"bar" in "/tags/foo"'); + await fillIn(commonSelectors.CODE_EDITOR_CONTENT, '"bar" in "/tags/foo"'); await click(commonSelectors.SAVE_BTN); assert.dom(selectors.CODE_BLOCK_BODY).exists(); diff --git a/ui/admin/tests/acceptance/storage-buckets/create-test.js b/ui/admin/tests/acceptance/storage-buckets/create-test.js index abcf6d997..28d455d4c 100644 --- a/ui/admin/tests/acceptance/storage-buckets/create-test.js +++ b/ui/admin/tests/acceptance/storage-buckets/create-test.js @@ -58,7 +58,7 @@ module('Acceptance | storage-buckets | create', function (hooks) { await select(selectors.FIELD_SCOPE, 'global'); await fillIn( - selectors.EDITOR_WORKER_FILTER, + commonSelectors.CODE_EDITOR_CONTENT, selectors.EDITOR_WORKER_FILTER_VALUE, ); @@ -89,7 +89,7 @@ module('Acceptance | storage-buckets | create', function (hooks) { await select(selectors.FIELD_SCOPE, instances.scopes.org.id); await fillIn( - selectors.EDITOR_WORKER_FILTER, + commonSelectors.CODE_EDITOR_CONTENT, selectors.EDITOR_WORKER_FILTER_VALUE, ); @@ -133,7 +133,7 @@ module('Acceptance | storage-buckets | create', function (hooks) { await fillIn(selectors.FIELD_ACCESS_KEY, selectors.FIELD_ACCESS_KEY_VALUE); await fillIn(selectors.FIELD_SECRET_KEY, selectors.FIELD_SECRET_KEY_VALUE); await fillIn( - selectors.EDITOR_WORKER_FILTER, + commonSelectors.CODE_EDITOR_CONTENT, selectors.EDITOR_WORKER_FILTER_VALUE, ); @@ -170,7 +170,7 @@ module('Acceptance | storage-buckets | create', function (hooks) { await click(selectors.FIELD_DYNAMIC_CREDENTIAL); await fillIn(selectors.FIELD_ROLE_ARN, selectors.FIELD_ROLE_ARN_VALUE); await fillIn( - selectors.EDITOR_WORKER_FILTER, + commonSelectors.CODE_EDITOR_CONTENT, selectors.EDITOR_WORKER_FILTER_VALUE, ); @@ -197,7 +197,7 @@ module('Acceptance | storage-buckets | create', function (hooks) { await fillIn(selectors.FIELD_ACCESS_KEY, selectors.FIELD_ACCESS_KEY_VALUE); await fillIn(selectors.FIELD_SECRET_KEY, selectors.FIELD_SECRET_KEY_VALUE); await fillIn( - selectors.EDITOR_WORKER_FILTER, + commonSelectors.CODE_EDITOR_CONTENT, selectors.EDITOR_WORKER_FILTER_VALUE, ); @@ -234,7 +234,7 @@ module('Acceptance | storage-buckets | create', function (hooks) { await fillIn(selectors.FIELD_ACCESS_KEY, selectors.FIELD_ACCESS_KEY_VALUE); await fillIn(selectors.FIELD_SECRET_KEY, selectors.FIELD_SECRET_KEY_VALUE); await fillIn( - selectors.EDITOR_WORKER_FILTER, + commonSelectors.CODE_EDITOR_CONTENT, selectors.EDITOR_WORKER_FILTER_VALUE, ); @@ -294,7 +294,7 @@ module('Acceptance | storage-buckets | create', function (hooks) { await click(`[href="${urls.newStorageBucket}"]`); await fillIn( - selectors.EDITOR_WORKER_FILTER, + commonSelectors.CODE_EDITOR_CONTENT, selectors.EDITOR_WORKER_FILTER_VALUE, ); await click(commonSelectors.SAVE_BTN); diff --git a/ui/admin/tests/acceptance/storage-buckets/selectors.js b/ui/admin/tests/acceptance/storage-buckets/selectors.js index 4d44465a5..d98d219c9 100644 --- a/ui/admin/tests/acceptance/storage-buckets/selectors.js +++ b/ui/admin/tests/acceptance/storage-buckets/selectors.js @@ -30,8 +30,6 @@ export const FIELD_SECRET_KEY_EDIT_BTN = export const FIELD_WORKER_FILTER = '[name=worker_filter]'; export const FIELD_WORKER_FILTER_ERROR = '[data-test-worker-filter-error]'; export const READONLY_WORKER_FILTER = '[data-test-worker-filter]'; -export const EDITOR_WORKER_FILTER = - '[data-test-code-editor-field-editor] textarea'; export const EDITOR_WORKER_FILTER_VALUE = '"dev" in "/tags/env"'; export const TOAST = '[role=alert] div'; export const TOAST_SUCCESSFUL_VALUE = 'Saved successfully.'; diff --git a/ui/admin/tests/acceptance/storage-buckets/update-test.js b/ui/admin/tests/acceptance/storage-buckets/update-test.js index 89df6e3ec..8621ceacd 100644 --- a/ui/admin/tests/acceptance/storage-buckets/update-test.js +++ b/ui/admin/tests/acceptance/storage-buckets/update-test.js @@ -166,7 +166,7 @@ module('Acceptance | storage-buckets | update', function (hooks) { await click(`[href="${urls.storageBucket}"]`); await click(commonSelectors.EDIT_BTN, 'Activate edit mode'); await fillIn( - selectors.EDITOR_WORKER_FILTER, + commonSelectors.CODE_EDITOR_CONTENT, selectors.EDITOR_WORKER_FILTER_VALUE, ); await click(commonSelectors.SAVE_BTN); @@ -223,11 +223,11 @@ module('Acceptance | storage-buckets | update', function (hooks) { await click(commonSelectors.HREF(urls.storageBucketMinio)); assert.dom(selectors.READONLY_WORKER_FILTER).isVisible(); - assert.dom(selectors.EDITOR_WORKER_FILTER).doesNotExist(); + assert.dom(commonSelectors.CODE_EDITOR_CONTENT).doesNotExist(); await click(commonSelectors.EDIT_BTN, 'Click edit mode'); - assert.dom(selectors.EDITOR_WORKER_FILTER).isVisible(); + assert.dom(commonSelectors.CODE_EDITOR_CONTENT).isVisible(); assert.dom(selectors.READONLY_WORKER_FILTER).doesNotExist(); }); }); diff --git a/ui/admin/tests/acceptance/targets/selectors.js b/ui/admin/tests/acceptance/targets/selectors.js index 60f299ddb..b4b0f7804 100644 --- a/ui/admin/tests/acceptance/targets/selectors.js +++ b/ui/admin/tests/acceptance/targets/selectors.js @@ -58,3 +58,10 @@ export const TABLE_SESSIONS_ID = (id) => `tbody [data-test-sessions-table-row="${id}"] .hds-table__td:first-child`; export const TABLE_CREDENTIAL_SOURCE_CHECKBOX = (type) => `tbody [data-test-credential-source="${type}"] input[type="checkbox"]`; + +export const CODE_BLOCK_CONTENT = (name) => + `[data-test-target-${name}-workers-accordion-item] .hds-code-block__body`; +export const WORKERS_ACCORDION_DROPDOWN = (name) => + `[data-test-target-${name}-workers-accordion-item] .hds-accordion-item__button`; +export const WORKERS_ACCORDION_DROPDOWN_LINK = (name) => + `[data-test-target-${name}-workers-accordion-item] a`; diff --git a/ui/admin/tests/acceptance/targets/workers-test.js b/ui/admin/tests/acceptance/targets/workers-test.js index a4b6a1d6b..827edc243 100644 --- a/ui/admin/tests/acceptance/targets/workers-test.js +++ b/ui/admin/tests/acceptance/targets/workers-test.js @@ -10,6 +10,7 @@ import setupMirage from 'ember-cli-mirage/test-support/setup-mirage'; import a11yAudit from 'ember-a11y-testing/test-support/audit'; import { authenticateSession } from 'ember-simple-auth/test-support'; import * as commonSelectors from 'admin/tests/helpers/selectors'; +import * as selectors from './selectors'; module('Acceptance | targets | workers', function (hooks) { setupApplicationTest(hooks); @@ -19,16 +20,8 @@ module('Acceptance | targets | workers', function (hooks) { let featuresService; let featureEdition; - const ACCORDION_DROPDOWN_TEXT_SELECTOR = (name) => - `[data-test-target-${name}-workers-accordion-item] a`; - const ACCORDION_DROPDOWN_SELECTOR = (name) => - `[data-test-target-${name}-workers-accordion-item] .hds-accordion-item__button`; - const CODE_BLOCK_SELECTOR = (name) => - `[data-test-target-${name}-workers-accordion-item] .hds-code-block__body`; - const CODE_EDITOR_CONTENT_SELECTOR = - '[data-test-code-editor-field-editor] textarea'; - const SAVE_BUTTON_SELECTOR = '[type="submit"]'; - const CANCEL_BUTTON_SELECTOR = '.rose-form-actions [type="button"]'; + const EGRESS_WORKER_FILTER_VALUE = '"egress" in "/worker/filters"'; + const INGRESS_WORKER_FILTER_VALUE = '"ingress" in "/worker/filters"'; const instances = { scopes: { @@ -40,7 +33,6 @@ module('Acceptance | targets | workers', function (hooks) { }; const urls = { - orgScope: null, projectScope: null, targets: null, target: null, @@ -69,7 +61,6 @@ module('Acceptance | targets | workers', function (hooks) { ingress_worker_filter: '"ingress" in "/worker/filter"', }); - urls.orgScope = `/scopes/${instances.scopes.org.id}/scopes`; urls.projectScope = `/scopes/${instances.scopes.project.id}`; urls.targets = `${urls.projectScope}/targets`; urls.target = `${urls.targets}/${instances.target.id}`; @@ -89,7 +80,7 @@ module('Acceptance | targets | workers', function (hooks) { session.set('data.theme', 'light'); await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); await a11yAudit(); assert.strictEqual(currentURL(), urls.targetWorkers); @@ -99,13 +90,13 @@ module('Acceptance | targets | workers', function (hooks) { featureEdition.setEdition('enterprise'); await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); assert - .dom(CODE_BLOCK_SELECTOR('ingress')) + .dom(selectors.CODE_BLOCK_CONTENT('ingress')) .hasText(instances.target.ingress_worker_filter); assert - .dom(CODE_BLOCK_SELECTOR('egress')) + .dom(selectors.CODE_BLOCK_CONTENT('egress')) .hasText(instances.target.egress_worker_filter); }); @@ -113,13 +104,13 @@ module('Acceptance | targets | workers', function (hooks) { featureEdition.setEdition('hcp'); await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); assert - .dom(CODE_BLOCK_SELECTOR('ingress')) + .dom(selectors.CODE_BLOCK_CONTENT('ingress')) .hasText(instances.target.ingress_worker_filter); assert - .dom(CODE_BLOCK_SELECTOR('egress')) + .dom(selectors.CODE_BLOCK_CONTENT('egress')) .hasText(instances.target.egress_worker_filter); }); @@ -127,11 +118,11 @@ module('Acceptance | targets | workers', function (hooks) { featureEdition.setEdition('oss'); await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); - assert.dom(ACCORDION_DROPDOWN_SELECTOR('ingress')).doesNotExist(); + assert.dom(selectors.WORKERS_ACCORDION_DROPDOWN('ingress')).doesNotExist(); assert - .dom(CODE_BLOCK_SELECTOR('egress')) + .dom(selectors.CODE_BLOCK_CONTENT('egress')) .hasText(instances.target.egress_worker_filter); }); @@ -139,13 +130,13 @@ module('Acceptance | targets | workers', function (hooks) { featureEdition.setEdition('hcp'); await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); assert - .dom(CODE_BLOCK_SELECTOR('ingress')) + .dom(selectors.CODE_BLOCK_CONTENT('ingress')) .hasText(instances.target.ingress_worker_filter); assert - .dom(CODE_BLOCK_SELECTOR('egress')) + .dom(selectors.CODE_BLOCK_CONTENT('egress')) .hasText(instances.target.egress_worker_filter); }); @@ -155,23 +146,23 @@ module('Acceptance | targets | workers', function (hooks) { instances.target.ingress_worker_filter = null; await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); - assert.dom(CODE_BLOCK_SELECTOR('ingress')).doesNotExist(); - assert.dom(CODE_BLOCK_SELECTOR('egress')).doesNotExist(); + assert.dom(selectors.CODE_BLOCK_CONTENT('ingress')).doesNotExist(); + assert.dom(selectors.CODE_BLOCK_CONTENT('egress')).doesNotExist(); }); test('user can view egress and ingress filters when `worker-filter` is enabled', async function (assert) { featuresService.enable('worker-filter'); await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); assert - .dom(CODE_BLOCK_SELECTOR('ingress')) + .dom(selectors.CODE_BLOCK_CONTENT('ingress')) .hasText(instances.target.ingress_worker_filter); assert - .dom(CODE_BLOCK_SELECTOR('egress')) + .dom(selectors.CODE_BLOCK_CONTENT('egress')) .hasText(instances.target.egress_worker_filter); }); @@ -179,70 +170,80 @@ module('Acceptance | targets | workers', function (hooks) { featuresService.disable('worker-filter'); await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); - assert.dom(ACCORDION_DROPDOWN_SELECTOR('ingress')).doesNotExist(); + assert.dom(selectors.WORKERS_ACCORDION_DROPDOWN('ingress')).doesNotExist(); assert - .dom(CODE_BLOCK_SELECTOR('egress')) + .dom(selectors.CODE_BLOCK_CONTENT('egress')) .hasText(instances.target.egress_worker_filter); }); test('user can save ingress worker filter to a target when `worker-filter` is enabled', async function (assert) { featuresService.enable('worker-filter'); instances.target.update({ ingress_worker_filter: '' }); - const ingressWorkerFilter = '"random" in "/worker/filters"'; await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); - await click(`[href="${urls.targetEditIngressFilter}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); + await click(commonSelectors.HREF(urls.targetEditIngressFilter)); assert.strictEqual(currentURL(), urls.targetEditIngressFilter); - await fillIn(CODE_EDITOR_CONTENT_SELECTOR, ingressWorkerFilter); - await click(SAVE_BUTTON_SELECTOR); + await fillIn( + commonSelectors.CODE_EDITOR_CONTENT, + INGRESS_WORKER_FILTER_VALUE, + ); + await click(commonSelectors.SAVE_BTN); assert.strictEqual(currentURL(), urls.targetWorkers); - assert.dom(CODE_BLOCK_SELECTOR('ingress')).hasText(ingressWorkerFilter); + assert + .dom(selectors.CODE_BLOCK_CONTENT('ingress')) + .hasText(INGRESS_WORKER_FILTER_VALUE); }); test('user can cancel changes to ingress worker filter in a target when `worker-filter` is enabled', async function (assert) { featuresService.enable('worker-filter'); - const ingressWorkerFilter = '"random" in "/worker/filters"'; await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); - await click(`[href="${urls.targetEditIngressFilter}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); + await click(commonSelectors.HREF(urls.targetEditIngressFilter)); assert.strictEqual(currentURL(), urls.targetEditIngressFilter); - await fillIn(CODE_EDITOR_CONTENT_SELECTOR, ingressWorkerFilter); - await click(CANCEL_BUTTON_SELECTOR); + await fillIn( + commonSelectors.CODE_EDITOR_CONTENT, + INGRESS_WORKER_FILTER_VALUE, + ); + await click(commonSelectors.CANCEL_BTN); assert.strictEqual(currentURL(), urls.targetWorkers); assert.notEqual( instances.target.ingress_worker_filter, - ingressWorkerFilter, + INGRESS_WORKER_FILTER_VALUE, ); assert - .dom(CODE_BLOCK_SELECTOR('ingress')) + .dom(selectors.CODE_BLOCK_CONTENT('ingress')) .hasText(instances.target.ingress_worker_filter); }); test('user can save egress worker filter to a target', async function (assert) { instances.target.update({ egress_worker_filter: '' }); - const egressWorkerFilter = '"random" in "/worker/filters"'; await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); - await click(`[href="${urls.targetEditEgressFilter}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); + await click(commonSelectors.HREF(urls.targetEditEgressFilter)); assert.strictEqual(currentURL(), urls.targetEditEgressFilter); - await fillIn(CODE_EDITOR_CONTENT_SELECTOR, egressWorkerFilter); - await click(SAVE_BUTTON_SELECTOR); + await fillIn( + commonSelectors.CODE_EDITOR_CONTENT, + EGRESS_WORKER_FILTER_VALUE, + ); + await click(commonSelectors.SAVE_BTN); assert.strictEqual(currentURL(), urls.targetWorkers); - assert.dom(CODE_BLOCK_SELECTOR('egress')).hasText(egressWorkerFilter); + assert + .dom(selectors.CODE_BLOCK_CONTENT('egress')) + .hasText(EGRESS_WORKER_FILTER_VALUE); }); test('user will see "Add worker filter" if no filter set', async function (assert) { @@ -253,13 +254,13 @@ module('Acceptance | targets | workers', function (hooks) { }); await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); assert - .dom(ACCORDION_DROPDOWN_TEXT_SELECTOR('egress')) + .dom(selectors.WORKERS_ACCORDION_DROPDOWN_LINK('egress')) .hasText(intl.t('actions.add-worker-filter')); assert - .dom(ACCORDION_DROPDOWN_TEXT_SELECTOR('ingress')) + .dom(selectors.WORKERS_ACCORDION_DROPDOWN_LINK('ingress')) .hasText(intl.t('actions.add-worker-filter')); }); @@ -267,31 +268,37 @@ module('Acceptance | targets | workers', function (hooks) { featuresService.enable('worker-filter'); await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); assert - .dom(ACCORDION_DROPDOWN_TEXT_SELECTOR('egress')) + .dom(selectors.WORKERS_ACCORDION_DROPDOWN_LINK('egress')) .hasText(intl.t('actions.edit-worker-filter')); assert - .dom(ACCORDION_DROPDOWN_TEXT_SELECTOR('ingress')) + .dom(selectors.WORKERS_ACCORDION_DROPDOWN_LINK('ingress')) .hasText(intl.t('actions.edit-worker-filter')); }); test('user can cancel changes to egress worker filter in a target', async function (assert) { - const egressWorkerFilter = '"random" in "/worker/filters"'; await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); - await click(`[href="${urls.targetEditEgressFilter}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); + await click(commonSelectors.HREF(urls.targetEditEgressFilter)); assert.strictEqual(currentURL(), urls.targetEditEgressFilter); - await fillIn(CODE_EDITOR_CONTENT_SELECTOR, egressWorkerFilter); - await click(CANCEL_BUTTON_SELECTOR); + + await fillIn( + commonSelectors.CODE_EDITOR_CONTENT, + EGRESS_WORKER_FILTER_VALUE, + ); + await click(commonSelectors.CANCEL_BTN); assert.strictEqual(currentURL(), urls.targetWorkers); - assert.notEqual(instances.target.egress_worker_filter, egressWorkerFilter); + assert.notEqual( + instances.target.egress_worker_filter, + EGRESS_WORKER_FILTER_VALUE, + ); assert - .dom(CODE_BLOCK_SELECTOR('egress')) + .dom(selectors.CODE_BLOCK_CONTENT('egress')) .hasText(instances.target.egress_worker_filter); }); @@ -299,15 +306,17 @@ module('Acceptance | targets | workers', function (hooks) { featuresService.enable('worker-filter'); const confirmService = this.owner.lookup('service:confirm'); confirmService.enabled = true; - const ingressWorkerFilter = '"random" in "/worker/filters"'; await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); - await click(`[href="${urls.targetEditIngressFilter}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); + await click(commonSelectors.HREF(urls.targetEditIngressFilter)); assert.strictEqual(currentURL(), urls.targetEditIngressFilter); - await fillIn(CODE_EDITOR_CONTENT_SELECTOR, ingressWorkerFilter); - await click(`[href="${urls.target}"]`); + await fillIn( + commonSelectors.CODE_EDITOR_CONTENT, + INGRESS_WORKER_FILTER_VALUE, + ); + await click(commonSelectors.HREF(urls.target)); assert.dom(commonSelectors.MODAL_WARNING).isVisible(); @@ -316,7 +325,7 @@ module('Acceptance | targets | workers', function (hooks) { assert.strictEqual(currentURL(), urls.target); assert.notEqual( instances.target.ingress_worker_filter, - ingressWorkerFilter, + INGRESS_WORKER_FILTER_VALUE, ); }); @@ -324,15 +333,17 @@ module('Acceptance | targets | workers', function (hooks) { featuresService.enable('worker-filter'); const confirmService = this.owner.lookup('service:confirm'); confirmService.enabled = true; - const ingressWorkerFilter = '"random" in "/worker/filters"'; await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); - await click(`[href="${urls.targetEditIngressFilter}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); + await click(commonSelectors.HREF(urls.targetEditIngressFilter)); assert.strictEqual(currentURL(), urls.targetEditIngressFilter); - await fillIn(CODE_EDITOR_CONTENT_SELECTOR, ingressWorkerFilter); - await click(`[href="${urls.target}"]`); + await fillIn( + commonSelectors.CODE_EDITOR_CONTENT, + INGRESS_WORKER_FILTER_VALUE, + ); + await click(commonSelectors.HREF(urls.target)); assert.dom(commonSelectors.MODAL_WARNING).isVisible(); @@ -341,49 +352,60 @@ module('Acceptance | targets | workers', function (hooks) { assert.strictEqual(currentURL(), urls.targetEditIngressFilter); assert.notEqual( instances.target.ingress_worker_filter, - ingressWorkerFilter, + INGRESS_WORKER_FILTER_VALUE, ); }); test('can discard unsaved egress worker filter changes in a target via dialog', async function (assert) { const confirmService = this.owner.lookup('service:confirm'); confirmService.enabled = true; - const egressWorkerFilter = '"random" in "/worker/filters"'; await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); - await click(`[href="${urls.targetEditEgressFilter}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); + await click(commonSelectors.HREF(urls.targetEditEgressFilter)); assert.strictEqual(currentURL(), urls.targetEditEgressFilter); - await fillIn(CODE_EDITOR_CONTENT_SELECTOR, egressWorkerFilter); - await click(`[href="${urls.target}"]`); + await fillIn( + commonSelectors.CODE_EDITOR_CONTENT, + EGRESS_WORKER_FILTER_VALUE, + ); + await click(commonSelectors.HREF(urls.target)); assert.dom(commonSelectors.MODAL_WARNING).isVisible(); await click(commonSelectors.MODAL_WARNING_CONFIRM_BTN, 'Click Discard'); assert.strictEqual(currentURL(), urls.target); - assert.notEqual(instances.target.egress_worker_filter, egressWorkerFilter); + assert.notEqual( + instances.target.egress_worker_filter, + EGRESS_WORKER_FILTER_VALUE, + ); }); test('can click cancel on discard dialog box for unsaved egress worker filter changes', async function (assert) { const confirmService = this.owner.lookup('service:confirm'); confirmService.enabled = true; - const egressWorkerFilter = '"random" in "/worker/filters"'; await visit(urls.target); - await click(`[href="${urls.targetWorkers}"]`); - await click(`[href="${urls.targetEditEgressFilter}"]`); + await click(commonSelectors.HREF(urls.targetWorkers)); + await click(commonSelectors.HREF(urls.targetEditEgressFilter)); assert.strictEqual(currentURL(), urls.targetEditEgressFilter); - await fillIn(CODE_EDITOR_CONTENT_SELECTOR, egressWorkerFilter); - await click(`[href="${urls.target}"]`); + + await fillIn( + commonSelectors.CODE_EDITOR_CONTENT, + EGRESS_WORKER_FILTER_VALUE, + ); + await click(commonSelectors.HREF(urls.target)); assert.dom(commonSelectors.MODAL_WARNING).isVisible(); await click(commonSelectors.MODAL_WARNING_CANCEL_BTN, 'Click Cancel'); assert.strictEqual(currentURL(), urls.targetEditEgressFilter); - assert.notEqual(instances.target.egress_worker_filter, egressWorkerFilter); + assert.notEqual( + instances.target.egress_worker_filter, + EGRESS_WORKER_FILTER_VALUE, + ); }); }); diff --git a/ui/admin/tests/helpers/selectors.js b/ui/admin/tests/helpers/selectors.js index e77aa09e3..04ea289ce 100644 --- a/ui/admin/tests/helpers/selectors.js +++ b/ui/admin/tests/helpers/selectors.js @@ -95,3 +95,6 @@ export const TABLE_SORT_BTN_ARROW_UP = (column) => `thead tr th:nth-child(${column}) button .hds-icon-arrow-up`; export const TABLE_SORT_BTN_ARROW_DOWN = (column) => `thead tr th:nth-child(${column}) button .hds-icon-arrow-down`; + +export const CODE_EDITOR_CONTENT = + '[data-test-code-editor-field-editor] textarea';