github.com/zoomfoo/nomad@v0.8.5-0.20180907175415-f28fd3a1a056/ui/tests/integration/job-page/helpers.js (about)

     1  import { click, find } from 'ember-native-dom-helpers';
     2  import wait from 'ember-test-helpers/wait';
     3  
     4  export function jobURL(job, path = '') {
     5    const id = job.get('plainId');
     6    const namespace = job.get('namespace.name') || 'default';
     7    let expectedURL = `/v1/job/${id}${path}`;
     8    if (namespace !== 'default') {
     9      expectedURL += `?namespace=${namespace}`;
    10    }
    11    return expectedURL;
    12  }
    13  
    14  export function stopJob() {
    15    click('[data-test-stop] [data-test-idle-button]');
    16    return wait().then(() => {
    17      click('[data-test-stop] [data-test-confirm-button]');
    18      return wait();
    19    });
    20  }
    21  
    22  export function startJob() {
    23    click('[data-test-start] [data-test-idle-button]');
    24    return wait().then(() => {
    25      click('[data-test-start] [data-test-confirm-button]');
    26      return wait();
    27    });
    28  }
    29  
    30  export function expectStartRequest(assert, server, job) {
    31    const expectedURL = jobURL(job);
    32    const request = server.pretender.handledRequests
    33      .filterBy('method', 'POST')
    34      .find(req => req.url === expectedURL);
    35  
    36    const requestPayload = JSON.parse(request.requestBody).Job;
    37  
    38    assert.ok(request, 'POST URL was made correctly');
    39    assert.ok(requestPayload.Stop == null, 'The Stop signal is not sent in the POST request');
    40  }
    41  
    42  export function expectError(assert, title) {
    43    return () => {
    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      click('[data-test-job-error-close]');
    55      assert.notOk(find('[data-test-job-error-title]'), 'Error message is dismissable');
    56      return wait();
    57    };
    58  }
    59  
    60  export function expectDeleteRequest(assert, server, job) {
    61    const expectedURL = jobURL(job);
    62  
    63    assert.ok(
    64      server.pretender.handledRequests
    65        .filterBy('method', 'DELETE')
    66        .find(req => req.url === expectedURL),
    67      'DELETE URL was made correctly'
    68    );
    69  
    70    return wait();
    71  }