2022-10-13 16:21:56 +00:00
|
|
|
import { module, test } from 'qunit';
|
|
|
|
import { setupRenderingTest } from 'ember-qunit';
|
|
|
|
import hbs from 'htmlbars-inline-precompile';
|
|
|
|
import { click, render } from '@ember/test-helpers';
|
|
|
|
|
|
|
|
module('Integration | Component | consul node agentless-notice', function (hooks) {
|
|
|
|
setupRenderingTest(hooks);
|
|
|
|
|
|
|
|
test('it does not display the notice if the filtered nodes are the same as the regular nodes', async function (assert) {
|
|
|
|
this.set('nodes', [
|
|
|
|
{
|
|
|
|
Meta: {
|
|
|
|
'synthetic-node': false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
]);
|
|
|
|
|
|
|
|
this.set('filteredNodes', [
|
|
|
|
{
|
|
|
|
Meta: {
|
|
|
|
'synthetic-node': false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
]);
|
|
|
|
|
|
|
|
await render(
|
|
|
|
hbs`<Consul::Node::AgentlessNotice @items={{this.nodes}} @filteredItems={{this.filteredNodes}} />`
|
|
|
|
);
|
|
|
|
assert
|
|
|
|
.dom('[data-test-node-agentless-notice]')
|
|
|
|
.doesNotExist(
|
|
|
|
'The agentless notice should not display if the items are the same as the filtered items'
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('it does display the notice when the filtered items are smaller then the regular items', async function (assert) {
|
|
|
|
this.set('nodes', [
|
|
|
|
{
|
|
|
|
Meta: {
|
2022-10-13 16:38:26 +00:00
|
|
|
'synthetic-node': true,
|
2022-10-13 16:21:56 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
]);
|
|
|
|
|
|
|
|
this.set('filteredNodes', []);
|
|
|
|
|
|
|
|
await render(
|
|
|
|
hbs`<Consul::Node::AgentlessNotice @items={{this.nodes}} @filteredItems={{this.filteredNodes}} />`
|
|
|
|
);
|
|
|
|
|
|
|
|
assert
|
|
|
|
.dom('[data-test-node-agentless-notice]')
|
|
|
|
.exists(
|
|
|
|
'The agentless notice should display if their are less items then the filtered items'
|
|
|
|
);
|
|
|
|
|
|
|
|
await click('button');
|
|
|
|
assert
|
|
|
|
.dom('[data-test-node-agentless-notice]')
|
2022-10-13 16:59:48 +00:00
|
|
|
.doesNotExist('The agentless notice be dismissed');
|
2022-10-14 18:21:25 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
test('it does not display if the localstorage key is already set to true', async function (assert) {
|
|
|
|
this.set('nodes', [
|
|
|
|
{
|
|
|
|
Meta: {
|
|
|
|
'synthetic-node': false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
]);
|
|
|
|
|
2022-10-18 15:40:47 +00:00
|
|
|
this.set('filteredNodes', []);
|
2022-10-14 18:21:25 +00:00
|
|
|
|
2022-10-18 15:40:47 +00:00
|
|
|
const localStorage = this.owner.lookup('service:local-storage');
|
|
|
|
localStorage.storage.seed({
|
|
|
|
notices: ['nodes-agentless-dismissed-partition'],
|
|
|
|
});
|
2022-10-14 18:21:25 +00:00
|
|
|
|
|
|
|
await render(
|
2022-10-14 20:08:40 +00:00
|
|
|
hbs`<Consul::Node::AgentlessNotice @items={{this.nodes}} @filteredItems={{this.filteredNodes}} @postfix="partition" />`
|
2022-10-14 18:21:25 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
assert
|
|
|
|
.dom('[data-test-node-agentless-notice]')
|
|
|
|
.doesNotExist(
|
2022-10-18 15:40:47 +00:00
|
|
|
'The agentless notice should not display if the dismissal has already been stored in local storage'
|
2022-10-14 18:21:25 +00:00
|
|
|
);
|
2022-10-13 16:21:56 +00:00
|
|
|
});
|
|
|
|
});
|