github.com/aminovpavel/nomad@v0.11.8/ui/tests/unit/models/task-group-test.js (about) 1 import { get } from '@ember/object'; 2 import { module, test } from 'qunit'; 3 import { setupTest } from 'ember-qunit'; 4 5 import { run } from '@ember/runloop'; 6 7 const sum = (list, key) => list.reduce((sum, item) => sum + get(item, key), 0); 8 9 module('Unit | Model | task-group', function(hooks) { 10 setupTest(hooks); 11 12 test("should expose reserved resource stats as aggregates of each task's reserved resources", function(assert) { 13 const taskGroup = run(() => this.owner.lookup('service:store').createRecord('task-group', { 14 name: 'group-example', 15 tasks: [ 16 { 17 name: 'task-one', 18 driver: 'docker', 19 reservedMemory: 512, 20 reservedCPU: 500, 21 reservedDisk: 1024, 22 }, 23 { 24 name: 'task-two', 25 driver: 'docker', 26 reservedMemory: 256, 27 reservedCPU: 1000, 28 reservedDisk: 512, 29 }, 30 { 31 name: 'task-three', 32 driver: 'docker', 33 reservedMemory: 1024, 34 reservedCPU: 1500, 35 reservedDisk: 4096, 36 }, 37 { 38 name: 'task-four', 39 driver: 'docker', 40 reservedMemory: 2048, 41 reservedCPU: 500, 42 reservedDisk: 128, 43 }, 44 ], 45 })); 46 47 assert.equal( 48 taskGroup.get('reservedCPU'), 49 sum(taskGroup.get('tasks'), 'reservedCPU'), 50 'reservedCPU is an aggregate sum of task CPU reservations' 51 ); 52 assert.equal( 53 taskGroup.get('reservedMemory'), 54 sum(taskGroup.get('tasks'), 'reservedMemory'), 55 'reservedMemory is an aggregate sum of task memory reservations' 56 ); 57 assert.equal( 58 taskGroup.get('reservedDisk'), 59 sum(taskGroup.get('tasks'), 'reservedDisk'), 60 'reservedDisk is an aggregate sum of task disk reservations' 61 ); 62 }); 63 });