Skip to content

Commit 770dc3c

Browse files
authored
Merge pull request #345 from orbitjs/fix-test-support
Improve typings for testing
2 parents 4a2bfb3 + 7a0928b commit 770dc3c

File tree

12 files changed

+78
-83
lines changed

12 files changed

+78
-83
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
"@glimmer/component": "^1.0.3",
5656
"@types/ember": "^3.16.0",
5757
"@types/ember-qunit": "^3.4.13",
58+
"@types/ember-resolver": "^5.0.10",
5859
"@types/ember__test": "^3.16.1",
5960
"@types/ember__test-helpers": "^1.7.3",
6061
"@types/qunit": "^2.11.1",

tests/integration/cache-test.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,21 @@ import { Planet, Moon, Star } from 'dummy/tests/support/dummy-models';
22
import { Cache, Store } from 'ember-orbit';
33
import { createStore } from 'dummy/tests/support/store';
44
import { module, test } from 'qunit';
5+
import { setupTest } from 'ember-qunit';
56
import { waitForSource } from 'ember-orbit/test-support';
67

78
module('Integration - Cache', function (hooks) {
9+
setupTest(hooks);
10+
811
let store: Store;
912
let cache: Cache;
1013

1114
hooks.beforeEach(function () {
12-
const models = { planet: Planet, moon: Moon, star: Star };
13-
store = createStore({ models }).fork();
15+
store = createStore(this.owner, {
16+
planet: Planet,
17+
moon: Moon,
18+
star: Star
19+
}).fork();
1420
cache = store.cache;
1521
});
1622

tests/integration/config-test.ts

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { Store } from 'ember-orbit';
22
import { Planet, Moon, Star } from 'dummy/tests/support/dummy-models';
3-
import { createOwner, createStore } from 'dummy/tests/support/store';
3+
import { createStore } from 'dummy/tests/support/store';
44
import { module, test } from 'qunit';
5+
import { setupTest } from 'ember-qunit';
56

67
module('Integration - Config', function (hooks) {
7-
let owner: any;
8+
setupTest(hooks);
9+
810
let store: Store;
911

1012
hooks.beforeEach(function () {
11-
owner = createOwner();
12-
owner.register(
13+
this.owner.register(
1314
'config:environment',
1415
{
1516
orbit: {
@@ -38,41 +39,41 @@ module('Integration - Config', function (hooks) {
3839
{ instantiate: false }
3940
);
4041
const models = { planet: Planet, moon: Moon, star: Star };
41-
store = createStore({ models, owner });
42+
store = createStore(this.owner, models);
4243
});
4344

4445
test('registrations respect config', async function (assert) {
45-
const schema = owner.lookup('service:data-schema');
46-
const keyMap = owner.lookup('service:orbit-key-map');
47-
const normalizer = owner.lookup('service:orbit-normalizer');
48-
const validatorFor = owner.lookup('service:orbit-validator');
46+
const schema = this.owner.lookup('service:data-schema');
47+
const keyMap = this.owner.lookup('service:orbit-key-map');
48+
const normalizer = this.owner.lookup('service:orbit-normalizer');
49+
const validatorFor = this.owner.lookup('service:orbit-validator');
4950

5051
assert.equal(
51-
owner.lookup('service:orbit-store'),
52+
this.owner.lookup('service:orbit-store'),
5253
store,
5354
'store service registration is named from configuration'
5455
);
5556
assert.ok(
56-
owner.resolveRegistration('orbit-model:planet'),
57+
this.owner.resolveRegistration('orbit-model:planet'),
5758
'model factory registration is named from configuration'
5859
);
5960
assert.strictEqual(
60-
owner.lookup('orbit-source:store'),
61+
this.owner.lookup('orbit-source:store'),
6162
store.source,
6263
'source registation is named from configuration'
6364
);
6465
assert.strictEqual(
65-
owner.lookup('orbit-source:store').schema,
66+
this.owner.lookup('orbit-source:store').schema,
6667
schema,
6768
'schema is injected into sources'
6869
);
6970
assert.strictEqual(
70-
owner.lookup('orbit-source:store').keyMap,
71+
this.owner.lookup('orbit-source:store').keyMap,
7172
keyMap,
7273
'keyMap is injected into sources'
7374
);
7475
assert.strictEqual(
75-
owner.lookup('orbit-source:store').validatorFor,
76+
this.owner.lookup('orbit-source:store').validatorFor,
7677
validatorFor,
7778
'validatorFor is injected into sources'
7879
);
@@ -87,17 +88,17 @@ module('Integration - Config', function (hooks) {
8788
'keyMap is injected into normalizer'
8889
);
8990
assert.strictEqual(
90-
owner.lookup('orbit-source:store').queryBuilder.$normalizer,
91+
this.owner.lookup('orbit-source:store').queryBuilder.$normalizer,
9192
normalizer,
9293
'normalizer is injected into sources and assigned to query builders'
9394
);
9495
assert.strictEqual(
95-
owner.lookup('orbit-source:store').transformBuilder.$normalizer,
96+
this.owner.lookup('orbit-source:store').transformBuilder.$normalizer,
9697
normalizer,
9798
'normalizer is injected into sources and assigned to transform builders'
9899
);
99100
assert.ok(
100-
owner.lookup('service:data-schema'),
101+
this.owner.lookup('service:data-schema'),
101102
'unconfigured lookup type falls back to default configuration'
102103
);
103104
});

tests/integration/model-fields-test.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,21 @@ import { createStore } from 'dummy/tests/support/store';
1010
import { module, test } from 'qunit';
1111

1212
import { normalizeModelFields } from 'ember-orbit/-private/utils/model-fields';
13+
import { setupTest } from 'ember-qunit';
1314

1415
module('Integration - normalizeModelFields', function (hooks) {
16+
setupTest(hooks);
17+
1518
let store: Store;
16-
const models = {
17-
planet: Planet,
18-
moon: Moon,
19-
star: Star,
20-
binaryStar: BinaryStar,
21-
planetarySystem: PlanetarySystem
22-
};
2319

2420
hooks.beforeEach(function () {
25-
store = createStore({ models });
21+
store = createStore(this.owner, {
22+
planet: Planet,
23+
moon: Moon,
24+
star: Star,
25+
binaryStar: BinaryStar,
26+
planetarySystem: PlanetarySystem
27+
});
2628
});
2729

2830
test('#normalizeModelFields', async function (assert) {

tests/integration/model-test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,11 @@ import { module, test } from 'qunit';
1414
import { getOwner } from '@ember/application';
1515
import { waitForSource } from 'ember-orbit/test-support';
1616
import { InitializedRecord } from '@orbit/records';
17+
import { setupTest } from 'ember-qunit';
1718

1819
module('Integration - Model', function (hooks) {
20+
setupTest(hooks);
21+
1922
let store: Store;
2023

2124
hooks.beforeEach(function () {
@@ -27,7 +30,7 @@ module('Integration - Model', function (hooks) {
2730
binaryStar: BinaryStar,
2831
planetarySystem: PlanetarySystem
2932
};
30-
store = createStore({ models }).fork();
33+
store = createStore(this.owner, models).fork();
3134
});
3235

3336
test('models are assigned the same owner as the store', async function (assert) {

tests/integration/rendering-test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ module('Rendering', function (hooks) {
1515

1616
hooks.beforeEach(function () {
1717
const models = { planet: Planet, moon: Moon };
18-
store = createStore({ models }).fork();
18+
store = createStore(this.owner, models).fork();
1919
cache = store.cache;
2020
});
2121

tests/integration/store-test.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,22 @@ import {
1010
import { createStore } from 'dummy/tests/support/store';
1111
import { buildTransform } from '@orbit/data';
1212
import { module, test } from 'qunit';
13+
import { setupTest } from 'ember-qunit';
1314

1415
module('Integration - Store', function (hooks) {
16+
setupTest(hooks);
17+
1518
let store: Store;
16-
const models = {
17-
planet: Planet,
18-
moon: Moon,
19-
star: Star,
20-
ocean: Ocean,
21-
binaryStar: BinaryStar,
22-
planetarySystem: PlanetarySystem
23-
};
2419

2520
hooks.beforeEach(function () {
26-
store = createStore({ models });
21+
store = createStore(this.owner, {
22+
planet: Planet,
23+
moon: Moon,
24+
star: Star,
25+
ocean: Ocean,
26+
binaryStar: BinaryStar,
27+
planetarySystem: PlanetarySystem
28+
});
2729
});
2830

2931
test('exposes properties from source', function (assert) {

tests/integration/wait-for-source-helper-test.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { Store } from 'ember-orbit';
2+
import { MemorySource } from '@orbit/memory';
23
import { module, test } from 'qunit';
34
import { setupTest } from 'ember-qunit';
45
import { Planet } from 'dummy/tests/support/dummy-models';
@@ -11,26 +12,26 @@ module('waitForSource helper', function (hooks) {
1112
setupTest(hooks);
1213

1314
hooks.beforeEach(function () {
14-
store = createStore({ models: { planet: Planet } });
15+
store = createStore(this.owner, { planet: Planet });
1516
});
1617

1718
test('it resolves once all the pending requests to the given source have synced', async function (assert) {
18-
const backup = createStore({ models: { planet: Planet } });
19+
const backup = new MemorySource({ schema: store.schema });
1920

2021
store.on('update', (transform) => {
21-
backup.update(transform);
22+
backup.sync(transform);
2223
});
2324

2425
await store.addRecord({ type: 'planet', name: 'Earth' });
2526

2627
await waitForSource(backup);
2728

28-
assert.ok(backup.source.requestQueue.empty);
29-
assert.ok(backup.source.syncQueue.empty);
29+
assert.ok(backup.requestQueue.empty);
30+
assert.ok(backup.syncQueue.empty);
3031
});
3132

3233
test('it looks up data sources by name if a string is provided', async function (assert) {
33-
const backup = createStore({ models: { planet: Planet } });
34+
const backup = new MemorySource({ schema: store.schema });
3435

3536
this.owner.register('data-source:backup', backup, { instantiate: false });
3637

@@ -42,7 +43,7 @@ module('waitForSource helper', function (hooks) {
4243

4344
await waitForSource('backup');
4445

45-
assert.ok(backup.source.requestQueue.empty);
46-
assert.ok(backup.source.syncQueue.empty);
46+
assert.ok(backup.requestQueue.empty);
47+
assert.ok(backup.syncQueue.empty);
4748
});
4849
});

tests/support/owner.js

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)