{
- this.customMessages.fetchMessages(namespace);
+ if (this.version.isEnterprise) {
+ this.customMessages.fetchMessages(namespace);
+ }
if (isRoot) {
this.auth.set('isRootToken', true);
diff --git a/ui/app/routes/vault/cluster/logout.js b/ui/app/routes/vault/cluster/logout.js
index 5bcc2b8e35..03d386c361 100644
--- a/ui/app/routes/vault/cluster/logout.js
+++ b/ui/app/routes/vault/cluster/logout.js
@@ -35,7 +35,10 @@ export default Route.extend(ModelBoundaryRoute, {
this.flashMessages.clearMessages();
this.permissions.reset();
this.version.version = null;
- this.customMessages.clearCustomMessages();
+
+ if (this.version.isEnterprise) {
+ this.customMessages.clearCustomMessages();
+ }
queryParams.with = authType;
if (ns) {
diff --git a/ui/app/templates/vault/cluster.hbs b/ui/app/templates/vault/cluster.hbs
index a2391b0ad9..37720a9d5e 100644
--- a/ui/app/templates/vault/cluster.hbs
+++ b/ui/app/templates/vault/cluster.hbs
@@ -3,64 +3,66 @@
SPDX-License-Identifier: BUSL-1.1
~}}
-{{#each this.customMessages.bannerMessages as |bannerMessage|}}
- {{#if (get this.customMessages.bannerState bannerMessage.id)}}
-
- {{bannerMessage.title}}
- {{#each (new-line-split bannerMessage.message) as |msg|}}
-
- {{msg}}
-
- {{/each}}
- {{#unless (is-empty-value bannerMessage.link)}}
- {{#each-in bannerMessage.link as |title href|}}
-
- {{/each-in}}
- {{/unless}}
-
- {{/if}}
-{{/each}}
-{{#each this.customMessages.modalMessages as |modalMessage|}}
-
-
- {{modalMessage.title}}
-
-
- {{#each (new-line-split modalMessage.message) as |msg|}}
- {{#if (eq msg "")}}
-
- {{else}}
-
+{{#if this.vaultVersion.isEnterprise}}
+ {{#each this.customMessages.bannerMessages as |bannerMessage|}}
+ {{#if (get this.customMessages.bannerState bannerMessage.id)}}
+
+ {{bannerMessage.title}}
+ {{#each (new-line-split bannerMessage.message) as |msg|}}
+
{{msg}}
-
- {{/if}}
- {{/each}}
- {{#unless (is-empty-value modalMessage.link)}}
- {{#each-in modalMessage.link as |title href|}}
- {{title}}
- {{/each-in}}
- {{/unless}}
-
+
+ {{/each}}
+ {{#unless (is-empty-value bannerMessage.link)}}
+ {{#each-in bannerMessage.link as |title href|}}
+
+ {{/each-in}}
+ {{/unless}}
+
+ {{/if}}
+ {{/each}}
+ {{#each this.customMessages.modalMessages as |modalMessage|}}
+
+
+ {{modalMessage.title}}
+
+
+ {{#each (new-line-split modalMessage.message) as |msg|}}
+ {{#if (eq msg "")}}
+
+ {{else}}
+
+ {{msg}}
+
+ {{/if}}
+ {{/each}}
+ {{#unless (is-empty-value modalMessage.link)}}
+ {{#each-in modalMessage.link as |title href|}}
+ {{title}}
+ {{/each-in}}
+ {{/unless}}
+
-
-
-
-
-{{/each}}
+
+
+
+
+ {{/each}}
+{{/if}}
{{#if this.activeCluster.version.isEnterprise}}
{
+ await click(PAGE.navLink);
+
+ if (authenticated) {
+ await click(PAGE.tab('After user logs in'));
+ await click(PAGE.button('create message'));
+ } else {
+ await click(PAGE.tab('On login page'));
+ await click(PAGE.button('create message'));
+ }
+
await visit(`vault/config-ui/messages?authenticated=${authenticated}`);
await click(PAGE.button('create message'));
await fillIn(PAGE.input('title'), 'Awesome custom message title');
@@ -44,15 +100,42 @@ module('Acceptance | config-ui', function (hooks) {
await click(PAGE.button('create-message'));
};
+ this.server.get('sys/internal/ui/version', function () {
+ return {
+ data: {
+ version: '1.16.0+ent',
+ },
+ };
+ });
+ this.server.get('/sys/health', function () {
+ return {
+ enterprise: true,
+ initialized: true,
+ sealed: false,
+ standby: false,
+ license: {
+ expiry: '2024-01-12T23:20:50.52Z',
+ state: 'stored',
+ },
+ performance_standby: false,
+ replication_performance_mode: 'disabled',
+ replication_dr_mode: 'disabled',
+ server_time_utc: 1622562585,
+ version: '1.16.0+ent',
+ cluster_name: 'vault-cluster-e779cd7c',
+ cluster_id: '5f20f5ab-acea-0481-787e-71ec2ff5a60b',
+ last_wal: 121,
+ };
+ });
await authPage.login();
});
+
hooks.afterEach(async function () {
await logout.visit();
});
-
test('it should show an empty state when no messages are created', async function (assert) {
assert.expect(4);
- await visit('vault/config-ui/messages');
+ await click(PAGE.navLink);
assert.dom('[data-test-component="empty-state"]').exists();
assert.dom(PAGE.emptyStateTitle).hasText('No messages yet');
await click(PAGE.tab('On login page'));
@@ -134,7 +217,8 @@ module('Acceptance | config-ui', function (hooks) {
});
test('it should display preview a message when all required fields are filled out', async function (assert) {
assert.expect(2);
- await visit(`vault/config-ui/messages`);
+ await click(PAGE.navLink);
+ await click(PAGE.tab('After user logs in'));
await click(PAGE.button('create message'));
await fillIn(PAGE.input('title'), 'Awesome custom message title');
await click(PAGE.radio('banner'));
@@ -153,7 +237,8 @@ module('Acceptance | config-ui', function (hooks) {
});
test('it should not display preview a message when all required fields are not filled out', async function (assert) {
assert.expect(2);
- await visit(`vault/config-ui/messages`);
+ await click(PAGE.navLink);
+ await click(PAGE.tab('After user logs in'));
await click(PAGE.button('create message'));
await click(PAGE.radio('banner'));
await fillIn(
@@ -203,7 +288,8 @@ module('Acceptance | config-ui', function (hooks) {
});
test('it should show info message on create and edit form', async function (assert) {
assert.expect(1);
- await visit('vault/config-ui/messages?authenticated=false');
+ await click(PAGE.navLink);
+ await click(PAGE.tab('On login page'));
await click(PAGE.button('create message'));
assert
.dom(PAGE.unauthCreateFormInfo)
@@ -213,7 +299,8 @@ module('Acceptance | config-ui', function (hooks) {
});
test('it should display preview a message when all required fields are filled out', async function (assert) {
assert.expect(2);
- await visit('vault/config-ui/messages?authenticated=false');
+ await click(PAGE.navLink);
+ await click(PAGE.tab('On login page'));
await click(PAGE.button('create message'));
await fillIn(PAGE.input('title'), 'Awesome custom message title');
await click(PAGE.radio('banner'));
@@ -232,7 +319,8 @@ module('Acceptance | config-ui', function (hooks) {
});
test('it should not display preview a message when all required fields are not filled out', async function (assert) {
assert.expect(2);
- await visit('vault/config-ui/messages?authenticated=false');
+ await click(PAGE.navLink);
+ await click(PAGE.tab('On login page'));
await click(PAGE.button('create message'));
await click(PAGE.radio('banner'));
await fillIn(
diff --git a/ui/tests/acceptance/config-ui/messages/messages-unauth-auth-test.js b/ui/tests/acceptance/config-ui/messages/messages-unauth-auth-test.js
index e3d16330ad..9a962b8e85 100644
--- a/ui/tests/acceptance/config-ui/messages/messages-unauth-auth-test.js
+++ b/ui/tests/acceptance/config-ui/messages/messages-unauth-auth-test.js
@@ -8,6 +8,7 @@ import { setupApplicationTest } from 'ember-qunit';
import { click, visit, fillIn, currentRouteName } from '@ember/test-helpers';
import { PAGE } from 'vault/tests/helpers/config-ui/message-selectors';
import { setupMirage } from 'ember-cli-mirage/test-support';
+
import authPage from 'vault/tests/pages/auth';
import { datetimeLocalStringFormat } from 'core/utils/date-formatters';
import { format, addDays, startOfDay } from 'date-fns';
@@ -50,6 +51,7 @@ const unauthenticatedMessageResponse = {
mount_type: '',
};
+// custom messages is an enterprise feature, but since we're using mirage enterprise is omitted from the module name.
module('Acceptance | auth custom messages auth tests', function (hooks) {
setupApplicationTest(hooks);
setupMirage(hooks);
diff --git a/ui/tests/helpers/config-ui/message-selectors.js b/ui/tests/helpers/config-ui/message-selectors.js
index 4f681678c6..f33b433d3b 100644
--- a/ui/tests/helpers/config-ui/message-selectors.js
+++ b/ui/tests/helpers/config-ui/message-selectors.js
@@ -10,6 +10,7 @@ export const PAGE = {
...GENERAL,
inlineErrorMessage: `[data-test-inline-error-message]`,
unauthCreateFormInfo: '[data-test-unauth-info]',
+ navLink: '[data-test-sidebar-nav-link="Custom Messages"]',
radio: (radioName) => `[data-test-radio="${radioName}"]`,
field: (fieldName) => `[data-test-field="${fieldName}"]`,
input: (input) => `[data-test-input="${input}"]`,