skip('the X-Nomad-Token header gets sent with requests once it is set', async function(assert) { const { secretId } = managementToken; await JobDetail.visit({ id: job.id }); await ClientDetail.visit({ id: node.id }); assert.ok(server.pretender.handledRequests.length > 1, 'Requests have been made'); server.pretender.handledRequests.forEach(req => { assert.notOk(getHeader(req, 'X-Nomad-Token'), `No token for ${req.url}`); }); const requestPosition = server.pretender.handledRequests.length; await Tokens.visit(); await Tokens.secret(secretId).submit(); await JobDetail.visit({ id: job.id }); await ClientDetail.visit({ id: node.id }); const newRequests = server.pretender.handledRequests.slice(requestPosition); assert.ok(newRequests.length > 1, 'New requests have been made'); // Cross-origin requests can't have a token newRequests.forEach(req => { assert.equal(getHeader(req, 'X-Nomad-Token'), secretId, `Token set for ${req.url}`); }); });
export default function moduleForJob(title, jobFactory, additionalTests) { let job; moduleForAcceptance(title, { beforeEach() { server.create('node'); job = jobFactory(); JobDetail.visit({ id: job.id }); }, }); test('visiting /jobs/:job_id', function(assert) { assert.equal(currentURL(), `/jobs/${job.id}`); }); test('the subnav links to overview', function(assert) { JobDetail.tabFor('overview').visit(); andThen(() => { assert.equal(currentURL(), `/jobs/${job.id}`); }); }); test('the subnav links to definition', function(assert) { JobDetail.tabFor('definition').visit(); andThen(() => { assert.equal(currentURL(), `/jobs/${job.id}/definition`); }); }); test('the subnav links to versions', function(assert) { JobDetail.tabFor('versions').visit(); andThen(() => { assert.equal(currentURL(), `/jobs/${job.id}/versions`); }); }); test('the subnav links to evaluations', function(assert) { JobDetail.tabFor('evaluations').visit(); andThen(() => { assert.equal(currentURL(), `/jobs/${job.id}/evaluations`); }); }); for (var testName in additionalTests) { test(testName, function(assert) { additionalTests[testName](job, assert); }); } }
test('the 403 error page links to the ACL tokens page', async function(assert) { const job = server.db.jobs[0]; server.pretender.get(`/v1/job/${job.id}`, () => [403, {}, null]); await Job.visit({ id: job.id }); assert.ok(Job.error.isPresent, 'Error message is shown'); assert.equal(Job.error.title, 'Not Authorized', 'Error message is for 403'); await Job.error.seekHelp(); assert.equal( currentURL(), '/settings/tokens', 'Error message contains a link to the tokens page' ); });