Skip to content

Commit 5dbedee

Browse files
authored
chore(sidenav): remove TestComponentBuilder (#1012)
1 parent b687bfb commit 5dbedee

File tree

1 file changed

+43
-105
lines changed

1 file changed

+43
-105
lines changed

src/components/sidenav/sidenav.spec.ts

Lines changed: 43 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,12 @@
1-
import {
2-
fakeAsync,
3-
async,
4-
inject,
5-
tick,
6-
TestComponentBuilder,
7-
ComponentFixture,
8-
TestBed,
9-
} from '@angular/core/testing';
10-
import {XHR} from '@angular/compiler';
11-
import {Component, ViewMetadata} from '@angular/core';
1+
import {fakeAsync, async, tick, ComponentFixture, TestBed} from '@angular/core/testing';
2+
import {Component} from '@angular/core';
123
import {By} from '@angular/platform-browser';
13-
import {MdSidenav, MdSidenavLayout, MdSidenavModule} from './sidenav';
14-
15-
16-
/**
17-
* Create a ComponentFixture from the builder. This takes a template and a style for sidenav.
18-
*/
19-
function createFixture(appType: any, builder: TestComponentBuilder,
20-
template: string, style: string): ComponentFixture<any> {
21-
let fixture: ComponentFixture<any> = null;
22-
// Remove the styles (which remove the animations/transitions).
23-
builder
24-
.overrideView(MdSidenavLayout, new ViewMetadata({
25-
template: template,
26-
styles: [style || ''],
27-
}))
28-
.createAsync(appType).then((f: ComponentFixture<any>) => {
29-
fixture = f;
30-
});
31-
tick();
32-
33-
return fixture;
34-
}
4+
import {MdSidenav, MdSidenavModule} from './sidenav';
355

366

377
function endSidenavTransition(fixture: ComponentFixture<any>) {
388
let sidenav: any = fixture.debugElement.query(By.directive(MdSidenav)).componentInstance;
39-
sidenav._onTransitionEnd({
9+
sidenav._onTransitionEnd(<any> {
4010
target: (<any>sidenav)._elementRef.nativeElement,
4111
propertyName: 'transform'
4212
});
@@ -45,10 +15,6 @@ function endSidenavTransition(fixture: ComponentFixture<any>) {
4515

4616

4717
describe('MdSidenav', () => {
48-
let template: string;
49-
let style: string;
50-
let builder: TestComponentBuilder;
51-
let xhr: XHR;
5218

5319
beforeEach(async(() => {
5420
TestBed.configureTestingModule({
@@ -57,36 +23,17 @@ describe('MdSidenav', () => {
5723
BasicTestApp,
5824
SidenavLayoutTwoSidenavTestApp,
5925
SidenavLayoutNoSidenavTestApp,
26+
SidenavSetToOpenedFalse,
27+
SidenavSetToOpenedTrue,
6028
],
6129
});
6230

6331
TestBed.compileComponents();
6432
}));
6533

66-
beforeEach(fakeAsync(inject([TestComponentBuilder, XHR], (tcb: TestComponentBuilder, x: XHR) => {
67-
builder = tcb;
68-
xhr = x;
69-
})));
70-
71-
/**
72-
* We need to get the template and styles for the sidenav in an Async test.
73-
* FakeAsync would block indefinitely on the XHR if we were to create the component async-ly.
74-
* See https://github.com/angular/angular/issues/5601.
75-
* We do some style verification so styles have to match.
76-
* But we remove the transitions so we only set the regular `sidenav.css` styling.
77-
*/
78-
beforeEach(async(() => {
79-
xhr.get('./components/sidenav/sidenav.html').then(t => {
80-
template = t;
81-
});
82-
xhr.get('./components/sidenav/sidenav.css').then(css => {
83-
style = css;
84-
});
85-
}));
86-
8734
describe('methods', () => {
8835
it('should be able to open and close', fakeAsync(() => {
89-
let fixture = createFixture(BasicTestApp, builder, template, style);
36+
let fixture = TestBed.createComponent(BasicTestApp);
9037

9138
let testComponent: BasicTestApp = fixture.debugElement.componentInstance;
9239
let openButtonElement = fixture.debugElement.query(By.css('.open'));
@@ -135,7 +82,7 @@ describe('MdSidenav', () => {
13582
}));
13683

13784
it('open/close() return a promise that resolves after animation end', fakeAsync(() => {
138-
let fixture = createFixture(BasicTestApp, builder, template, style);
85+
let fixture = TestBed.createComponent(BasicTestApp);
13986
let sidenav: MdSidenav = fixture.debugElement
14087
.query(By.directive(MdSidenav)).componentInstance;
14188
let called = false;
@@ -162,7 +109,7 @@ describe('MdSidenav', () => {
162109
}));
163110

164111
it('open/close() twice returns the same promise', fakeAsync(() => {
165-
let fixture = createFixture(BasicTestApp, builder, template, style);
112+
let fixture = TestBed.createComponent(BasicTestApp);
166113
let sidenav: MdSidenav = fixture.debugElement
167114
.query(By.directive(MdSidenav)).componentInstance;
168115

@@ -177,7 +124,7 @@ describe('MdSidenav', () => {
177124
}));
178125

179126
it('open() then close() cancel animations when called too fast', fakeAsync(() => {
180-
let fixture = createFixture(BasicTestApp, builder, template, style);
127+
let fixture = TestBed.createComponent(BasicTestApp);
181128
let sidenav: MdSidenav = fixture.debugElement
182129
.query(By.directive(MdSidenav)).componentInstance;
183130

@@ -206,7 +153,7 @@ describe('MdSidenav', () => {
206153
}));
207154

208155
it('close() then open() cancel animations when called too fast', fakeAsync(() => {
209-
let fixture = createFixture(BasicTestApp, builder, template, style);
156+
let fixture = TestBed.createComponent(BasicTestApp);
210157
let sidenav: MdSidenav = fixture.debugElement
211158
.query(By.directive(MdSidenav)).componentInstance;
212159

@@ -241,15 +188,15 @@ describe('MdSidenav', () => {
241188

242189
it('does not throw when created without a sidenav', fakeAsync(() => {
243190
expect(() => {
244-
let fixture = createFixture(SidenavLayoutNoSidenavTestApp, builder, template, style);
191+
let fixture = TestBed.createComponent(BasicTestApp);
245192
fixture.detectChanges();
246193
tick();
247194
}).not.toThrow();
248195
}));
249196

250197
it('does throw when created with two sidenav on the same side', fakeAsync(() => {
251198
expect(() => {
252-
let fixture = createFixture(SidenavLayoutTwoSidenavTestApp, builder, template, style);
199+
let fixture = TestBed.createComponent(SidenavLayoutTwoSidenavTestApp);
253200
fixture.detectChanges();
254201
tick();
255202
}).toThrow();
@@ -258,74 +205,47 @@ describe('MdSidenav', () => {
258205

259206
describe('attributes', () => {
260207

261-
it('should correctly parse opened="false"', fakeAsync(() => {
262-
let newBuilder = builder.overrideTemplate(BasicTestApp, `
263-
<md-sidenav-layout>
264-
<md-sidenav #sidenav mode="side" opened="false">
265-
Closed Sidenav.
266-
</md-sidenav>
267-
</md-sidenav-layout>`);
268-
269-
let fixture = createFixture(BasicTestApp, newBuilder, template, style);
208+
it('should correctly parse opened="false"', () => {
209+
let fixture = TestBed.createComponent(SidenavSetToOpenedFalse);
270210
fixture.detectChanges();
271211

272212
let sidenavEl = fixture.debugElement.query(By.css('md-sidenav')).nativeElement;
273213

274214
expect(sidenavEl.classList).toContain('md-sidenav-closed');
275215
expect(sidenavEl.classList).not.toContain('md-sidenav-opened');
276-
}));
277-
278-
it('should correctly parse opened="true"', fakeAsync(() => {
279-
let newBuilder = builder.overrideTemplate(BasicTestApp, `
280-
<md-sidenav-layout>
281-
<md-sidenav #sidenav mode="side" opened="true">
282-
Closed Sidenav.
283-
</md-sidenav>
284-
</md-sidenav-layout>`);
216+
});
285217

286-
let fixture = createFixture(BasicTestApp, newBuilder, template, style);
218+
it('should correctly parse opened="true"', () => {
219+
let fixture = TestBed.createComponent(SidenavSetToOpenedTrue);
287220
fixture.detectChanges();
288221

289222
let sidenavEl = fixture.debugElement.query(By.css('md-sidenav')).nativeElement;
290223

291224
expect(sidenavEl.classList).not.toContain('md-sidenav-closed');
292225
expect(sidenavEl.classList).toContain('md-sidenav-opened');
293-
}));
226+
});
294227

295228
});
296229

297230
});
298231

299232

300233
/** Test component that contains an MdSidenavLayout but no MdSidenav. */
301-
@Component({
302-
selector: 'test-app',
303-
template: `
304-
<md-sidenav-layout>
305-
</md-sidenav-layout>
306-
`,
307-
})
308-
class SidenavLayoutNoSidenavTestApp {
309-
}
310-
234+
@Component({template: `<md-sidenav-layout></md-sidenav-layout>`})
235+
class SidenavLayoutNoSidenavTestApp { }
311236

312237
/** Test component that contains an MdSidenavLayout and 2 MdSidenav on the same side. */
313238
@Component({
314-
selector: 'test-app',
315239
template: `
316240
<md-sidenav-layout>
317241
<md-sidenav> </md-sidenav>
318242
<md-sidenav> </md-sidenav>
319-
</md-sidenav-layout>
320-
`,
243+
</md-sidenav-layout>`,
321244
})
322-
class SidenavLayoutTwoSidenavTestApp {
323-
}
324-
245+
class SidenavLayoutTwoSidenavTestApp { }
325246

326247
/** Test component that contains an MdSidenavLayout and one MdSidenav. */
327248
@Component({
328-
selector: 'test-app',
329249
template: `
330250
<md-sidenav-layout>
331251
<md-sidenav #sidenav align="start"
@@ -337,8 +257,7 @@ class SidenavLayoutTwoSidenavTestApp {
337257
</md-sidenav>
338258
<button (click)="sidenav.open()" class="open"></button>
339259
<button (click)="sidenav.close()" class="close"></button>
340-
</md-sidenav-layout>
341-
`,
260+
</md-sidenav-layout>`,
342261
})
343262
class BasicTestApp {
344263
openStartCount: number = 0;
@@ -363,3 +282,22 @@ class BasicTestApp {
363282
}
364283
}
365284

285+
@Component({
286+
template: `
287+
<md-sidenav-layout>
288+
<md-sidenav #sidenav mode="side" opened="false">
289+
Closed Sidenav.
290+
</md-sidenav>
291+
</md-sidenav-layout>`,
292+
})
293+
class SidenavSetToOpenedFalse { }
294+
295+
@Component({
296+
template: `
297+
<md-sidenav-layout>
298+
<md-sidenav #sidenav mode="side" opened="true">
299+
Closed Sidenav.
300+
</md-sidenav>
301+
</md-sidenav-layout>`,
302+
})
303+
class SidenavSetToOpenedTrue { }

0 commit comments

Comments
 (0)