Skip to content

Commit 86949fe

Browse files
committed
CrateRow: Display defaultVersion instead of max_version
... and hide the version if all versions are yanked
1 parent d5a9d57 commit 86949fe

File tree

2 files changed

+31
-14
lines changed

2 files changed

+31
-14
lines changed

app/components/crate-row.hbs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,17 @@
66
{{@crate.name}}
77
</a>
88
{{/let}}
9-
<span local-class="version" data-test-version>v{{@crate.max_version}}</span>
10-
<CopyButton
11-
@copyText='{{@crate.name}} = "{{@crate.max_version}}"'
12-
title="Copy Cargo.toml snippet to clipboard"
13-
local-class="copy-button"
14-
data-test-copy-toml-button
15-
>
16-
{{svg-jar "copy" alt="Copy Cargo.toml snippet to clipboard"}}
17-
</CopyButton>
9+
{{#if @crate.defaultVersion}}
10+
<span local-class="version" data-test-version>v{{@crate.defaultVersion}}</span>
11+
<CopyButton
12+
@copyText='{{@crate.name}} = "{{@crate.defaultVersion}}"'
13+
title="Copy Cargo.toml snippet to clipboard"
14+
local-class="copy-button"
15+
data-test-copy-toml-button
16+
>
17+
{{svg-jar "copy" alt="Copy Cargo.toml snippet to clipboard"}}
18+
</CopyButton>
19+
{{/if}}
1820
</div>
1921
<div local-class="description" data-test-description>
2022
{{ truncate-text @crate.description }}

tests/components/crate-row-test.js

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module('Component | CrateRow', function (hooks) {
1010
setupRenderingTest(hooks);
1111
setupMirage(hooks);
1212

13-
test('shows crate name and highest version', async function (assert) {
13+
test('shows crate name and highest stable version', async function (assert) {
1414
let crate = this.server.create('crate', { name: 'foo' });
1515
this.server.create('version', { crate, num: '1.0.0' });
1616
this.server.create('version', { crate, num: '1.2.3', yanked: true });
@@ -22,11 +22,26 @@ module('Component | CrateRow', function (hooks) {
2222

2323
await render(hbs`<CrateRow @crate={{this.crate}} />`);
2424
assert.dom('[data-test-crate-link]').hasText('foo');
25-
assert.dom('[data-test-version]').hasText('v2.0.0-beta.1');
25+
assert.dom('[data-test-version]').hasText('v1.1.2');
2626
assert.dom('[data-test-copy-toml-button]').exists();
2727
});
2828

29-
test('shows crate name and `0.0.0` version if all versions are yanked', async function (assert) {
29+
test('shows crate name and highest version, if there is no stable version available', async function (assert) {
30+
let crate = this.server.create('crate', { name: 'foo' });
31+
this.server.create('version', { crate, num: '1.0.0-beta.1' });
32+
this.server.create('version', { crate, num: '1.0.0-beta.3' });
33+
this.server.create('version', { crate, num: '1.0.0-beta.2' });
34+
35+
let store = this.owner.lookup('service:store');
36+
this.crate = await store.findRecord('crate', crate.name);
37+
38+
await render(hbs`<CrateRow @crate={{this.crate}} />`);
39+
assert.dom('[data-test-crate-link]').hasText('foo');
40+
assert.dom('[data-test-version]').hasText('v1.0.0-beta.3');
41+
assert.dom('[data-test-copy-toml-button]').exists();
42+
});
43+
44+
test('shows crate name and no version if all versions are yanked', async function (assert) {
3045
let crate = this.server.create('crate', { name: 'foo' });
3146
this.server.create('version', { crate, num: '1.0.0', yanked: true });
3247
this.server.create('version', { crate, num: '1.2.3', yanked: true });
@@ -36,7 +51,7 @@ module('Component | CrateRow', function (hooks) {
3651

3752
await render(hbs`<CrateRow @crate={{this.crate}} />`);
3853
assert.dom('[data-test-crate-link]').hasText('foo');
39-
assert.dom('[data-test-version]').hasText('v0.0.0');
40-
assert.dom('[data-test-copy-toml-button]').exists();
54+
assert.dom('[data-test-version]').doesNotExist();
55+
assert.dom('[data-test-copy-toml-button]').doesNotExist();
4156
});
4257
});

0 commit comments

Comments
 (0)