github.com/hspak/nomad@v0.7.2-0.20180309000617-bc4ae22a39a5/ui/tests/unit/models/task-group-test.js (about) 1 import { get } from '@ember/object'; 2 import { moduleForModel, test } from 'ember-qunit'; 3 4 const sum = (list, key) => list.reduce((sum, item) => sum + get(item, key), 0); 5 6 moduleForModel('task-group', 'Unit | Model | task-group', { 7 needs: ['model:task', 'model:task-group-summary'], 8 }); 9 10 test("should expose reserved resource stats as aggregates of each task's reserved resources", function( 11 assert 12 ) { 13 const taskGroup = this.subject({ 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 });