github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/tests/acceptance/policies-test.js (about) 1 import { module, test } from 'qunit'; 2 import { visit, currentURL, click, typeIn, findAll } from '@ember/test-helpers'; 3 import { setupApplicationTest } from 'ember-qunit'; 4 import { allScenarios } from '../../mirage/scenarios/default'; 5 import { setupMirage } from 'ember-cli-mirage/test-support'; 6 import percySnapshot from '@percy/ember'; 7 import a11yAudit from 'nomad-ui/tests/helpers/a11y-audit'; 8 9 module('Acceptance | policies', function (hooks) { 10 setupApplicationTest(hooks); 11 setupMirage(hooks); 12 13 test('Policies index route looks good', async function (assert) { 14 assert.expect(4); 15 allScenarios.policiesTestCluster(server); 16 window.localStorage.nomadTokenSecret = server.db.tokens[0].secretId; 17 await visit('/policies'); 18 assert.dom('[data-test-gutter-link="policies"]').exists(); 19 assert.equal(currentURL(), '/policies'); 20 assert 21 .dom('[data-test-policy-row]') 22 .exists({ count: server.db.policies.length }); 23 await a11yAudit(assert); 24 await percySnapshot(assert); 25 // Reset Token 26 window.localStorage.nomadTokenSecret = null; 27 }); 28 29 test('Prevents policies access if you lack a management token', async function (assert) { 30 allScenarios.policiesTestCluster(server); 31 window.localStorage.nomadTokenSecret = server.db.tokens[1].secretId; 32 await visit('/policies'); 33 assert.equal(currentURL(), '/jobs'); 34 assert.dom('[data-test-gutter-link="policies"]').doesNotExist(); 35 // Reset Token 36 window.localStorage.nomadTokenSecret = null; 37 }); 38 39 test('Modifying an existing policy', async function (assert) { 40 allScenarios.policiesTestCluster(server); 41 window.localStorage.nomadTokenSecret = server.db.tokens[0].secretId; 42 await visit('/policies'); 43 await click('[data-test-policy-row]:first-child'); 44 assert.equal(currentURL(), `/policies/${server.db.policies[0].name}`); 45 assert.dom('[data-test-policy-editor]').exists(); 46 assert.dom('[data-test-title]').includesText(server.db.policies[0].name); 47 await click('button[type="submit"]'); 48 assert.dom('.flash-message.alert-success').exists(); 49 assert.equal(currentURL(), '/policies'); 50 // Reset Token 51 window.localStorage.nomadTokenSecret = null; 52 }); 53 54 test('Creating a new policy', async function (assert) { 55 assert.expect(7); 56 allScenarios.policiesTestCluster(server); 57 window.localStorage.nomadTokenSecret = server.db.tokens[0].secretId; 58 await visit('/policies'); 59 await click('[data-test-create-policy]'); 60 assert.equal(currentURL(), '/policies/new'); 61 await typeIn('[data-test-policy-name-input]', 'My Fun Policy'); 62 await click('button[type="submit"]'); 63 assert 64 .dom('.flash-message.alert-error') 65 .exists('Doesnt let you save a bad name'); 66 assert.equal(currentURL(), '/policies/new'); 67 document.querySelector('[data-test-policy-name-input]').value = ''; // clear 68 await typeIn('[data-test-policy-name-input]', 'My-Fun-Policy'); 69 await click('button[type="submit"]'); 70 assert.dom('.flash-message.alert-success').exists(); 71 assert.equal(currentURL(), '/policies'); 72 const newPolicy = [...findAll('[data-test-policy-name]')].filter((a) => 73 a.textContent.includes('My-Fun-Policy') 74 )[0]; 75 assert.ok(newPolicy, 'Policy is in the list'); 76 await click(newPolicy); 77 assert.equal(currentURL(), '/policies/My-Fun-Policy'); 78 await percySnapshot(assert); 79 // Reset Token 80 window.localStorage.nomadTokenSecret = null; 81 }); 82 83 test('Deleting a policy', async function (assert) { 84 allScenarios.policiesTestCluster(server); 85 window.localStorage.nomadTokenSecret = server.db.tokens[0].secretId; 86 await visit('/policies'); 87 const firstPolicyName = server.db.policies[0].name; 88 const firstPolicyRow = [...findAll('[data-test-policy-name]')].filter( 89 (row) => row.textContent.includes(firstPolicyName) 90 )[0]; 91 await click(firstPolicyRow); 92 assert.equal(currentURL(), `/policies/${firstPolicyName}`); 93 await click('[data-test-delete-button] button'); 94 assert.dom('[data-test-confirm-button]').exists(); 95 await click('[data-test-confirm-button]'); 96 assert.dom('.flash-message.alert-success').exists(); 97 assert.equal(currentURL(), '/policies'); 98 assert.dom(`[data-test-policy-name="${firstPolicyName}"]`).doesNotExist(); 99 // Reset Token 100 window.localStorage.nomadTokenSecret = null; 101 }); 102 });