github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/ui/tests/acceptance/servers-list-test.js (about) 1 import { currentURL } from '@ember/test-helpers'; 2 import { module, test } from 'qunit'; 3 import { setupApplicationTest } from 'ember-qunit'; 4 import { setupMirage } from 'ember-cli-mirage/test-support'; 5 import a11yAudit from 'nomad-ui/tests/helpers/a11y-audit'; 6 import { findLeader } from '../../mirage/config'; 7 import ServersList from 'nomad-ui/tests/pages/servers/list'; 8 9 const minimumSetup = () => { 10 server.createList('node', 1); 11 server.createList('agent', 1); 12 }; 13 14 const agentSort = leader => (a, b) => { 15 if (`${a.address}:${a.tags.port}` === leader) { 16 return 1; 17 } else if (`${b.address}:${b.tags.port}` === leader) { 18 return -1; 19 } 20 return 0; 21 }; 22 23 module('Acceptance | servers list', function(hooks) { 24 setupApplicationTest(hooks); 25 setupMirage(hooks); 26 27 test('it passes an accessibility audit', async function(assert) { 28 minimumSetup(); 29 await ServersList.visit(); 30 await a11yAudit(assert); 31 }); 32 33 test('/servers should list all servers', async function(assert) { 34 server.createList('node', 1); 35 server.createList('agent', 10); 36 37 const leader = findLeader(server.schema); 38 const sortedAgents = server.db.agents.sort(agentSort(leader)).reverse(); 39 40 await ServersList.visit(); 41 42 assert.equal(ServersList.servers.length, ServersList.pageSize, 'List is stopped at pageSize'); 43 44 ServersList.servers.forEach((server, index) => { 45 assert.equal(server.name, sortedAgents[index].name, 'Servers are ordered'); 46 }); 47 48 assert.equal(document.title, 'Servers - Nomad'); 49 }); 50 51 test('each server should show high-level info of the server', async function(assert) { 52 minimumSetup(); 53 const agent = server.db.agents[0]; 54 55 await ServersList.visit(); 56 57 const agentRow = ServersList.servers.objectAt(0); 58 59 assert.equal(agentRow.name, agent.name, 'Name'); 60 assert.equal(agentRow.status, agent.status, 'Status'); 61 assert.equal(agentRow.leader, 'True', 'Leader?'); 62 assert.equal(agentRow.address, agent.address, 'Address'); 63 assert.equal(agentRow.serfPort, agent.serfPort, 'Serf Port'); 64 assert.equal(agentRow.datacenter, agent.tags.dc, 'Datacenter'); 65 }); 66 67 test('each server should link to the server detail page', async function(assert) { 68 minimumSetup(); 69 const agent = server.db.agents[0]; 70 71 await ServersList.visit(); 72 await ServersList.servers.objectAt(0).clickRow(); 73 74 assert.equal(currentURL(), `/servers/${agent.name}`, 'Now at the server detail page'); 75 }); 76 77 test('when accessing servers is forbidden, show a message with a link to the tokens page', async function(assert) { 78 server.create('agent'); 79 server.pretender.get('/v1/agent/members', () => [403, {}, null]); 80 81 await ServersList.visit(); 82 assert.equal(ServersList.error.title, 'Not Authorized'); 83 84 await ServersList.error.seekHelp(); 85 assert.equal(currentURL(), '/settings/tokens'); 86 }); 87 });