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