From 87f84e0c24bca4b494bc31940f7c92c9bb95ed9d Mon Sep 17 00:00:00 2001 From: Cameron Perera Date: Wed, 3 Jul 2024 12:02:36 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20tooltip=20to=20con?= =?UTF-8?q?fig=20tags=20in=20table=20(#2375)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 🎸 add tooltip to config tags in table ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14331 * Update addons/core/translations/resources/en-us.yaml Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com> * test: 💍 fix translation in test ✅ Closes: https://hashicorp.atlassian.net/browse/ICU-14331 --------- Co-authored-by: Lisbet Alvarez <107949262+lisbet-alvarez@users.noreply.github.com> --- addons/api/addon/models/worker.js | 7 ++++-- addons/core/translations/resources/en-us.yaml | 1 + .../scopes/scope/workers/worker/tags.js | 3 +++ .../scopes/scope/workers/worker/tags.hbs | 11 +++++++++- .../tests/acceptance/workers/tags-test.js | 22 ++++++++++++++++--- 5 files changed, 38 insertions(+), 6 deletions(-) diff --git a/addons/api/addon/models/worker.js b/addons/api/addon/models/worker.js index 8cd0d8bdb..21e4a3628 100644 --- a/addons/api/addon/models/worker.js +++ b/addons/api/addon/models/worker.js @@ -6,6 +6,9 @@ import GeneratedWorkerModel from '../generated/models/worker'; import { attr } from '@ember-data/model'; +export const TAG_TYPE_CONFIG = 'config'; +export const TAG_TYPE_API = 'api'; + export default class WorkerModel extends GeneratedWorkerModel { // =attributes @@ -50,7 +53,7 @@ export default class WorkerModel extends GeneratedWorkerModel { } return Object.entries(this.config_tags).flatMap(([key, value]) => - value.map((tag) => ({ key, value: tag, type: 'config' })), + value.map((tag) => ({ key, value: tag, type: TAG_TYPE_CONFIG })), ); } @@ -64,7 +67,7 @@ export default class WorkerModel extends GeneratedWorkerModel { } return Object.entries(this.api_tags).flatMap(([key, value]) => - value.map((tag) => ({ key, value: tag, type: 'api' })), + value.map((tag) => ({ key, value: tag, type: TAG_TYPE_API })), ); } diff --git a/addons/core/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml index 57d379ac9..ffe553ea7 100644 --- a/addons/core/translations/resources/en-us.yaml +++ b/addons/core/translations/resources/en-us.yaml @@ -978,6 +978,7 @@ worker: messages: welcome: title: Welcome to Workers + tooltip: To edit config tags, edit them in your worker config file. table: session_count: Session Count ip_address: IP Address diff --git a/ui/admin/app/controllers/scopes/scope/workers/worker/tags.js b/ui/admin/app/controllers/scopes/scope/workers/worker/tags.js index 95fd1a3ef..af19dd0b7 100644 --- a/ui/admin/app/controllers/scopes/scope/workers/worker/tags.js +++ b/ui/admin/app/controllers/scopes/scope/workers/worker/tags.js @@ -4,7 +4,10 @@ */ import Controller, { inject as controller } from '@ember/controller'; +import { TAG_TYPE_CONFIG } from 'api/models/worker'; export default class ScopesScopeWorkersWorkerTagsController extends Controller { @controller('scopes/scope/workers/index') workers; + + tagTypeConfig = TAG_TYPE_CONFIG; } diff --git a/ui/admin/app/templates/scopes/scope/workers/worker/tags.hbs b/ui/admin/app/templates/scopes/scope/workers/worker/tags.hbs index 18bb2ea59..8d01950bf 100644 --- a/ui/admin/app/templates/scopes/scope/workers/worker/tags.hbs +++ b/ui/admin/app/templates/scopes/scope/workers/worker/tags.hbs @@ -50,7 +50,16 @@ {{B.data.value}} - + {{#if (eq B.data.type this.tagTypeConfig)}} + + + + {{else}} + + {{/if}} diff --git a/ui/admin/tests/acceptance/workers/tags-test.js b/ui/admin/tests/acceptance/workers/tags-test.js index fe1390aca..4a0b2b10d 100644 --- a/ui/admin/tests/acceptance/workers/tags-test.js +++ b/ui/admin/tests/acceptance/workers/tags-test.js @@ -4,16 +4,21 @@ */ import { module, test } from 'qunit'; -import { visit, currentURL, click, findAll } from '@ember/test-helpers'; +import { visit, currentURL, click, focus } from '@ember/test-helpers'; import { setupApplicationTest } from 'ember-qunit'; 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'; -module('Acceptance | workers | tags', function (hooks) { +module('Acceptance | workers | worker | tags', function (hooks) { setupApplicationTest(hooks); setupMirage(hooks); + const CONFIG_TAG_TOOLTIP_SELECTOR = + 'tbody tr:first-child td:nth-child(3) button'; + const CONFIG_TAG_TOOLTIP_TEXT_SELECTOR = + 'tbody tr:first-child td:nth-child(3) > div'; + const instances = { scopes: { global: null, @@ -42,6 +47,17 @@ module('Acceptance | workers | tags', function (hooks) { await a11yAudit(); assert.strictEqual(currentURL(), urls.tags); - assert.strictEqual(findAll('tbody tr').length, 11); + assert.dom('tbody tr').exists({ count: 11 }); + }); + + test('config tags display a tooltip', async function (assert) { + await visit(urls.tags); + await a11yAudit(); + + await focus(CONFIG_TAG_TOOLTIP_SELECTOR); + + assert + .dom(CONFIG_TAG_TOOLTIP_TEXT_SELECTOR) + .hasText('To edit config tags, edit them in your worker config file.'); }); });