github.com/hspak/nomad@v0.7.2-0.20180309000617-bc4ae22a39a5/ui/tests/acceptance/application-errors-test.js (about)

     1  import { find, visit } from 'ember-native-dom-helpers';
     2  import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance';
     3  import { test } from 'qunit';
     4  
     5  moduleForAcceptance('Acceptance | application errors ', {
     6    beforeEach() {
     7      server.create('agent');
     8      server.create('node');
     9      server.create('job');
    10    },
    11  });
    12  
    13  test('transitioning away from an error page resets the global error', function(assert) {
    14    server.pretender.get('/v1/nodes', () => [500, {}, null]);
    15  
    16    visit('/clients');
    17  
    18    andThen(() => {
    19      assert.ok(find('[data-test-error]'), 'Application has errored');
    20    });
    21  
    22    visit('/jobs');
    23  
    24    andThen(() => {
    25      assert.notOk(find('[data-test-error]'), 'Application is no longer in an error state');
    26    });
    27  });
    28  
    29  test('the 403 error page links to the ACL tokens page', function(assert) {
    30    const job = server.db.jobs[0];
    31  
    32    server.pretender.get(`/v1/job/${job.id}`, () => [403, {}, null]);
    33  
    34    visit(`/jobs/${job.id}`);
    35  
    36    andThen(() => {
    37      assert.ok(find('[data-test-error]'), 'Error message is shown');
    38      assert.equal(
    39        find('[data-test-error] .title').textContent,
    40        'Not Authorized',
    41        'Error message is for 403'
    42      );
    43    });
    44  
    45    andThen(() => {
    46      click('[data-test-error-acl-link]');
    47    });
    48  
    49    andThen(() => {
    50      assert.equal(
    51        currentURL(),
    52        '/settings/tokens',
    53        'Error message contains a link to the tokens page'
    54      );
    55    });
    56  });