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