github.com/hernad/nomad@v1.6.112/ui/tests/integration/components/job-page/helpers.js (about)

     1  /**
     2   * Copyright (c) HashiCorp, Inc.
     3   * SPDX-License-Identifier: MPL-2.0
     4   */
     5  
     6  import { click, find } from '@ember/test-helpers';
     7  
     8  export function jobURL(job, path = '') {
     9    const id = job.get('plainId');
    10    const namespace = job.get('namespace.name') || 'default';
    11    let expectedURL = `/v1/job/${id}${path}`;
    12    if (namespace !== 'default') {
    13      expectedURL += `?namespace=${namespace}`;
    14    }
    15    return expectedURL;
    16  }
    17  
    18  export async function stopJob() {
    19    await click('[data-test-stop] [data-test-idle-button]');
    20    await click('[data-test-stop] [data-test-confirm-button]');
    21  }
    22  
    23  export async function startJob() {
    24    await click('[data-test-start] [data-test-idle-button]');
    25    await click('[data-test-start] [data-test-confirm-button]');
    26  }
    27  
    28  export async function purgeJob() {
    29    await click('[data-test-purge] [data-test-idle-button]');
    30    await click('[data-test-purge] [data-test-confirm-button]');
    31  }
    32  
    33  export function expectStartRequest(assert, server, job) {
    34    const expectedURL = jobURL(job);
    35    const request = server.pretender.handledRequests
    36      .filterBy('method', 'POST')
    37      .find((req) => req.url === expectedURL);
    38  
    39    const requestPayload = JSON.parse(request.requestBody).Job;
    40  
    41    assert.ok(request, 'POST URL was made correctly');
    42    assert.ok(
    43      requestPayload.Stop == null,
    44      'The Stop signal is not sent in the POST request'
    45    );
    46  }
    47  
    48  export async function expectError(assert, title) {
    49    assert.equal(
    50      find('[data-test-job-error-title]').textContent,
    51      title,
    52      'Appropriate error is shown'
    53    );
    54    assert.ok(
    55      find('[data-test-job-error-body]').textContent.includes('ACL'),
    56      'The error message mentions ACLs'
    57    );
    58  
    59    await click('[data-test-job-error-close]');
    60    assert.notOk(
    61      find('[data-test-job-error-title]'),
    62      'Error message is dismissable'
    63    );
    64  }
    65  
    66  export function expectDeleteRequest(assert, server, job) {
    67    const expectedURL = jobURL(job);
    68  
    69    assert.ok(
    70      server.pretender.handledRequests
    71        .filterBy('method', 'DELETE')
    72        .find((req) => req.url === expectedURL),
    73      'DELETE URL was made correctly'
    74    );
    75  }
    76  
    77  export function expectPurgeRequest(assert, server, job) {
    78    const expectedURL = jobURL(job) + '?purge=true';
    79  
    80    assert.ok(
    81      server.pretender.handledRequests
    82        .filterBy('method', 'DELETE')
    83        .find((req) => req.url === expectedURL),
    84      'DELETE URL was made correctly'
    85    );
    86  }