diff --git a/addons/core/translations/resources/en-us.yaml b/addons/core/translations/resources/en-us.yaml index 21d4af19e..cf28c5b9b 100644 --- a/addons/core/translations/resources/en-us.yaml +++ b/addons/core/translations/resources/en-us.yaml @@ -375,6 +375,7 @@ target: client: Client any-worker: Any worker front-line-worker: Front line worker + hcp-worker: HCP worker egress-worker: Egress worker ingress-worker: Ingress worker host: Host diff --git a/ui/admin/app/components/worker-diagram/dual-filter/hcp/index.hbs b/ui/admin/app/components/worker-diagram/dual-filter/hcp/index.hbs new file mode 100644 index 000000000..28340d3c2 --- /dev/null +++ b/ui/admin/app/components/worker-diagram/dual-filter/hcp/index.hbs @@ -0,0 +1,80 @@ +
+ {{#if (and @egressFilter @ingressFilter)}} + + + {{t 'resources.target.workers.diagram.client'}} + + + {{t 'resources.target.workers.diagram.ingress-worker'}} + + + + {{t 'resources.target.workers.diagram.egress-worker'}} + + + {{t 'resources.target.workers.diagram.host'}} + + + + {{else if @ingressFilter}} + + + {{t 'resources.target.workers.diagram.client'}} + + + {{t 'resources.target.workers.diagram.ingress-worker'}} + + + {{t 'resources.target.workers.diagram.host'}} + + + {{else if @egressFilter}} + + + {{t 'resources.target.workers.diagram.client'}} + + + {{#if (feature-flag 'target-worker-filters-v2-hcp')}} + {{t 'resources.target.workers.diagram.hcp-worker'}} + {{else}} + {{t 'resources.target.workers.diagram.front-line-worker'}} + {{/if}} + + + + {{t 'resources.target.workers.diagram.egress-worker'}} + + + {{t 'resources.target.workers.diagram.host'}} + + + + {{else}} + + + {{t 'resources.target.workers.diagram.client'}} + + + {{t 'resources.target.workers.diagram.hcp-worker'}} + + + {{t 'resources.target.workers.diagram.host'}} + + + {{/if}} +
\ No newline at end of file diff --git a/ui/admin/config/environment.js b/ui/admin/config/environment.js index ca07d1ee6..6e6edcc2a 100644 --- a/ui/admin/config/environment.js +++ b/ui/admin/config/environment.js @@ -150,6 +150,7 @@ module.exports = function (environment) { ENV.featureFlags['vault-worker-filter'] = true; ENV.featureFlags['target-worker-filters-v2'] = true; ENV.featureFlags['target-worker-filters-v2-ingress'] = true; + ENV.featureFlags['target-worker-filters-v2-hcp'] = true; ENV.featureFlags['target-network-address'] = true; ENV.featureFlags['credential-library-vault-ssh-cert'] = true; } diff --git a/ui/admin/tests/integration/components/worker-diagram/dual-filter/hcp/index-test.js b/ui/admin/tests/integration/components/worker-diagram/dual-filter/hcp/index-test.js new file mode 100644 index 000000000..965e1f32b --- /dev/null +++ b/ui/admin/tests/integration/components/worker-diagram/dual-filter/hcp/index-test.js @@ -0,0 +1,55 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'admin/tests/helpers'; +import { render } from '@ember/test-helpers'; +import { hbs } from 'ember-cli-htmlbars'; +import { setupIntl } from 'ember-intl/test-support'; + +module( + 'Integration | Component | worker-diagram | dual-filter | hcp', + function (hooks) { + setupRenderingTest(hooks); + setupIntl(hooks); + + let featuresService; + const targetWorkerFilterIngress = 'target-worker-filters-v2-ingress'; + const targetWorkerFilterHCP = 'target-worker-filters-v2-hcp'; + + hooks.beforeEach(function () { + featuresService = this.owner.lookup('service:features'); + featuresService.enable(targetWorkerFilterHCP); + featuresService.disable(targetWorkerFilterIngress); + }); + + test('it renders the correct diagram when egressFilter is false and ingress is false', async function (assert) { + await render( + hbs`` + ); + + assert.dom('[data-test-dual-filter-hcp-egress-off-ingress-off]').exists(); + }); + + test('it renders the correct diagram when egressFilter is true and ingress is false', async function (assert) { + await render( + hbs`` + ); + + assert.dom('[data-test-dual-filter-hcp-egress-on-ingress-off]').exists(); + }); + + test('it renders the correct diagram when egressFilter is false and ingress is true', async function (assert) { + await render( + hbs`` + ); + + assert.dom('[data-test-dual-filter-hcp-egress-off-ingress-on]').exists(); + }); + + test('it renders the correct diagram when egressFilter is true and ingress is true', async function (assert) { + await render( + hbs`` + ); + + assert.dom('[data-test-dual-filter-hcp-egress-on-ingress-on]').exists(); + }); + } +); diff --git a/ui/admin/tests/integration/components/worker-diagram/dual-filter/index-test.js b/ui/admin/tests/integration/components/worker-diagram/dual-filter/index-test.js index 1a802a0da..ceaf11016 100644 --- a/ui/admin/tests/integration/components/worker-diagram/dual-filter/index-test.js +++ b/ui/admin/tests/integration/components/worker-diagram/dual-filter/index-test.js @@ -5,75 +5,51 @@ import { hbs } from 'ember-cli-htmlbars'; import { setupIntl } from 'ember-intl/test-support'; module( - 'Integration | Component | worker-diagram/dual-filter', + 'Integration | Component | worker-diagram | dual-filter', function (hooks) { setupRenderingTest(hooks); setupIntl(hooks); + let featuresService; + const targetWorkerFilterIngress = 'target-worker-filters-v2-ingress'; + const targetWorkerFilterHCP = 'target-worker-filters-v2-hcp'; + + hooks.beforeEach(function () { + featuresService = this.owner.lookup('service:features'); + featuresService.enable(targetWorkerFilterIngress); + featuresService.disable(targetWorkerFilterHCP); + }); + test('it renders the correct diagram when egressFilter is false and ingress is false', async function (assert) { - assert.expect(4); await render( hbs`` ); - assert.dom('[data-test-dual-filter-egress-off-ingress-off]').isVisible(); - assert - .dom('[data-test-dual-filter-egress-on-ingress-off]') - .doesNotExist(); - assert - .dom('[data-test-dual-filter-egress-off-ingress-on]') - .doesNotExist(); - assert.dom('[data-test-dual-filter-egress-on-ingress-on]').doesNotExist(); + assert.dom('[data-test-dual-filter-egress-off-ingress-off]').exists(); }); test('it renders the correct diagram when egressFilter is true and ingress is false', async function (assert) { - assert.expect(4); await render( hbs`` ); - assert.dom('[data-test-dual-filter-egress-on-ingress-off]').isVisible(); - assert - .dom('[data-test-dual-filter-egress-off-ingress-on]') - .doesNotExist(); - assert.dom('[data-test-dual-filter-egress-on-ingress-on]').doesNotExist(); - assert - .dom('[data-test-dual-filter-egress-off-ingress-off]') - .doesNotExist(); + assert.dom('[data-test-dual-filter-egress-on-ingress-off]').exists(); }); test('it renders the correct diagram when egressFilter is false and ingress is true', async function (assert) { - assert.expect(4); await render( hbs`` ); - assert.dom('[data-test-dual-filter-egress-off-ingress-on]').isVisible(); - assert - .dom('[data-test-dual-filter-egress-on-ingress-off]') - .doesNotExist(); - assert.dom('[data-test-dual-filter-egress-on-ingress-on]').doesNotExist(); - assert - .dom('[data-test-dual-filter-egress-off-ingress-off]') - .doesNotExist(); + assert.dom('[data-test-dual-filter-egress-off-ingress-on]').exists(); }); test('it renders the correct diagram when egressFilter is true and ingress is true', async function (assert) { - assert.expect(4); await render( hbs`` ); - assert.dom('[data-test-dual-filter-egress-on-ingress-on]').isVisible(); - assert - .dom('[data-test-dual-filter-egress-off-ingress-on]') - .doesNotExist(); - assert - .dom('[data-test-dual-filter-egress-on-ingress-off]') - .doesNotExist(); - assert - .dom('[data-test-dual-filter-egress-off-ingress-off]') - .doesNotExist(); + assert.dom('[data-test-dual-filter-egress-on-ingress-on]').exists(); }); } );