Skip to content

Commit adc3bae

Browse files
committed
app: Include default_version by default
This commit would ensure that `default_version` is included in the `crate` response by default. This eliminates the need to wait for the `versions` request to complete when `default_version` is the only version required.
1 parent 6a6017e commit adc3bae

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

app/adapters/crate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export default class CrateAdapter extends ApplicationAdapter {
3737
function setDefaultInclude(query) {
3838
if (query.include === undefined) {
3939
// This ensures `crate.versions` are always fetched from another request.
40-
query.include = 'keywords,categories,downloads';
40+
query.include = 'keywords,categories,downloads,default_version';
4141
}
4242

4343
return query;

tests/adapters/crate-test.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,28 @@ module('Adapter | crate', function (hooks) {
2323
assert.strictEqual(bar?.name, 'bar');
2424
});
2525

26-
test('findRecord requests do not include versions by default', async function (assert) {
27-
let _foo = this.server.create('crate', { name: 'foo' });
28-
let version = this.server.create('version', { crate: _foo });
26+
test('findRecord requests only include `default_version` by default', async function (assert) {
27+
let crate = this.server.create('crate', { name: 'foo' });
28+
let versions = [
29+
this.server.create('version', { crate, num: '0.0.1' }),
30+
this.server.create('version', { crate, num: '0.0.2' }),
31+
this.server.create('version', { crate, num: '0.0.3' }),
32+
];
33+
let default_version = versions.find(v => v.num === '0.0.3');
2934

3035
let store = this.owner.lookup('service:store');
3136

3237
let foo = await store.findRecord('crate', 'foo');
3338
assert.strictEqual(foo?.name, 'foo');
3439

35-
// versions should not be loaded yet
40+
// Only `defaul_version` should be loaded
3641
let versionsRef = foo.hasMany('versions');
37-
assert.deepEqual(versionsRef.ids(), []);
42+
assert.deepEqual(versionsRef.ids(), [default_version.id]);
3843

3944
await versionsRef.load();
40-
assert.deepEqual(versionsRef.ids(), [version.id]);
45+
assert.deepEqual(
46+
versionsRef.ids(),
47+
versions.map(v => v.id),
48+
);
4149
});
4250
});

0 commit comments

Comments
 (0)