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