github.com/zhizhiboom/nomad@v0.8.5-0.20180907175415-f28fd3a1a056/ui/tests/acceptance/server-detail-test.js (about)

     1  import { currentURL } from 'ember-native-dom-helpers';
     2  import { test } from 'qunit';
     3  import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance';
     4  import ServerDetail from 'nomad-ui/tests/pages/servers/detail';
     5  
     6  let agent;
     7  
     8  moduleForAcceptance('Acceptance | server detail', {
     9    beforeEach() {
    10      server.createList('agent', 3);
    11      agent = server.db.agents[0];
    12      ServerDetail.visit({ name: agent.name });
    13    },
    14  });
    15  
    16  test('visiting /servers/:server_name', function(assert) {
    17    assert.equal(currentURL(), `/servers/${encodeURIComponent(agent.name)}`);
    18  });
    19  
    20  test('the server detail page should list all tags for the server', function(assert) {
    21    const tags = Object.keys(agent.tags)
    22      .map(name => ({ name, value: agent.tags[name] }))
    23      .sortBy('name');
    24  
    25    assert.equal(ServerDetail.tags.length, tags.length, '# of tags');
    26    ServerDetail.tags.forEach((tagRow, index) => {
    27      const tag = tags[index];
    28      assert.equal(tagRow.name, tag.name, `Label: ${tag.name}`);
    29      assert.equal(tagRow.value, tag.value, `Value: ${tag.value}`);
    30    });
    31  });
    32  
    33  test('the list of servers from /servers should still be present', function(assert) {
    34    assert.equal(ServerDetail.servers.length, server.db.agents.length, '# of servers');
    35  });
    36  
    37  test('the active server should be denoted in the table', function(assert) {
    38    const activeServers = ServerDetail.servers.filter(server => server.isActive);
    39  
    40    assert.equal(activeServers.length, 1, 'Only one active server');
    41    assert.equal(ServerDetail.activeServer.name, agent.name, 'Active server matches current route');
    42  });
    43  
    44  test('when the server is not found, an error message is shown, but the URL persists', function(assert) {
    45    ServerDetail.visit({ name: 'not-a-real-server' });
    46  
    47    andThen(() => {
    48      assert.equal(currentURL(), '/servers/not-a-real-server', 'The URL persists');
    49      assert.equal(ServerDetail.error.title, 'Not Found', 'Error message is for 404');
    50    });
    51  });