2024-01-23 14:29:53 -08:00
|
|
|
/**
|
|
|
|
* Copyright (c) HashiCorp, Inc.
|
|
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
|
|
*/
|
|
|
|
|
|
|
|
import { module, test } from 'qunit';
|
|
|
|
import { click, visit } from '@ember/test-helpers';
|
|
|
|
import { setupApplicationTest } from 'ember-qunit';
|
2024-01-29 15:38:21 -08:00
|
|
|
import { EnvStub } from 'consul-ui/services/env';
|
2024-01-23 14:29:53 -08:00
|
|
|
|
|
|
|
const bannerSelector = '[data-test-link-to-hcp-banner]';
|
2024-02-01 15:04:01 -08:00
|
|
|
const linkToHcpSelector = '[data-test-link-to-hcp]';
|
|
|
|
module('Acceptance | link to hcp', function (hooks) {
|
2024-01-23 14:29:53 -08:00
|
|
|
setupApplicationTest(hooks);
|
|
|
|
|
|
|
|
hooks.beforeEach(function () {
|
|
|
|
// clear local storage so we don't have any settings
|
|
|
|
window.localStorage.clear();
|
2024-01-29 15:38:21 -08:00
|
|
|
this.owner.register(
|
|
|
|
'service:env',
|
|
|
|
class Stub extends EnvStub {
|
|
|
|
stubEnv = {
|
|
|
|
CONSUL_HCP_LINK_ENABLED: true,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
);
|
2024-01-23 14:29:53 -08:00
|
|
|
});
|
|
|
|
|
2024-02-01 15:04:01 -08:00
|
|
|
test('the banner and nav item are initially displayed on services page', async function (assert) {
|
2024-01-23 14:29:53 -08:00
|
|
|
// default route is services page so we're good here
|
|
|
|
await visit('/');
|
|
|
|
// Expect the banner to be visible by default
|
2024-02-01 15:04:01 -08:00
|
|
|
assert.dom(bannerSelector).isVisible('Banner is visible by default');
|
|
|
|
// expect linkToHCP nav item to be visible as well
|
|
|
|
assert.dom(linkToHcpSelector).isVisible('Link to HCP nav item is visible by default');
|
2024-01-23 14:29:53 -08:00
|
|
|
// Click on the dismiss button
|
|
|
|
await click(`${bannerSelector} button[aria-label="Dismiss"]`);
|
|
|
|
assert.dom(bannerSelector).doesNotExist('Banner is gone after dismissing');
|
2024-02-01 15:04:01 -08:00
|
|
|
// link to HCP nav item still there
|
|
|
|
assert.dom(linkToHcpSelector).isVisible('Link to HCP nav item is visible by default');
|
2024-01-23 14:29:53 -08:00
|
|
|
// Refresh the page
|
|
|
|
await visit('/');
|
|
|
|
assert.dom(bannerSelector).doesNotExist('Banner is still gone after refresh');
|
2024-02-01 15:04:01 -08:00
|
|
|
// link to HCP nav item still there
|
|
|
|
assert.dom(linkToHcpSelector).isVisible('Link to HCP nav item is visible by default');
|
2024-01-23 14:29:53 -08:00
|
|
|
});
|
2024-01-29 15:38:21 -08:00
|
|
|
|
|
|
|
test('the banner is not displayed if the env var is not set', async function (assert) {
|
|
|
|
this.owner.register(
|
|
|
|
'service:env',
|
|
|
|
class Stub extends EnvStub {
|
|
|
|
stubEnv = {};
|
|
|
|
}
|
|
|
|
);
|
|
|
|
// default route is services page so we're good here
|
|
|
|
await visit('/');
|
|
|
|
// Expect the banner to be visible by default
|
|
|
|
assert.dom(bannerSelector).doesNotExist('Banner is not here');
|
|
|
|
});
|
2024-01-23 14:29:53 -08:00
|
|
|
});
|