Skip to content

Commit

Permalink
Changing logic to determine if to enable setupOnerror or not
Browse files Browse the repository at this point in the history
  • Loading branch information
scalvert committed Jan 25, 2019
1 parent 0df2c18 commit e133b7f
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
9 changes: 6 additions & 3 deletions addon-test-support/@ember/test-helpers/setup-context.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { set, setProperties, get, getProperties } from '@ember/object';
import { guidFor } from '@ember/object/internals';
import Resolver from '@ember/application/resolver';

import hasEmberVersion from './has-ember-version';
import buildOwner, { Owner } from './build-owner';
import { _setupAJAXHooks } from './settled';
import Ember from 'ember';
Expand Down Expand Up @@ -143,9 +142,13 @@ const ORIGINAL_EMBER_ONERROR: (error: Error) => void | undefined = Ember.onerror
@param {Function} onError the onError function to be set on Ember.onerror
*/
export function setupOnerror(onError: (error: Error) => void): void {
if (!hasEmberVersion(2, 4)) {
let context = getContext();
let contextGuid = guidFor(context);
let contextCleanup = CLEANUP[contextGuid];

if (!Array.isArray(contextCleanup)) {
throw new Error(
'The `setupOnerror` function requires that you be on a minimum version of Ember 2.4.'
'You must use `setupContext` / `setupRenderingContext` / `setupApplicationContext` in order to use `setupOnerror`'
);
}

Expand Down
7 changes: 5 additions & 2 deletions tests/unit/setup-ember-onerror-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,21 @@ module('setupOnerror', function() {
assert.equal(Ember.onerror, undefined);
});

test('Ember.onerror is set correctly when using setupOnerror', function(assert) {
test('Ember.onerror is set correctly when using setupOnerror', async function(assert) {
assert.expect(2);

let context = {};
let onerror = err => err;

assert.equal(Ember.onerror, undefined);

await setupContext(context);

setupOnerror(onerror);

assert.equal(Ember.onerror, onerror);

Ember.onerror = undefined;
await teardownContext(context);
});

test('Ember.onerror is reset correctly when teardownContext is invoked', async function(assert) {
Expand Down

0 comments on commit e133b7f

Please sign in to comment.