88 lines
2 KiB
JavaScript
88 lines
2 KiB
JavaScript
|
import { module, test } from 'qunit';
|
||
|
import { setupTest } from 'ember-qunit';
|
||
|
|
||
|
import { run } from '@ember/runloop';
|
||
|
|
||
|
module('Unit | Model | task', function(hooks) {
|
||
|
setupTest(hooks);
|
||
|
|
||
|
test("should expose mergedMeta as merged with the job's and task groups's meta", function(assert) {
|
||
|
const job = run(() =>
|
||
|
this.owner.lookup('service:store').createRecord('job', {
|
||
|
name: 'example',
|
||
|
taskGroups: [
|
||
|
{
|
||
|
name: 'one',
|
||
|
meta: { a: 'b' },
|
||
|
tasks: [
|
||
|
{
|
||
|
name: 'task-one',
|
||
|
meta: { c: 'd' },
|
||
|
},
|
||
|
{
|
||
|
name: 'task-two',
|
||
|
},
|
||
|
{
|
||
|
name: 'task-three',
|
||
|
meta: null,
|
||
|
},
|
||
|
{
|
||
|
name: 'task-four',
|
||
|
meta: {},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
name: 'two',
|
||
|
tasks: [
|
||
|
{
|
||
|
name: 'task-one',
|
||
|
meta: { c: 'd' },
|
||
|
},
|
||
|
{
|
||
|
name: 'task-two',
|
||
|
},
|
||
|
{
|
||
|
name: 'task-three',
|
||
|
meta: null,
|
||
|
},
|
||
|
{
|
||
|
name: 'task-four',
|
||
|
meta: {},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
],
|
||
|
})
|
||
|
);
|
||
|
|
||
|
let tg = job.get('taskGroups').objectAt(0);
|
||
|
let expected = [{ a: 'b', c: 'd' }, { a: 'b' }, { a: 'b' }, { a: 'b' }];
|
||
|
|
||
|
expected.forEach((exp, i) => {
|
||
|
assert.deepEqual(
|
||
|
tg
|
||
|
.get('tasks')
|
||
|
.objectAt(i)
|
||
|
.get('mergedMeta'),
|
||
|
exp,
|
||
|
'mergedMeta is merged with task meta'
|
||
|
);
|
||
|
});
|
||
|
|
||
|
tg = job.get('taskGroups').objectAt(1);
|
||
|
expected = [{ c: 'd' }, {}, {}, {}];
|
||
|
|
||
|
expected.forEach((exp, i) => {
|
||
|
assert.deepEqual(
|
||
|
tg
|
||
|
.get('tasks')
|
||
|
.objectAt(i)
|
||
|
.get('mergedMeta'),
|
||
|
exp,
|
||
|
'mergedMeta is merged with job meta'
|
||
|
);
|
||
|
});
|
||
|
});
|
||
|
});
|