Skip to content

Commit 59ec209

Browse files
committed
use custom <Link> component for ember tests for consistency
We use this custom component instead of the built-in `<LinkTo>`, as that is an ember component in older versions, and a glimmer component in newer versions. Since glimmer components are, as of now, not instrumented, this leads to different test results.
1 parent 9c0969b commit 59ec209

File tree

3 files changed

+38
-2
lines changed

3 files changed

+38
-2
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<a href={{this.href}} class={{if this.isActive 'active'}} {{on 'click' this.onClick}}>
2+
{{yield}}
3+
</a>
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import Component from '@glimmer/component';
2+
import RouterService from '@ember/routing/router-service';
3+
import { inject as service } from '@ember/service';
4+
import { action } from '@ember/object';
5+
6+
interface Args {
7+
route: string;
8+
}
9+
10+
/*
11+
Note: We use this custom component instead of the built-in `<LinkTo>`,
12+
as that is an ember component in older versions, and a glimmer component in newer versions.
13+
14+
Since glimmer components are, as of now, not instrumented, this leads to different test results.
15+
*/
16+
export default class LinkComponent extends Component<Args> {
17+
@service router: RouterService;
18+
19+
get href() {
20+
return this.router.urlFor(this.args.route);
21+
}
22+
23+
get isActive() {
24+
return this.router.currentRouteName === this.args.route;
25+
}
26+
27+
@action
28+
onClick(event: MouseEvent) {
29+
event.preventDefault();
30+
31+
this.router.transitionTo(this.args.route);
32+
}
33+
}

packages/ember/tests/dummy/app/templates/application.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<h3>Sentry Instrumented Ember Application</h3>
1010
</div>
1111
<div class="nav">
12-
<LinkTo @route='index'>Errors</LinkTo>
13-
<LinkTo @route='tracing'>Tracing</LinkTo>
12+
<Link @route='index'>Errors</Link>
13+
<Link @route='tracing'>Tracing</Link>
1414
</div>
1515
<div class="content-container">
1616
{{outlet}}

0 commit comments

Comments
 (0)