github.com/hernad/nomad@v1.6.112/ui/tests/unit/models/task-test.js (about)

     1  /**
     2   * Copyright (c) HashiCorp, Inc.
     3   * SPDX-License-Identifier: MPL-2.0
     4   */
     5  
     6  import { module, test } from 'qunit';
     7  import { setupTest } from 'ember-qunit';
     8  
     9  import { run } from '@ember/runloop';
    10  
    11  module('Unit | Model | task', function (hooks) {
    12    setupTest(hooks);
    13  
    14    test("should expose mergedMeta as merged with the job's and task groups's meta", function (assert) {
    15      assert.expect(8);
    16  
    17      const job = run(() =>
    18        this.owner.lookup('service:store').createRecord('job', {
    19          name: 'example',
    20          taskGroups: [
    21            {
    22              name: 'one',
    23              meta: { a: 'b' },
    24              tasks: [
    25                {
    26                  name: 'task-one',
    27                  meta: { c: 'd' },
    28                },
    29                {
    30                  name: 'task-two',
    31                },
    32                {
    33                  name: 'task-three',
    34                  meta: null,
    35                },
    36                {
    37                  name: 'task-four',
    38                  meta: {},
    39                },
    40              ],
    41            },
    42            {
    43              name: 'two',
    44              tasks: [
    45                {
    46                  name: 'task-one',
    47                  meta: { c: 'd' },
    48                },
    49                {
    50                  name: 'task-two',
    51                },
    52                {
    53                  name: 'task-three',
    54                  meta: null,
    55                },
    56                {
    57                  name: 'task-four',
    58                  meta: {},
    59                },
    60              ],
    61            },
    62          ],
    63        })
    64      );
    65  
    66      let tg = job.get('taskGroups').objectAt(0);
    67      let expected = [{ a: 'b', c: 'd' }, { a: 'b' }, { a: 'b' }, { a: 'b' }];
    68  
    69      expected.forEach((exp, i) => {
    70        assert.deepEqual(
    71          tg.get('tasks').objectAt(i).get('mergedMeta'),
    72          exp,
    73          'mergedMeta is merged with task meta'
    74        );
    75      });
    76  
    77      tg = job.get('taskGroups').objectAt(1);
    78      expected = [{ c: 'd' }, {}, {}, {}];
    79  
    80      expected.forEach((exp, i) => {
    81        assert.deepEqual(
    82          tg.get('tasks').objectAt(i).get('mergedMeta'),
    83          exp,
    84          'mergedMeta is merged with job meta'
    85        );
    86      });
    87    });
    88  });