Skip to content

Commit 228af67

Browse files
pkozlowski-opensourcegoderbauer
authored andcommitted
test(NgClass): remove code duplication in tests
1 parent dea3ef4 commit 228af67

File tree

1 file changed

+41
-108
lines changed

1 file changed

+41
-108
lines changed

modules/angular2/test/directives/ng_class_spec.ts

Lines changed: 41 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ import {Component, View, NgFor, bind} from 'angular2/angular2';
1818
import {NgClass} from 'angular2/src/directives/ng_class';
1919
import {APP_VIEW_POOL_CAPACITY} from 'angular2/src/core/compiler/view_pool';
2020

21+
function detectChangesAndCheck(rootTC, classes: string, elIndex: number = 0) {
22+
rootTC.detectChanges();
23+
expect(rootTC.componentViewChildren[elIndex].nativeElement.className).toEqual(classes);
24+
}
25+
2126
export function main() {
2227
describe('binding to CSS class list', () => {
2328

@@ -33,9 +38,8 @@ export function main() {
3338
rootTC.componentInstance.items = [['0']];
3439
rootTC.detectChanges();
3540
rootTC.componentInstance.items = [['1']];
36-
rootTC.detectChanges();
37-
expect(rootTC.componentViewChildren[1].nativeElement.className)
38-
.toEqual('ng-binding 1');
41+
42+
detectChangesAndCheck(rootTC, 'ng-binding 1', 1);
3943

4044
async.done();
4145
});
@@ -52,10 +56,7 @@ export function main() {
5256
tcb.overrideTemplate(TestComponent, template)
5357
.createAsync(TestComponent)
5458
.then((rootTC) => {
55-
rootTC.detectChanges();
56-
expect(rootTC.componentViewChildren[0].nativeElement.className)
57-
.toEqual('ng-binding foo');
58-
59+
detectChangesAndCheck(rootTC, 'ng-binding foo');
5960
async.done();
6061
});
6162
}));
@@ -68,10 +69,7 @@ export function main() {
6869
tcb.overrideTemplate(TestComponent, template)
6970
.createAsync(TestComponent)
7071
.then((rootTC) => {
71-
rootTC.detectChanges();
72-
expect(rootTC.componentViewChildren[0].nativeElement.className)
73-
.toEqual('ng-binding foo-bar fooBar');
74-
72+
detectChangesAndCheck(rootTC, 'ng-binding foo-bar fooBar');
7573
async.done();
7674
});
7775
}));
@@ -83,14 +81,10 @@ export function main() {
8381
tcb.overrideTemplate(TestComponent, template)
8482
.createAsync(TestComponent)
8583
.then((rootTC) => {
86-
rootTC.detectChanges();
87-
expect(rootTC.componentViewChildren[0].nativeElement.className)
88-
.toEqual('ng-binding foo');
84+
detectChangesAndCheck(rootTC, 'ng-binding foo');
8985

9086
rootTC.componentInstance.condition = false;
91-
rootTC.detectChanges();
92-
expect(rootTC.componentViewChildren[0].nativeElement.className)
93-
.toEqual('ng-binding bar');
87+
detectChangesAndCheck(rootTC, 'ng-binding bar');
9488

9589
async.done();
9690
});
@@ -103,24 +97,16 @@ export function main() {
10397
tcb.overrideTemplate(TestComponent, template)
10498
.createAsync(TestComponent)
10599
.then((rootTC) => {
106-
rootTC.detectChanges();
107-
expect(rootTC.componentViewChildren[0].nativeElement.className)
108-
.toEqual('ng-binding foo');
100+
detectChangesAndCheck(rootTC, 'ng-binding foo');
109101

110102
StringMapWrapper.set(rootTC.componentInstance.objExpr, 'bar', true);
111-
rootTC.detectChanges();
112-
expect(rootTC.componentViewChildren[0].nativeElement.className)
113-
.toEqual('ng-binding foo bar');
103+
detectChangesAndCheck(rootTC, 'ng-binding foo bar');
114104

115105
StringMapWrapper.set(rootTC.componentInstance.objExpr, 'baz', true);
116-
rootTC.detectChanges();
117-
expect(rootTC.componentViewChildren[0].nativeElement.className)
118-
.toEqual('ng-binding foo bar baz');
106+
detectChangesAndCheck(rootTC, 'ng-binding foo bar baz');
119107

120108
StringMapWrapper.delete(rootTC.componentInstance.objExpr, 'bar');
121-
rootTC.detectChanges();
122-
expect(rootTC.componentViewChildren[0].nativeElement.className)
123-
.toEqual('ng-binding foo baz');
109+
detectChangesAndCheck(rootTC, 'ng-binding foo baz');
124110

125111
async.done();
126112
});
@@ -133,19 +119,13 @@ export function main() {
133119
tcb.overrideTemplate(TestComponent, template)
134120
.createAsync(TestComponent)
135121
.then((rootTC) => {
136-
rootTC.detectChanges();
137-
expect(rootTC.componentViewChildren[0].nativeElement.className)
138-
.toEqual('ng-binding foo');
122+
detectChangesAndCheck(rootTC, 'ng-binding foo');
139123

140124
rootTC.componentInstance.objExpr = {foo: true, bar: true};
141-
rootTC.detectChanges();
142-
expect(rootTC.componentViewChildren[0].nativeElement.className)
143-
.toEqual('ng-binding foo bar');
125+
detectChangesAndCheck(rootTC, 'ng-binding foo bar');
144126

145127
rootTC.componentInstance.objExpr = {baz: true};
146-
rootTC.detectChanges();
147-
expect(rootTC.componentViewChildren[0].nativeElement.className)
148-
.toEqual('ng-binding baz');
128+
detectChangesAndCheck(rootTC, 'ng-binding baz');
149129

150130
async.done();
151131
});
@@ -161,10 +141,7 @@ export function main() {
161141
tcb.overrideTemplate(TestComponent, template)
162142
.createAsync(TestComponent)
163143
.then((rootTC) => {
164-
rootTC.detectChanges();
165-
expect(rootTC.componentViewChildren[0].nativeElement.className)
166-
.toEqual('ng-binding foo bar foo-bar fooBar');
167-
144+
detectChangesAndCheck(rootTC, 'ng-binding foo bar foo-bar fooBar');
168145
async.done();
169146
});
170147
}));
@@ -176,27 +153,17 @@ export function main() {
176153
tcb.overrideTemplate(TestComponent, template)
177154
.createAsync(TestComponent)
178155
.then((rootTC) => {
179-
180156
var arrExpr: List<string> = rootTC.componentInstance.arrExpr;
181-
182-
rootTC.detectChanges();
183-
expect(rootTC.componentViewChildren[0].nativeElement.className)
184-
.toEqual('ng-binding foo');
157+
detectChangesAndCheck(rootTC, 'ng-binding foo');
185158

186159
arrExpr.push('bar');
187-
rootTC.detectChanges();
188-
expect(rootTC.componentViewChildren[0].nativeElement.className)
189-
.toEqual('ng-binding foo bar');
160+
detectChangesAndCheck(rootTC, 'ng-binding foo bar');
190161

191162
arrExpr[1] = 'baz';
192-
rootTC.detectChanges();
193-
expect(rootTC.componentViewChildren[0].nativeElement.className)
194-
.toEqual('ng-binding foo baz');
163+
detectChangesAndCheck(rootTC, 'ng-binding foo baz');
195164

196165
ListWrapper.remove(rootTC.componentInstance.arrExpr, 'baz');
197-
rootTC.detectChanges();
198-
expect(rootTC.componentViewChildren[0].nativeElement.className)
199-
.toEqual('ng-binding foo');
166+
detectChangesAndCheck(rootTC, 'ng-binding foo');
200167

201168
async.done();
202169
});
@@ -209,14 +176,10 @@ export function main() {
209176
tcb.overrideTemplate(TestComponent, template)
210177
.createAsync(TestComponent)
211178
.then((rootTC) => {
212-
rootTC.detectChanges();
213-
expect(rootTC.componentViewChildren[0].nativeElement.className)
214-
.toEqual('ng-binding foo');
179+
detectChangesAndCheck(rootTC, 'ng-binding foo');
215180

216181
rootTC.componentInstance.arrExpr = ['bar'];
217-
rootTC.detectChanges();
218-
expect(rootTC.componentViewChildren[0].nativeElement.className)
219-
.toEqual('ng-binding bar');
182+
detectChangesAndCheck(rootTC, 'ng-binding bar');
220183

221184
async.done();
222185
});
@@ -232,10 +195,7 @@ export function main() {
232195
tcb.overrideTemplate(TestComponent, template)
233196
.createAsync(TestComponent)
234197
.then((rootTC) => {
235-
rootTC.detectChanges();
236-
expect(rootTC.componentViewChildren[0].nativeElement.className)
237-
.toEqual('ng-binding foo bar foo-bar fooBar');
238-
198+
detectChangesAndCheck(rootTC, 'ng-binding foo bar foo-bar fooBar');
239199
async.done();
240200
});
241201
}));
@@ -247,19 +207,14 @@ export function main() {
247207
tcb.overrideTemplate(TestComponent, template)
248208
.createAsync(TestComponent)
249209
.then((rootTC) => {
250-
rootTC.detectChanges();
251-
expect(rootTC.componentViewChildren[0].nativeElement.className)
252-
.toEqual('ng-binding foo');
210+
detectChangesAndCheck(rootTC, 'ng-binding foo');
253211

254212
rootTC.componentInstance.strExpr = 'foo bar';
255-
rootTC.detectChanges();
256-
expect(rootTC.componentViewChildren[0].nativeElement.className)
257-
.toEqual('ng-binding foo bar');
213+
detectChangesAndCheck(rootTC, 'ng-binding foo bar');
214+
258215

259216
rootTC.componentInstance.strExpr = 'baz';
260-
rootTC.detectChanges();
261-
expect(rootTC.componentViewChildren[0].nativeElement.className)
262-
.toEqual('ng-binding baz');
217+
detectChangesAndCheck(rootTC, 'ng-binding baz');
263218

264219
async.done();
265220
});
@@ -273,14 +228,10 @@ export function main() {
273228
tcb.overrideTemplate(TestComponent, template)
274229
.createAsync(TestComponent)
275230
.then((rootTC) => {
276-
rootTC.detectChanges();
277-
expect(rootTC.componentViewChildren[0].nativeElement.className)
278-
.toEqual('ng-binding foo');
231+
detectChangesAndCheck(rootTC, 'ng-binding foo');
279232

280233
rootTC.componentInstance.strExpr = null;
281-
rootTC.detectChanges();
282-
expect(rootTC.componentViewChildren[0].nativeElement.className)
283-
.toEqual('ng-binding');
234+
detectChangesAndCheck(rootTC, 'ng-binding');
284235

285236
async.done();
286237
});
@@ -294,19 +245,13 @@ export function main() {
294245
tcb.overrideTemplate(TestComponent, template)
295246
.createAsync(TestComponent)
296247
.then((rootTC) => {
297-
rootTC.detectChanges();
298-
expect(rootTC.componentViewChildren[0].nativeElement.className)
299-
.toEqual('ng-binding foo');
248+
detectChangesAndCheck(rootTC, 'ng-binding foo');
300249

301250
rootTC.componentInstance.objExpr = null;
302-
rootTC.detectChanges();
303-
expect(rootTC.componentViewChildren[0].nativeElement.className)
304-
.toEqual('ng-binding');
251+
detectChangesAndCheck(rootTC, 'ng-binding');
305252

306253
rootTC.componentInstance.objExpr = {'foo': false, 'bar': true};
307-
rootTC.detectChanges();
308-
expect(rootTC.componentViewChildren[0].nativeElement.className)
309-
.toEqual('ng-binding bar');
254+
detectChangesAndCheck(rootTC, 'ng-binding bar');
310255

311256
async.done();
312257
});
@@ -320,14 +265,10 @@ export function main() {
320265
.createAsync(TestComponent)
321266
.then((rootTC) => {
322267
StringMapWrapper.set(rootTC.componentInstance.objExpr, 'bar', true);
323-
rootTC.detectChanges();
324-
expect(rootTC.componentViewChildren[0].nativeElement.className)
325-
.toEqual('init foo ng-binding bar');
268+
detectChangesAndCheck(rootTC, 'init foo ng-binding bar');
326269

327270
StringMapWrapper.set(rootTC.componentInstance.objExpr, 'foo', false);
328-
rootTC.detectChanges();
329-
expect(rootTC.componentViewChildren[0].nativeElement.className)
330-
.toEqual('init ng-binding bar');
271+
detectChangesAndCheck(rootTC, 'init ng-binding bar');
331272

332273
async.done();
333274
});
@@ -340,24 +281,16 @@ export function main() {
340281
tcb.overrideTemplate(TestComponent, template)
341282
.createAsync(TestComponent)
342283
.then((rootTC) => {
343-
rootTC.detectChanges();
344-
expect(rootTC.componentViewChildren[0].nativeElement.className)
345-
.toEqual('init foo ng-binding baz');
284+
detectChangesAndCheck(rootTC, 'init foo ng-binding baz');
346285

347286
StringMapWrapper.set(rootTC.componentInstance.objExpr, 'bar', true);
348-
rootTC.detectChanges();
349-
expect(rootTC.componentViewChildren[0].nativeElement.className)
350-
.toEqual('init foo ng-binding baz bar');
287+
detectChangesAndCheck(rootTC, 'init foo ng-binding baz bar');
351288

352289
StringMapWrapper.set(rootTC.componentInstance.objExpr, 'foo', false);
353-
rootTC.detectChanges();
354-
expect(rootTC.componentViewChildren[0].nativeElement.className)
355-
.toEqual('init ng-binding baz bar');
290+
detectChangesAndCheck(rootTC, 'init ng-binding baz bar');
356291

357292
rootTC.componentInstance.condition = false;
358-
rootTC.detectChanges();
359-
expect(rootTC.componentViewChildren[0].nativeElement.className)
360-
.toEqual('init ng-binding bar');
293+
detectChangesAndCheck(rootTC, 'init ng-binding bar');
361294

362295
async.done();
363296
});

0 commit comments

Comments
 (0)