github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/tests/integration/components/task-sub-row-test.js (about)

     1  import { module, test } from 'qunit';
     2  import { setupRenderingTest } from 'ember-qunit';
     3  import { render } from '@ember/test-helpers';
     4  import { hbs } from 'ember-cli-htmlbars';
     5  import { componentA11yAudit } from 'nomad-ui/tests/helpers/a11y-audit';
     6  
     7  const mockTask = {
     8    name: 'another-server',
     9    state: 'running',
    10    startedAt: '2022-09-14T17:19:12.351Z',
    11    finishedAt: null,
    12    failed: false,
    13    resources: null,
    14    events: [
    15      {
    16        Type: 'Received',
    17        Signal: 0,
    18        ExitCode: 0,
    19        Time: '2022-09-14T17:19:11.919Z',
    20        TimeNanos: 156992,
    21        DisplayMessage: 'Task received by client',
    22      },
    23      {
    24        Type: 'Task Setup',
    25        Signal: 0,
    26        ExitCode: 0,
    27        Time: '2022-09-14T17:19:11.920Z',
    28        TimeNanos: 793088,
    29        DisplayMessage: 'Building Task Directory',
    30      },
    31      {
    32        Type: 'Started',
    33        Signal: 0,
    34        ExitCode: 0,
    35        Time: '2022-09-14T17:19:12.351Z',
    36        TimeNanos: 258112,
    37        DisplayMessage: 'Task started by client',
    38      },
    39      {
    40        Type: 'Alloc Unhealthy',
    41        Signal: 0,
    42        ExitCode: 0,
    43        Time: '2022-09-14T17:24:11.919Z',
    44        TimeNanos: 589120,
    45        DisplayMessage:
    46          'Task not running for min_healthy_time of 10s by healthy_deadline of 5m0s',
    47      },
    48    ],
    49  };
    50  
    51  module('Integration | Component | task-sub-row', function (hooks) {
    52    setupRenderingTest(hooks);
    53    test('it renders', async function (assert) {
    54      assert.expect(6);
    55      this.set('task', mockTask);
    56      await render(hbs`<TaskSubRow @taskState={{this.task}} />`);
    57      assert.ok(
    58        this.element.textContent.includes(`${mockTask.name}`),
    59        'Task name is rendered'
    60      );
    61      assert.dom('.task-sub-row').doesNotHaveClass('is-active');
    62  
    63      await render(hbs`<TaskSubRow @taskState={{this.task}} @active={{true}} />`);
    64      assert.dom('.task-sub-row').hasClass('is-active');
    65  
    66      await render(
    67        hbs`<TaskSubRow @taskState={{this.task}} @active={{true}} @namespan={{5}} />`
    68      );
    69      assert.dom('.task-sub-row td:nth-child(1)').hasAttribute('colspan', '5');
    70  
    71      await render(
    72        hbs`<TaskSubRow @taskState={{this.task}} @active={{true}} @namespan={{9}} />`
    73      );
    74      assert.dom('.task-sub-row td:nth-child(1)').hasAttribute('colspan', '9');
    75  
    76      await componentA11yAudit(this.element, assert);
    77    });
    78  });