Angel Garbarino 927da859f7
UI Hide Secrets Sync from nav if not on license and/or no policy permissions (#27262)
* intial changes, haven't tested client counts or done test coverage

* client count rename getter to clairfy

* fix has-permission api-paths

* wip

* wip

* fix: explicitly refresh vault.cluster model to re-fetch activatedFeatures after actication

* tests: fix # of assertions for verifying that activation was called

* tests: tidy overview-test

* add additional api permission path and move fetch back to application

* add test coverage for the service

* cleanup

* remove test that checked for upsell without license or on community

* small comment change

* welp missed component getter

* flaky test fix

* flaky test

* small nit changes from pr reviews

* add defaults to sync mirage handler

* Gate sync overview route for users without access (#27320)

* routes: add redirect if user does not have access to sync

* tests: verify redirect on sync overview page happens

* tests: organize tests modules to ensure enterprise is explicitly set up

* add type enterprise required now because we do a check for this first

* fix oss test

---------

Co-authored-by: Noelle Daley <noelledaley@users.noreply.github.com>
2024-06-11 08:20:01 -06:00

47 lines
1.5 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { module, test } from 'qunit';
import { setupRenderingTest } from 'vault/tests/helpers';
import { render } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
import { GENERAL } from 'vault/tests/helpers/general-selectors';
module('Integration | Component | clients/counts/nav-bar', function (hooks) {
setupRenderingTest(hooks);
hooks.beforeEach(function () {
this.showSecretsSyncClientCounts = false;
this.renderComponent = async () => {
await render(
hbs`<Clients::Counts::NavBar @showSecretsSyncClientCounts={{this.showSecretsSyncClientCounts}} />`
);
};
});
test('it renders default tabs', async function (assert) {
await this.renderComponent();
assert.dom(GENERAL.tab('overview')).hasText('Overview');
assert.dom(GENERAL.tab('token')).hasText('Entity/Non-entity clients');
assert.dom(GENERAL.tab('acme')).hasText('ACME clients');
});
test('it shows secrets sync tab if showSecretsSyncClientCounts is true', async function (assert) {
this.showSecretsSyncClientCounts = true;
await this.renderComponent();
assert.dom(GENERAL.tab('sync')).exists();
});
test('it should not show secrets sync tab if showSecretsSyncClientCounts is false', async function (assert) {
this.showSecretsSyncClientCounts = false;
await this.renderComponent();
assert.dom(GENERAL.tab('sync')).doesNotExist();
});
});