59 lines
2.0 KiB
JavaScript
59 lines
2.0 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import { module, test } from 'qunit';
|
|
import { setupRenderingTest } from 'ember-qunit';
|
|
import { render } from '@ember/test-helpers';
|
|
import { create } from 'ember-cli-page-object';
|
|
import featuresSelection from 'vault/tests/pages/components/wizard/features-selection';
|
|
import hbs from 'htmlbars-inline-precompile';
|
|
import Service from '@ember/service';
|
|
|
|
const component = create(featuresSelection);
|
|
|
|
const permissionsService = Service.extend({
|
|
hasPermission(path) {
|
|
// This enables the Secrets and Authentication wizard items and disables the others.
|
|
const allowedPaths = ['sys/mounts/example', 'sys/auth', 'sys/auth/foo', 'sys/wrapping/wrap'];
|
|
if (allowedPaths.includes(path)) {
|
|
return true;
|
|
}
|
|
return false;
|
|
},
|
|
});
|
|
|
|
module('Integration | Component | features-selection', function (hooks) {
|
|
setupRenderingTest(hooks);
|
|
|
|
hooks.beforeEach(function () {
|
|
this.owner.register('service:permissions', permissionsService);
|
|
});
|
|
|
|
test('it disables and enables wizard items according to user permissions', async function (assert) {
|
|
assert.expect(4);
|
|
const enabled = { Secrets: true, Authentication: true, Policies: false, Tools: false };
|
|
await render(hbs`<Wizard::FeaturesSelection/>`);
|
|
|
|
component.wizardItems.forEach((i) => {
|
|
assert.strictEqual(
|
|
i.hasDisabledTooltip,
|
|
!enabled[i.text],
|
|
'shows a tooltip only when the wizard item is not enabled'
|
|
);
|
|
});
|
|
});
|
|
|
|
test('it disables the start button if no wizard items are checked', async function (assert) {
|
|
await render(hbs`<Wizard::FeaturesSelection/>`);
|
|
assert.true(component.hasDisabledStartButton);
|
|
});
|
|
|
|
test('it enables the start button when user has permission and wizard items are checked', async function (assert) {
|
|
await render(hbs`<Wizard::FeaturesSelection/>`);
|
|
await component.selectSecrets();
|
|
assert.false(component.hasDisabledStartButton);
|
|
});
|
|
});
|