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