diff --git a/ui/app/routes/application.js b/ui/app/routes/application.js index 1b6fe6335..f84961641 100644 --- a/ui/app/routes/application.js +++ b/ui/app/routes/application.js @@ -11,6 +11,7 @@ export default Route.extend({ actions: { didTransition() { + this.controllerFor('application').set('error', null); window.scrollTo(0, 0); }, diff --git a/ui/tests/acceptance/application-errors-test.js b/ui/tests/acceptance/application-errors-test.js new file mode 100644 index 000000000..385961325 --- /dev/null +++ b/ui/tests/acceptance/application-errors-test.js @@ -0,0 +1,27 @@ +import { find, visit } from 'ember-native-dom-helpers'; +import moduleForAcceptance from 'nomad-ui/tests/helpers/module-for-acceptance'; +import { test } from 'qunit'; + +moduleForAcceptance('Acceptance | application errors ', { + beforeEach() { + server.create('agent'); + server.create('node'); + server.create('job'); + }, +}); + +test('transitioning away from an error page resets the global error', function(assert) { + server.pretender.get('/v1/nodes', () => [403, {}, null]); + + visit('/nodes'); + + andThen(() => { + assert.ok(find('.error-message'), 'Application has errored'); + }); + + visit('/jobs'); + + andThen(() => { + assert.notOk(find('.error-message'), 'Application is no longer in an error state'); + }); +});