Skip to content

Commit 1cbc44d

Browse files
author
pliljegr
committed
CHORE: Modernize integration/ tests and remove run loop calls
1 parent 2c2cfb9 commit 1cbc44d

7 files changed

+1060
-1151
lines changed

packages/-ember-data/tests/integration/application-test.js

+3-11
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import Namespace from '@ember/application/namespace';
22
import Service, { inject as service } from '@ember/service';
33
import Controller from '@ember/controller';
44
import Application from '@ember/application';
5-
import { run } from '@ember/runloop';
65
import Store from 'ember-data/store';
76
import { module, test } from 'qunit';
87
import { setupTest } from 'ember-qunit';
@@ -110,12 +109,6 @@ module('integration/application - Attaching initializer', function(hooks) {
110109
this.owner = null;
111110
});
112111

113-
hooks.afterEach(function() {
114-
if (this.application !== null) {
115-
run(this.application, 'destroy');
116-
}
117-
});
118-
119112
test('ember-data initializer is run', async function(assert) {
120113
let ran = false;
121114

@@ -129,7 +122,7 @@ module('integration/application - Attaching initializer', function(hooks) {
129122

130123
this.application = this.TestApplication.create({ autoboot: false });
131124

132-
await run(() => this.application.boot());
125+
await this.application.boot();
133126

134127
assert.ok(ran, 'ember-data initializer was found');
135128
});
@@ -149,9 +142,8 @@ module('integration/application - Attaching initializer', function(hooks) {
149142

150143
this.application = this.TestApplication.create({ autoboot: false });
151144

152-
await run(() =>
153-
this.application.boot().then(() => (this.owner = this.application.buildInstance()))
154-
);
145+
await this.application.boot();
146+
this.owner = this.application.buildInstance();
155147

156148
let store = this.owner.lookup('service:store');
157149
assert.ok(

packages/-ember-data/tests/integration/debug-adapter-test.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { setupTest } from 'ember-qunit';
22
import { A } from '@ember/array';
33
import { get } from '@ember/object';
4-
import { run } from '@ember/runloop';
54
import Model from '@ember-data/model';
65
import Adapter from '@ember-data/adapter';
76
import { module, test } from 'qunit';
@@ -176,7 +175,7 @@ module('integration/debug-adapter - DS.DebugAdapter', function(hooks) {
176175
addedRecords = updatedRecords = [];
177176
removedCount = removedIndex = null;
178177

179-
run(() => post.unloadRecord());
178+
post.unloadRecord();
180179

181180
await settled();
182181

packages/-ember-data/tests/integration/inverse-test.js

+71-60
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,79 @@
11
import { run } from '@ember/runloop';
2-
import setupStore from 'dummy/tests/helpers/store';
32

3+
import { setupTest } from 'ember-qunit';
44
import testInDebug from 'dummy/tests/helpers/test-in-debug';
55
import { module, test } from 'qunit';
66

7-
import DS from 'ember-data';
8-
9-
let env, store, User, Job, ReflexiveModel;
10-
11-
const { attr, belongsTo } = DS;
7+
import Model from '@ember-data/model';
8+
import { attr, belongsTo } from '@ember-data/model';
129

1310
function stringify(string) {
1411
return function() {
1512
return string;
1613
};
1714
}
1815

16+
// @pete_the_pete refer to https://github.com/emberjs/data/commit/e34cb5a37391ce2e5d25401ca189a9bd19a29340
1917
module('integration/inverse_test - inverseFor', function(hooks) {
20-
hooks.beforeEach(function() {
21-
User = DS.Model.extend({
22-
name: attr('string'),
23-
bestFriend: belongsTo('user', { async: true, inverse: null }),
24-
job: belongsTo('job', { async: false }),
25-
});
26-
27-
User.toString = stringify('user');
28-
29-
Job = DS.Model.extend({
30-
isGood: attr(),
31-
user: belongsTo('user', { async: false }),
32-
});
33-
34-
Job.toString = stringify('job');
18+
setupTest(hooks);
19+
let store;
20+
let user;
21+
let job;
3522

36-
ReflexiveModel = DS.Model.extend({
37-
reflexiveProp: belongsTo('reflexive-model', { async: false }),
38-
});
39-
40-
ReflexiveModel.toString = stringify('reflexiveModel');
41-
42-
env = setupStore({
43-
user: User,
44-
job: Job,
45-
reflexiveModel: ReflexiveModel,
46-
});
47-
48-
store = env.store;
49-
50-
Job = store.modelFor('job');
51-
User = store.modelFor('user');
52-
ReflexiveModel = store.modelFor('reflexive-model');
53-
});
54-
55-
hooks.afterEach(function() {
56-
run(env.container, 'destroy');
23+
hooks.beforeEach(function() {
24+
let { owner } = this;
25+
class User extends Model {
26+
@attr()
27+
name;
28+
29+
@belongsTo('user', { async: true, inverse: null })
30+
bestFriend;
31+
32+
@belongsTo('job', { async: false })
33+
job;
34+
35+
toString() {
36+
return stringify('user');
37+
}
38+
}
39+
40+
class Job extends Model {
41+
@attr()
42+
isGood;
43+
44+
@belongsTo('user', { async: false })
45+
user;
46+
47+
toString() {
48+
return stringify('job');
49+
}
50+
}
51+
52+
class ReflexiveModel extends Model {
53+
@belongsTo('reflexive-model', { async: false })
54+
reflexiveProp;
55+
56+
toString() {
57+
return stringify('reflexiveModel');
58+
}
59+
}
60+
owner.register('model:user', User);
61+
owner.register('model:job', Job);
62+
owner.register('model:reflexive-model', ReflexiveModel);
63+
64+
store = owner.lookup('service:store');
65+
66+
job = store.modelFor('job');
67+
user = store.modelFor('user');
5768
});
5869

5970
test('Finds the inverse when there is only one possible available', function(assert) {
60-
let inverseDefinition = Job.inverseFor('user', store);
71+
let inverseDefinition = job.inverseFor('user', store);
6172

6273
assert.deepEqual(
6374
inverseDefinition,
6475
{
65-
type: User,
76+
type: user,
6677
name: 'job',
6778
kind: 'belongsTo',
6879
options: {
@@ -74,18 +85,18 @@ module('integration/inverse_test - inverseFor', function(hooks) {
7485
});
7586

7687
test('Finds the inverse when only one side has defined it manually', function(assert) {
77-
Job.reopen({
88+
job.reopen({
7889
owner: belongsTo('user', { inverse: 'previousJob', async: false }),
7990
});
8091

81-
User.reopen({
92+
user.reopen({
8293
previousJob: belongsTo('job', { async: false }),
8394
});
8495

8596
assert.deepEqual(
86-
Job.inverseFor('owner', store),
97+
job.inverseFor('owner', store),
8798
{
88-
type: User, //the model's type
99+
type: user, //the model's type
89100
name: 'previousJob', //the models relationship key
90101
kind: 'belongsTo',
91102
options: {
@@ -96,9 +107,9 @@ module('integration/inverse_test - inverseFor', function(hooks) {
96107
);
97108

98109
assert.deepEqual(
99-
User.inverseFor('previousJob', store),
110+
user.inverseFor('previousJob', store),
100111
{
101-
type: Job, //the model's type
112+
type: job, //the model's type
102113
name: 'owner', //the models relationship key
103114
kind: 'belongsTo',
104115
options: {
@@ -111,41 +122,41 @@ module('integration/inverse_test - inverseFor', function(hooks) {
111122
});
112123

113124
test('Returns null if inverse relationship it is manually set with a different relationship key', function(assert) {
114-
Job.reopen({
125+
job.reopen({
115126
user: belongsTo('user', { inverse: 'previousJob', async: false }),
116127
});
117128

118-
User.reopen({
129+
user.reopen({
119130
job: belongsTo('job', { async: false }),
120131
});
121132

122-
assert.equal(User.inverseFor('job', store), null, 'There is no inverse');
133+
assert.equal(user.inverseFor('job', store), null, 'There is no inverse');
123134
});
124135

125136
testInDebug('Errors out if you define 2 inverses to the same model', function(assert) {
126-
Job.reopen({
137+
job.reopen({
127138
user: belongsTo('user', { inverse: 'job', async: false }),
128139
owner: belongsTo('user', { inverse: 'job', async: false }),
129140
});
130141

131-
User.reopen({
142+
user.reopen({
132143
job: belongsTo('job', { async: false }),
133144
});
134145

135146
assert.expectAssertion(() => {
136-
User.inverseFor('job', store);
137-
}, /You defined the 'job' relationship on user, but you defined the inverse relationships of type job multiple times/i);
147+
user.inverseFor('job', store);
148+
}, /Assertion Failed: You defined the 'job' relationship on model:user, but you defined the inverse relationships of type model:job multiple times/i);
138149
});
139150

140151
test('Caches findInverseFor return value', function(assert) {
141152
assert.expect(1);
142153

143-
var inverseForUser = Job.inverseFor('user', store);
144-
Job.findInverseFor = function() {
154+
let inverseForUser = job.inverseFor('user', store);
155+
job.findInverseFor = function() {
145156
assert.ok(false, 'Find is not called anymore');
146157
};
147158

148-
assert.equal(inverseForUser, Job.inverseFor('user', store), 'Inverse cached succesfully');
159+
assert.equal(inverseForUser, job.inverseFor('user', store), 'Inverse cached succesfully');
149160
});
150161

151162
testInDebug('Errors out if you do not define an inverse for a reflexive relationship', function(
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,25 @@
11
import { resolve } from 'rsvp';
2-
import { run } from '@ember/runloop';
2+
import { setupTest } from 'ember-qunit';
33
import { deprecatedTest } from 'dummy/tests/helpers/deprecated-test';
4-
import setupStore from 'dummy/tests/helpers/store';
4+
import Model from '@ember-data/model';
5+
import { attr } from '@ember-data/model';
56

67
import { module } from 'qunit';
78

8-
import DS from 'ember-data';
9-
10-
let Person, env;
11-
const { attr } = DS;
12-
139
module('integration/lifecycle_hooks - Lifecycle Hooks', function(hooks) {
10+
setupTest(hooks);
11+
let store;
12+
let adapter;
1413
hooks.beforeEach(function() {
15-
Person = DS.Model.extend({
16-
name: attr('string'),
17-
});
18-
19-
env = setupStore({
20-
person: Person,
21-
});
22-
});
14+
let { owner } = this;
15+
class Person extends Model {
16+
@attr()
17+
name;
18+
}
2319

24-
hooks.afterEach(function() {
25-
run(env.container, 'destroy');
20+
owner.register('model:person', Person);
21+
store = owner.lookup('service:store');
22+
adapter = store.adapterFor('application');
2623
});
2724

2825
deprecatedTest(
@@ -31,15 +28,15 @@ module('integration/lifecycle_hooks - Lifecycle Hooks', function(hooks) {
3128
id: 'ember-data:evented-api-usage',
3229
until: '4.0',
3330
},
34-
function(assert) {
31+
async function(assert) {
3532
let done = assert.async();
3633
assert.expect(3);
3734

38-
env.adapter.createRecord = function(store, type, snapshot) {
35+
adapter.createRecord = function(store, type, snapshot) {
3936
return resolve({ data: { id: 99, type: 'person', attributes: { name: 'Yehuda Katz' } } });
4037
};
4138

42-
let person = env.store.createRecord('person', { name: 'Yehuda Katz' });
39+
let person = store.createRecord('person', { name: 'Yehuda Katz' });
4340

4441
person.on('didCreate', function() {
4542
assert.equal(this, person, 'this is bound to the record');
@@ -48,7 +45,7 @@ module('integration/lifecycle_hooks - Lifecycle Hooks', function(hooks) {
4845
done();
4946
});
5047

51-
run(person, 'save');
48+
await person.save();
5249
}
5350
);
5451

@@ -58,22 +55,22 @@ module('integration/lifecycle_hooks - Lifecycle Hooks', function(hooks) {
5855
id: 'ember-data:evented-api-usage',
5956
until: '4.0',
6057
},
61-
function(assert) {
58+
async function(assert) {
6259
assert.expect(3);
6360

64-
env.adapter.createRecord = function(store, type, snapshot) {
61+
adapter.createRecord = function(store, type, snapshot) {
6562
return resolve();
6663
};
6764

68-
let person = env.store.createRecord('person', { id: 99, name: 'Yehuda Katz' });
65+
let person = store.createRecord('person', { id: 99, name: 'Yehuda Katz' });
6966

7067
person.on('didCreate', function() {
7168
assert.equal(this, person, 'this is bound to the record');
7269
assert.equal(this.get('id'), '99', 'the ID has been assigned');
7370
assert.equal(this.get('name'), 'Yehuda Katz', 'the attribute has been assigned');
7471
});
7572

76-
run(person, 'save');
73+
await person.save();
7774
}
7875
);
7976
});

0 commit comments

Comments
 (0)