Skip to content

Commit 3174bd8

Browse files
committed
Auto merge of #4507 - Turbo87:fix-keyword-link, r=dgellow
Fix `keyword` route links This apparently broke in 8f62c4c 😱 Fixes #4506
2 parents f804e44 + b0c464e commit 3174bd8

File tree

3 files changed

+49
-4
lines changed

3 files changed

+49
-4
lines changed

app/components/crate-header.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<ul local-class="keywords">
2424
{{#each @crate.keywords as |keyword|}}
2525
<li>
26-
<LinkTo @route="keyword" @model={{keyword}}>
26+
<LinkTo @route="keyword" @model={{keyword.id}} data-test-keyword={{keyword.id}}>
2727
<span local-class="hash">#</span>{{keyword.id}}
2828
</LinkTo>
2929
</li>

app/templates/keywords.hbs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121

2222
<div local-class="list">
2323
{{#each this.model as |keyword|}}
24-
<div local-class="row">
25-
<LinkTo @route="keyword" @model={{keyword}}>{{keyword.id}}</LinkTo>
26-
<span local-class="crate-count">
24+
<div local-class="row" data-test-keyword={{keyword.id}}>
25+
<LinkTo @route="keyword" @model={{keyword.id}}>{{keyword.id}}</LinkTo>
26+
<span local-class="crate-count" data-test-count>
2727
{{format-num keyword.crates_cnt}} {{if (eq keyword.crates_cnt 1) "crate" "crates"}}
2828
</span>
2929
</div>

tests/bugs/4506-test.js

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { click } from '@ember/test-helpers';
2+
import { module, test } from 'qunit';
3+
4+
import { setupApplicationTest } from 'cargo/tests/helpers';
5+
6+
import { visit } from '../helpers/visit-ignoring-abort';
7+
8+
module('Bug #4506', function (hooks) {
9+
setupApplicationTest(hooks);
10+
11+
function prepare(context) {
12+
let { server } = context;
13+
14+
server.create('keyword', { keyword: 'no-std' });
15+
16+
let foo = server.create('crate', { name: 'foo', keywordIds: ['no-std'] });
17+
server.create('version', { crate: foo });
18+
19+
let bar = server.create('crate', { name: 'bar', keywordIds: ['no-std'] });
20+
server.create('version', { crate: bar });
21+
}
22+
23+
test('is fixed', async function (assert) {
24+
prepare(this);
25+
26+
await visit('/crates/foo');
27+
assert.dom('[data-test-keyword]').exists({ count: 1 });
28+
29+
await click('[data-test-keyword="no-std"]');
30+
assert.dom('[data-test-total-rows]').hasText('2');
31+
assert.dom('[data-test-crate-row]').exists({ count: 2 });
32+
});
33+
34+
test('is fixed for /keywords too', async function (assert) {
35+
prepare(this);
36+
37+
await visit('/keywords');
38+
assert.dom('[data-test-keyword]').exists({ count: 1 });
39+
assert.dom('[data-test-keyword="no-std"] [data-test-count]').hasText('2 crates');
40+
41+
await click('[data-test-keyword="no-std"] a');
42+
assert.dom('[data-test-total-rows]').hasText('2');
43+
assert.dom('[data-test-crate-row]').exists({ count: 2 });
44+
});
45+
});

0 commit comments

Comments
 (0)