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 });