github.com/anuvu/nomad@v0.8.7-atom1/ui/tests/integration/job-page/service-test.js (about) 1 import { getOwner } from '@ember/application'; 2 import { test, moduleForComponent } from 'ember-qunit'; 3 import wait from 'ember-test-helpers/wait'; 4 import hbs from 'htmlbars-inline-precompile'; 5 import { startMirage } from 'nomad-ui/initializers/ember-cli-mirage'; 6 import { stopJob, expectStopError, expectDeleteRequest } from './helpers'; 7 8 moduleForComponent('job-page/service', 'Integration | Component | job-page/service', { 9 integration: true, 10 beforeEach() { 11 window.localStorage.clear(); 12 this.store = getOwner(this).lookup('service:store'); 13 this.server = startMirage(); 14 this.server.create('namespace'); 15 }, 16 afterEach() { 17 this.server.shutdown(); 18 window.localStorage.clear(); 19 }, 20 }); 21 22 const commonTemplate = hbs` 23 {{job-page/service 24 job=job 25 sortProperty=sortProperty 26 sortDescending=sortDescending 27 currentPage=currentPage 28 gotoJob=gotoJob}} 29 `; 30 31 const commonProperties = job => ({ 32 job, 33 sortProperty: 'name', 34 sortDescending: true, 35 currentPage: 1, 36 gotoJob() {}, 37 }); 38 39 const makeMirageJob = server => 40 server.create('job', { 41 type: 'service', 42 createAllocations: false, 43 status: 'running', 44 }); 45 46 test('Stopping a job sends a delete request for the job', function(assert) { 47 let job; 48 49 const mirageJob = makeMirageJob(this.server); 50 this.store.findAll('job'); 51 52 return wait() 53 .then(() => { 54 job = this.store.peekAll('job').findBy('plainId', mirageJob.id); 55 56 this.setProperties(commonProperties(job)); 57 this.render(commonTemplate); 58 59 return wait(); 60 }) 61 .then(stopJob) 62 .then(() => expectDeleteRequest(assert, this.server, job)); 63 }); 64 65 test('Stopping a job without proper permissions shows an error message', function(assert) { 66 this.server.pretender.delete('/v1/job/:id', () => [403, {}, null]); 67 68 const mirageJob = makeMirageJob(this.server); 69 this.store.findAll('job'); 70 71 return wait() 72 .then(() => { 73 const job = this.store.peekAll('job').findBy('plainId', mirageJob.id); 74 75 this.setProperties(commonProperties(job)); 76 this.render(commonTemplate); 77 78 return wait(); 79 }) 80 .then(stopJob) 81 .then(expectStopError(assert)); 82 });