Skip to content

Commit 47f51e0

Browse files
heroes: tidy up HeroComponent and spec
1 parent 863c1d4 commit 47f51e0

3 files changed

Lines changed: 11 additions & 6 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
<span class="badge">{{hero.id}}</span>
22
<span>{{hero.name}}</span>
3-
<button class="delete" (click)="onDelete()">x</button>
3+
<button class="delete" (click)="onDeleteClick($event)">x</button>

tour-of-heroes/src/app/hero.component/hero.component.spec.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { Hero } from '../shared/hero';
77
@Component({ selector: 'app-test', template: `<app-hero [hero]="hero" (delete)="onDelete($event)"></app-hero>`})
88
class TestContainerComponent {
99
hero: Hero;
10-
onDelete = jasmine.createSpy('onDelete');
10+
onDeleteClick = jasmine.createSpy('onDelete');
1111
}
1212

1313
describe('HeroComponent', () => {
@@ -32,9 +32,13 @@ describe('HeroComponent', () => {
3232
fixture.detectChanges();
3333

3434
const button = fixture.debugElement.query(By.css('button'));
35-
button.triggerEventHandler('click', null);
35+
button.triggerEventHandler('click', { stopPropagation: jasmine.createSpy('stopPropagation') });
3636
fixture.detectChanges();
3737

38-
expect(fixture.componentInstance.onDelete).toHaveBeenCalledWith(fixture.componentInstance.hero);
38+
const deleteClickSpy = fixture.componentInstance.onDeleteClick;
39+
expect(deleteClickSpy).toHaveBeenCalled();
40+
41+
const clickEvent = deleteClickSpy.mostRecentCall.args[0];
42+
expect(clickEvent.stopPropagation).toHaveBeenCalled();
3943
});
4044
});

tour-of-heroes/src/app/hero.component/hero.component.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export class HeroComponent {
1010
@Input() hero: Hero;
1111
@Output() delete = new EventEmitter();
1212

13-
onDelete(): void {
14-
this.delete.next(this.hero);
13+
onDeleteClick($event): void {
14+
$event.stopPropagation();
15+
this.delete.next();
1516
}
1617
}

0 commit comments

Comments
 (0)