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  }