From 2a14197f4322cd10d7f7e261d8b29296663449bc Mon Sep 17 00:00:00 2001 From: Jeremy Elbourn Date: Fri, 8 Jan 2016 12:12:08 -0800 Subject: [PATCH 1/2] test(button): use better API for getting DebugElement. --- src/components/button/button.spec.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/components/button/button.spec.ts b/src/components/button/button.spec.ts index ea46e162b080..5da0e8a1d916 100644 --- a/src/components/button/button.spec.ts +++ b/src/components/button/button.spec.ts @@ -11,10 +11,11 @@ import { beforeEach, } from 'angular2/testing'; import {provide, Component} from 'angular2/core'; -import {DebugElement} from "angular2/core"; +import {DebugElement} from 'angular2/core'; +import {By} from 'angular2/platform/browser'; import {MdButton} from './button'; -import {AsyncTestFn} from "angular2/testing"; +import {AsyncTestFn, FunctionWithParamTokens} from "angular2/testing"; describe('MdButton', () => { @@ -26,7 +27,7 @@ describe('MdButton', () => { it('should handle a click on the button', (done: () => void) => { return builder.createAsync(TestApp).then((fixture) => { let testComponent = fixture.debugElement.componentInstance; - let buttonDebugElement = getChildDebugElement(fixture.debugElement, 'button'); + let buttonDebugElement = fixture.debugElement.query(By.css('button')); buttonDebugElement.nativeElement.click(); expect(testComponent.clickCount).toBe(1); @@ -37,9 +38,10 @@ describe('MdButton', () => { }); }); -/** Gets a child DebugElement by tag name. */ -function getChildDebugElement(parent: DebugElement, tagName: string): DebugElement { - return parent.query(debugEl => debugEl.nativeElement.tagName.toLowerCase() == tagName); + +/** Shortcut function to use instead of `injectAsync` for less boilerplate on each `it`. */ +function testAsync(fn: Function): FunctionWithParamTokens { + return injectAsync([], fn); } /** Test component that contains an MdButton. */ From 6fb44b373124f87533ead0681245f51f9e33644e Mon Sep 17 00:00:00 2001 From: Jeremy Elbourn Date: Fri, 8 Jan 2016 12:22:37 -0800 Subject: [PATCH 2/2] change test syntax --- src/components/button/button.spec.ts | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/components/button/button.spec.ts b/src/components/button/button.spec.ts index 5da0e8a1d916..b33a33570d11 100644 --- a/src/components/button/button.spec.ts +++ b/src/components/button/button.spec.ts @@ -24,16 +24,27 @@ describe('MdButton', () => { beforeEach(inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { builder = tcb; })); describe('button[md-button]', () => { - it('should handle a click on the button', (done: () => void) => { + //it('should handle a click on the button', (done: () => void) => { + // return builder.createAsync(TestApp).then((fixture) => { + // let testComponent = fixture.debugElement.componentInstance; + // let buttonDebugElement = fixture.debugElement.query(By.css('button')); + // + // buttonDebugElement.nativeElement.click(); + // expect(testComponent.clickCount).toBe(1); + // done(); + // }); + //}); + + it('should handle a click on the button', testAsync(() => { return builder.createAsync(TestApp).then((fixture) => { + expect(1).toBe(2); let testComponent = fixture.debugElement.componentInstance; let buttonDebugElement = fixture.debugElement.query(By.css('button')); buttonDebugElement.nativeElement.click(); expect(testComponent.clickCount).toBe(1); - done(); }); - }); + })); }); });