github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/tests/integration/components/job-page/helpers.js (about) 1 import { click, find } from '@ember/test-helpers'; 2 3 export function jobURL(job, path = '') { 4 const id = job.get('plainId'); 5 const namespace = job.get('namespace.name') || 'default'; 6 let expectedURL = `/v1/job/${id}${path}`; 7 if (namespace !== 'default') { 8 expectedURL += `?namespace=${namespace}`; 9 } 10 return expectedURL; 11 } 12 13 export async function stopJob() { 14 await click('[data-test-stop] [data-test-idle-button]'); 15 await click('[data-test-stop] [data-test-confirm-button]'); 16 } 17 18 export async function startJob() { 19 await click('[data-test-start] [data-test-idle-button]'); 20 await click('[data-test-start] [data-test-confirm-button]'); 21 } 22 23 export async function purgeJob() { 24 await click('[data-test-purge] [data-test-idle-button]'); 25 await click('[data-test-purge] [data-test-confirm-button]'); 26 } 27 28 export function expectStartRequest(assert, server, job) { 29 const expectedURL = jobURL(job); 30 const request = server.pretender.handledRequests 31 .filterBy('method', 'POST') 32 .find((req) => req.url === expectedURL); 33 34 const requestPayload = JSON.parse(request.requestBody).Job; 35 36 assert.ok(request, 'POST URL was made correctly'); 37 assert.ok( 38 requestPayload.Stop == null, 39 'The Stop signal is not sent in the POST request' 40 ); 41 } 42 43 export async function expectError(assert, title) { 44 assert.equal( 45 find('[data-test-job-error-title]').textContent, 46 title, 47 'Appropriate error is shown' 48 ); 49 assert.ok( 50 find('[data-test-job-error-body]').textContent.includes('ACL'), 51 'The error message mentions ACLs' 52 ); 53 54 await click('[data-test-job-error-close]'); 55 assert.notOk( 56 find('[data-test-job-error-title]'), 57 'Error message is dismissable' 58 ); 59 } 60 61 export function expectDeleteRequest(assert, server, job) { 62 const expectedURL = jobURL(job); 63 64 assert.ok( 65 server.pretender.handledRequests 66 .filterBy('method', 'DELETE') 67 .find((req) => req.url === expectedURL), 68 'DELETE URL was made correctly' 69 ); 70 } 71 72 export function expectPurgeRequest(assert, server, job) { 73 const expectedURL = jobURL(job) + '?purge=true'; 74 75 assert.ok( 76 server.pretender.handledRequests 77 .filterBy('method', 'DELETE') 78 .find((req) => req.url === expectedURL), 79 'DELETE URL was made correctly' 80 ); 81 }