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