github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/tests/unit/models/task-test.js (about)

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