Skip to content

Commit 67176a7

Browse files
authored
fix: use undefined to check for backgroundReload option (#80)
1 parent d49e2ae commit 67176a7

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

addon/mixins/loadable-store.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export default Mixin.create({
5656
loadRecords(type, options={}) {
5757
let query = this.coordinator.recordArrayQueryFor(type, options);
5858
let shouldBlock = options.reload || !query.value;
59-
let shouldBackgroundReload = !options.hasOwnProperty('backgroundReload') || options.backgroundReload;
59+
let shouldBackgroundReload = (options.backgroundReload !== undefined) ? options.backgroundReload : true;
6060
let promise;
6161
let fetcher;
6262

@@ -126,7 +126,7 @@ export default Mixin.create({
126126
loadRecord(type, id, options={}) {
127127
let query = this.coordinator.recordQueryFor(type, id, options);
128128
let shouldBlock = options.reload || !query.value;
129-
let shouldBackgroundReload = !options.hasOwnProperty('backgroundReload') || options.backgroundReload;
129+
let shouldBackgroundReload = (options.backgroundReload !== undefined) ? options.backgroundReload : true;
130130
let promise;
131131

132132
if (shouldBlock) {
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { module, test } from 'qunit';
2+
import { setupRenderingTest } from 'ember-qunit';
3+
import Component from '@ember/component';
4+
import hbs from 'htmlbars-inline-precompile';
5+
import { inject as service } from '@ember/service';
6+
import { render } from '@ember/test-helpers';
7+
import Model from 'ember-data/model';
8+
import { startMirage } from 'dummy/initializers/ember-cli-mirage';
9+
10+
module('Integration | Component | Load records example', function(hooks) {
11+
setupRenderingTest(hooks);
12+
13+
hooks.beforeEach(function() {
14+
this.owner.register('model:user', Model.extend());
15+
this.owner.register('component:load-records', Component.extend({
16+
store: service(),
17+
didInsertElement() {
18+
this._super(...arguments);
19+
20+
this.get('store').loadRecords(this.modelName, { ...this.params });
21+
}
22+
}));
23+
this.server = startMirage();
24+
});
25+
26+
// This ensures users can write a <LoadRecords /> component. See https://github.com/embermap/ember-data-storefront/issues/79.
27+
test('users should be able to invoke #loadRecords using a hash from a template', async function(assert) {
28+
this.server.get('/users', () => ({ data: []}));
29+
30+
await render(hbs`
31+
{{load-records
32+
modelName='user'
33+
params=(hash
34+
sort='-position'
35+
page=(hash limit=4)
36+
)
37+
}}
38+
`);
39+
40+
assert.ok(true);
41+
});
42+
});

0 commit comments

Comments
 (0)