Skip to content

Commit 43d87d6

Browse files
committed
Introduce setupTestAdapter hook
While working on #1163, we encountered an issue with the test adapter, where unmet expectations (when you set up a `respondTo` for a test that was never triggered) did not cause the offending test to fail. Instead, they became unhandled promise rejections (i.e. "global errors") and fails the _next_ test that runs. This is because we were using the `QUnit.{testStart,testDone}` hooks as if they were a global version of `{before,after}Each`. However, the global hooks are really intended for things like test reporters and runs too late to affect things like the pass or fail status of a test. This commit introduces a `setupTestAdapter` function that uses the normal (not global) APIs so that the failures are attached to the correct test.
1 parent 48c2872 commit 43d87d6

11 files changed

Lines changed: 61 additions & 51 deletions

tests/acceptance/app-picker-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ import {
55
} from '@ember/test-helpers';
66
import { module, test } from 'qunit';
77
import { setupApplicationTest } from 'ember-qunit';
8-
import { respondWith, disableDefaultResponseFor } from '../test-adapter';
8+
import { setupTestAdapter, respondWith, disableDefaultResponseFor } from '../test-adapter';
99

1010
module('App Picker', function(hooks) {
11+
setupTestAdapter(hooks);
1112
setupApplicationTest(hooks);
1213

1314
hooks.beforeEach(function() {

tests/acceptance/component-tree-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
} from '@ember/test-helpers';
1010
import { module, test } from 'qunit';
1111
import { setupApplicationTest } from 'ember-qunit';
12-
import { respondWith, sendMessage } from '../test-adapter';
12+
import { setupTestAdapter, respondWith, sendMessage } from '../test-adapter';
1313

1414
function textFor(selector, context) {
1515
return context.querySelector(selector).textContent.trim();
@@ -96,6 +96,7 @@ function getRenderTree() {
9696
}
9797

9898
module('Component Tab', function (hooks) {
99+
setupTestAdapter(hooks);
99100
setupApplicationTest(hooks);
100101

101102
hooks.beforeEach(function() {

tests/acceptance/container-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
fillIn,
99
currentURL
1010
} from 'ember-test-helpers';
11-
import { respondWith } from '../test-adapter';
11+
import { setupTestAdapter, respondWith } from '../test-adapter';
1212

1313
function getTypes() {
1414
return [
@@ -39,6 +39,7 @@ function getControllers() {
3939
}
4040

4141
module('Container Tab', function(outer) {
42+
setupTestAdapter(outer);
4243
setupApplicationTest(outer);
4344

4445
module('With default types', function(inner) {

tests/acceptance/data-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
} from '@ember/test-helpers';
88
import { module, test } from 'qunit';
99
import { setupApplicationTest } from 'ember-qunit';
10-
import { respondWith, sendMessage } from '../test-adapter';
10+
import { setupTestAdapter, respondWith, sendMessage } from '../test-adapter';
1111

1212
function getFilters() {
1313
return [{ name: 'isNew', desc: 'New' }];
@@ -59,6 +59,7 @@ function getRecords(type) {
5959
}
6060

6161
module('Data Tab', function(outer) {
62+
setupTestAdapter(outer);
6263
setupApplicationTest(outer);
6364

6465
module('Model Types', function(inner) {

tests/acceptance/deprecation-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { visit, findAll, fillIn, click } from '@ember/test-helpers';
22
import { module, test } from 'qunit';
33
import { setupApplicationTest } from 'ember-qunit';
4-
import { enableOpenResource, respondWith, expectOpenResource, disableDefaultResponseFor } from '../test-adapter';
4+
import { setupTestAdapter, enableOpenResource, respondWith, expectOpenResource, disableDefaultResponseFor } from '../test-adapter';
55

66
/*
77
Toggling the source can be done by clicking the
@@ -53,6 +53,7 @@ function deprecationsWithSource() {
5353
}
5454

5555
module('Deprecation Tab', function(outer) {
56+
setupTestAdapter(outer);
5657
setupApplicationTest(outer);
5758

5859
outer.beforeEach(function() {

tests/acceptance/info-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ import { visit, findAll } from '@ember/test-helpers';
22
import { module, test } from 'qunit';
33
import { setupApplicationTest } from 'ember-qunit';
44
import config from 'ember-inspector/config/environment';
5-
import { respondWith } from '../test-adapter';
5+
import { setupTestAdapter, respondWith } from '../test-adapter';
66

77
module('Info Tab', function(hooks) {
8+
setupTestAdapter(hooks);
89
setupApplicationTest(hooks);
910

1011
test("Libraries are displayed correctly", async function(assert) {

tests/acceptance/object-inspector-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
} from '@ember/test-helpers';
99
import { module, test } from 'qunit';
1010
import { setupApplicationTest } from 'ember-qunit';
11-
import { respondWith, sendMessage } from '../test-adapter';
11+
import { setupTestAdapter, respondWith, sendMessage } from '../test-adapter';
1212

1313
function objectFactory(props) {
1414
return {
@@ -69,6 +69,7 @@ function objectToInspect() {
6969
}
7070

7171
module('Object Inspector', function(hooks) {
72+
setupTestAdapter(hooks);
7273
setupApplicationTest(hooks);
7374

7475
test("The object displays correctly", async function (assert) {

tests/acceptance/promise-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
} from '@ember/test-helpers';
99
import { module, test } from 'qunit';
1010
import { setupApplicationTest } from 'ember-qunit';
11-
import { respondWith, sendMessage } from '../test-adapter';
11+
import { setupTestAdapter, respondWith, sendMessage } from '../test-adapter';
1212

1313
let guids = 0;
1414

@@ -28,6 +28,7 @@ function generatePromise(props) {
2828
}
2929

3030
module('Promise Tab', function(outer) {
31+
setupTestAdapter(outer);
3132
setupApplicationTest(outer);
3233

3334
outer.beforeEach(function() {

tests/acceptance/render-tree-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { visit, findAll, click, fillIn } from '@ember/test-helpers';
22
import { module, test } from 'qunit';
33
import { setupApplicationTest } from 'ember-qunit';
4-
import { respondWith } from '../test-adapter';
4+
import { setupTestAdapter, respondWith } from '../test-adapter';
55

66
function generateProfiles() {
77
return [
@@ -27,6 +27,7 @@ function generateProfiles() {
2727
}
2828

2929
module('Render Tree Tab', function(outer) {
30+
setupTestAdapter(outer);
3031
setupApplicationTest(outer);
3132

3233
outer.afterEach(function() {

tests/acceptance/route-tree-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
} from '@ember/test-helpers';
99
import { module, test } from 'qunit';
1010
import { setupApplicationTest } from 'ember-qunit';
11-
import { respondWith, sendMessage } from '../test-adapter';
11+
import { setupTestAdapter, respondWith, sendMessage } from '../test-adapter';
1212

1313
function isObject(item) {
1414
return (item && typeof item === 'object' && !Array.isArray(item));
@@ -75,6 +75,7 @@ function routeTree() {
7575
}
7676

7777
module('Route Tree Tab', function(outer) {
78+
setupTestAdapter(outer);
7879
setupApplicationTest(outer);
7980

8081
outer.beforeEach(function() {

0 commit comments

Comments
 (0)