Skip to content

Commit 90dbe48

Browse files
committed
templates/crate: Use test-selectors
1 parent 13078be commit 90dbe48

File tree

2 files changed

+30
-28
lines changed

2 files changed

+30
-28
lines changed

app/templates/crate/version.hbs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{{title crate.name}}
22

3-
<div id='crates-heading'>
3+
<div id='crates-heading' data-test-heading>
44
<div class="wide">
55
<div class='info'>
66
{{svg-jar "crate"}}
7-
<h1>{{ crate.name }}</h1>
8-
<h2>{{ currentVersion.num }}</h2>
7+
<h1 data-test-crate-name>{{ crate.name }}</h1>
8+
<h2 data-test-crate-version>{{ currentVersion.num }}</h2>
99
</div>
1010

1111
<div class='right'>
@@ -44,7 +44,7 @@
4444
{{/if}}
4545
{{#if crate.reverse_dependencies}}
4646
<li>
47-
{{#link-to 'crate.reverse_dependencies' (query-params dependency=crate.crate_id)}}
47+
{{#link-to 'crate.reverse_dependencies' (query-params dependency=crate.crate_id) data-test-reverse-deps-link=true}}
4848
Dependent crates
4949
{{/link-to}}
5050
</li>
@@ -137,7 +137,7 @@
137137
{{#if currentVersion.license}}
138138
<div>
139139
<h3>License</h3>
140-
<p class="license">{{ currentVersion.license }}</p>
140+
<p class="license" data-test-license>{{ currentVersion.license }}</p>
141141
</div>
142142
{{/if}}
143143

@@ -169,18 +169,18 @@
169169

170170
<div>
171171
<h3>Owners</h3>
172-
<ul class='owners'>
172+
<ul class='owners' data-test-owners>
173173
{{#each crate.owner_team as |team|}}
174174
<li>
175-
{{#link-to team.kind team.login}}
175+
{{#link-to team.kind team.login data-test-team-link=team.login}}
176176
{{user-avatar user=team size='medium-small'}}
177177
{{/link-to}}
178178
</li>
179179
{{/each}}
180180

181181
{{#each crate.owner_user as |user|}}
182182
<li>
183-
{{#link-to user.kind user.login}}
183+
{{#link-to user.kind user.login data-test-user-link=user.login}}
184184
{{user-avatar user=user size='medium-small'}}
185185
{{/link-to}}
186186
</li>
@@ -205,7 +205,7 @@
205205
</ul>
206206
<span class='small'>
207207
{{#if hasMoreVersions}}
208-
{{#link-to 'crate.versions' crate}}
208+
{{#link-to 'crate.versions' crate data-test-all-versions-link=true}}
209209
show all {{ crate.versions.length }} versions
210210
{{/link-to}}
211211
{{/if}}

tests/acceptance/crate-test.js

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ test('visiting a crate page from the front page', async function(assert) {
77
server.create('crate', 'withVersion', { id: 'nanomsg' });
88

99
await visit('/');
10-
await click('#just-updated ul > li:first a');
10+
await click('[data-test-just-updated] [data-test-crate-link="0"]');
1111

1212
assert.equal(currentURL(), '/crates/nanomsg');
1313
assert.equal(document.title, 'nanomsg - Cargo: packages for Rust');
@@ -24,8 +24,8 @@ test('visiting /crates/nanomsg', async function(assert) {
2424
assert.equal(currentRouteName(), 'crate.index');
2525
assert.equal(document.title, 'nanomsg - Cargo: packages for Rust');
2626

27-
assert.dom('#crates-heading .info h1').hasText('nanomsg');
28-
assert.dom('#crates-heading .info h2').hasText('0.6.1');
27+
assert.dom('[data-test-heading] [data-test-crate-name]').hasText('nanomsg');
28+
assert.dom('[data-test-heading] [data-test-crate-version]').hasText('0.6.1');
2929
});
3030

3131
test('visiting /crates/nanomsg/', async function(assert) {
@@ -39,8 +39,8 @@ test('visiting /crates/nanomsg/', async function(assert) {
3939
assert.equal(currentRouteName(), 'crate.index');
4040
assert.equal(document.title, 'nanomsg - Cargo: packages for Rust');
4141

42-
assert.dom('#crates-heading .info h1').hasText('nanomsg');
43-
assert.dom('#crates-heading .info h2').hasText('0.6.1');
42+
assert.dom('[data-test-heading] [data-test-crate-name]').hasText('nanomsg');
43+
assert.dom('[data-test-heading] [data-test-crate-version]').hasText('0.6.1');
4444
});
4545

4646
test('visiting /crates/nanomsg/0.6.0', async function(assert) {
@@ -54,15 +54,15 @@ test('visiting /crates/nanomsg/0.6.0', async function(assert) {
5454
assert.equal(currentRouteName(), 'crate.version');
5555
assert.equal(document.title, 'nanomsg - Cargo: packages for Rust');
5656

57-
assert.dom('#crates-heading .info h1').hasText('nanomsg');
58-
assert.dom('#crates-heading .info h2').hasText('0.6.0');
57+
assert.dom('[data-test-heading] [data-test-crate-name]').hasText('nanomsg');
58+
assert.dom('[data-test-heading] [data-test-crate-version]').hasText('0.6.0');
5959
});
6060

6161
test('navigating to the all versions page', async function(assert) {
6262
server.loadFixtures();
6363

6464
await visit('/crates/nanomsg');
65-
await click('#crate-versions span.small a');
65+
await click('[data-test-all-versions-link]');
6666

6767
assert.dom('.info').hasText(/All 13\s+versions of nanomsg since\s+December \d+, 2014/);
6868
});
@@ -71,7 +71,7 @@ test('navigating to the reverse dependencies page', async function(assert) {
7171
server.loadFixtures();
7272

7373
await visit('/crates/nanomsg');
74-
await click('a:contains("Dependent crates")');
74+
await click('[data-test-reverse-deps-link]');
7575

7676
assert.equal(currentURL(), '/crates/nanomsg/reverse_dependencies');
7777
assert.dom('a[href="/crates/unicorn-rpc"]').hasText('unicorn-rpc');
@@ -81,46 +81,48 @@ test('navigating to a user page', async function(assert) {
8181
server.loadFixtures();
8282

8383
await visit('/crates/nanomsg');
84-
await click('.owners li:last a');
84+
await click('[data-test-owners] [data-test-user-link="blabaere"]');
8585

8686
assert.equal(currentURL(), '/users/blabaere');
87-
assert.dom('#crates-heading h1').hasText('blabaere');
87+
assert.dom('[data-test-heading] [data-test-username]').hasText('blabaere');
8888
});
8989

9090
test('navigating to a team page', async function(assert) {
9191
server.loadFixtures();
9292

9393
await visit('/crates/nanomsg');
94-
await click('.owners li:first a ');
94+
await click('[data-test-owners] [data-test-team-link="github:org:thehydroimpulse"]');
9595

9696
assert.equal(currentURL(), '/teams/github:org:thehydroimpulse');
97-
assert.dom('.team-info h2').hasText('thehydroimpulseteam');
97+
assert.dom('[data-test-heading] [data-test-team-name]').hasText('thehydroimpulseteam');
9898
});
9999

100100
test('crates having user-owners', async function(assert) {
101101
server.loadFixtures();
102102

103103
await visit('/crates/nanomsg');
104104

105-
assert.dom('ul.owners li a[href="/teams/github:org:thehydroimpulse"] img[src="https://avatars.githubusercontent.com/u/565790?v=3&s=64"]').exists();
106-
assert.dom('ul.owners li').exists({ count: 4 });
105+
assert.dom('[data-test-owners] [data-test-team-link="github:org:thehydroimpulse"] img')
106+
.hasAttribute('src', 'https://avatars.githubusercontent.com/u/565790?v=3&s=64');
107+
108+
assert.dom('[data-test-owners] li').exists({ count: 4 });
107109
});
108110

109111
test('crates having team-owners', async function(assert) {
110112
server.loadFixtures();
111113

112114
await visit('/crates/nanomsg');
113115

114-
assert.dom('ul.owners li a[href="/teams/github:org:thehydroimpulse"]').exists();
115-
assert.dom('ul.owners li').exists({ count: 4 });
116+
assert.dom('[data-test-owners] [data-test-team-link="github:org:thehydroimpulse"]').exists();
117+
assert.dom('[data-test-owners] li').exists({ count: 4 });
116118
});
117119

118120
test('crates license is supplied by version', async function(assert) {
119121
server.loadFixtures();
120122

121123
await visit('/crates/nanomsg');
122-
assert.dom('.license').hasText('Apache-2.0');
124+
assert.dom('[data-test-license]').hasText('Apache-2.0');
123125

124126
await click('#crate-versions a:contains("0.5.0")');
125-
assert.dom('.license').hasText('MIT/Apache-2.0');
127+
assert.dom('[data-test-license]').hasText('MIT/Apache-2.0');
126128
});

0 commit comments

Comments
 (0)