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  });