1+ import { ChangeDetectorRef } from '@angular/core' ;
12import { ComponentFixture , TestBed } from '@angular/core/testing' ;
23
34import { configureTestSuite } from './../../../util-test/util-expect.spec' ;
@@ -7,6 +8,7 @@ import { PoFieldContainerBottomComponent } from './../po-field-container/po-fiel
78import { PoFieldContainerComponent } from '../po-field-container/po-field-container.component' ;
89
910describe ( 'PoCheckboxGroupComponent:' , ( ) => {
11+ let changeDetector : any ;
1012 let component : PoCheckboxGroupComponent ;
1113 let fixture : ComponentFixture < PoCheckboxGroupComponent > ;
1214 let nativeElement : any ;
@@ -41,7 +43,8 @@ describe('PoCheckboxGroupComponent:', () => {
4143 { value : '2' , label : '2' , disabled : true }
4244 ] ;
4345
44- fixture . detectChanges ( ) ;
46+ changeDetector = fixture . componentRef . injector . get ( ChangeDetectorRef ) ;
47+ changeDetector . detectChanges ( ) ;
4548
4649 nativeElement = fixture . debugElement . nativeElement ;
4750 } ) ;
@@ -60,7 +63,7 @@ describe('PoCheckboxGroupComponent:', () => {
6063
6164 it ( 'should be required' , ( ) => {
6265 component . required = true ;
63- fixture . detectChanges ( ) ;
66+ changeDetector . detectChanges ( ) ;
6467 expect ( nativeElement . querySelector ( '.po-field-optional' ) ) . toBeFalsy ( ) ;
6568 } ) ;
6669
@@ -80,14 +83,14 @@ describe('PoCheckboxGroupComponent:', () => {
8083
8184 it ( 'should toggle checkbox option value 1' , ( ) => {
8285 component . checkOption ( component . options [ 0 ] ) ;
83- fixture . detectChanges ( ) ;
86+ changeDetector . detectChanges ( ) ;
8487
8588 expect ( nativeElement . querySelector ( '.po-checkbox-group-input-checked+label' ) . innerHTML ) . toContain ( '1' ) ;
8689 expect ( component . checkedOptions ) . toEqual ( { 1 : true } ) ;
8790 expect ( component . checkedOptionsList ) . toEqual ( [ '1' ] ) ;
8891
8992 component . checkOption ( component . options [ 0 ] ) ;
90- fixture . detectChanges ( ) ;
93+ changeDetector . detectChanges ( ) ;
9194
9295 expect ( nativeElement . querySelector ( '.po-checkbox-group-input-checked' ) ) . toBeFalsy ( ) ;
9396 expect ( component . checkedOptions ) . toEqual ( { 1 : false } ) ;
@@ -98,7 +101,7 @@ describe('PoCheckboxGroupComponent:', () => {
98101 component . checkedOptions = { 1 : null } ;
99102 component . indeterminate = true ;
100103
101- fixture . detectChanges ( ) ;
104+ changeDetector . detectChanges ( ) ;
102105
103106 expect ( nativeElement . querySelector ( '.po-checkbox-group-input-indeterminate+label' ) . innerHTML ) . toContain ( '1' ) ;
104107 } ) ;
@@ -108,7 +111,7 @@ describe('PoCheckboxGroupComponent:', () => {
108111 it ( 'focus: should call `focus` of checkbox' , ( ) => {
109112 component . options = [ { label : 'teste1' , value : 'teste1' } , { label : 'teste2' , value : 'teste2' } ] ;
110113
111- fixture . detectChanges ( ) ;
114+ changeDetector . detectChanges ( ) ;
112115
113116 spyOn ( component . checkboxLabels . toArray ( ) [ 0 ] . nativeElement , 'focus' ) ;
114117
@@ -120,7 +123,7 @@ describe('PoCheckboxGroupComponent:', () => {
120123 it ( 'focus: should`t call `focus` of checkbox if option is `disabled`' , ( ) => {
121124 component . options = [ { label : 'teste1' , value : 'teste1' , disabled : true } , { label : 'teste2' , value : 'teste2' } ] ;
122125
123- fixture . detectChanges ( ) ;
126+ changeDetector . detectChanges ( ) ;
124127
125128 spyOn ( component . checkboxLabels . toArray ( ) [ 0 ] . nativeElement , 'focus' ) ;
126129 spyOn ( component . checkboxLabels . toArray ( ) [ 1 ] . nativeElement , 'focus' ) ;
@@ -135,7 +138,7 @@ describe('PoCheckboxGroupComponent:', () => {
135138 component . options = [ { label : 'teste1' , value : 'teste1' , disabled : true } , { label : 'teste2' , value : 'teste2' } ] ;
136139 component . disabled = true ;
137140
138- fixture . detectChanges ( ) ;
141+ changeDetector . detectChanges ( ) ;
139142
140143 spyOn ( component . checkboxLabels . toArray ( ) [ 0 ] . nativeElement , 'focus' ) ;
141144 spyOn ( component . checkboxLabels . toArray ( ) [ 1 ] . nativeElement , 'focus' ) ;
@@ -146,6 +149,11 @@ describe('PoCheckboxGroupComponent:', () => {
146149 expect ( component . checkboxLabels . toArray ( ) [ 1 ] . nativeElement . focus ) . not . toHaveBeenCalled ( ) ;
147150 } ) ;
148151
152+ it ( 'trackByFn: should return index' , ( ) => {
153+ const index = 1 ;
154+ expect ( component . trackByFn ( index ) ) . toBe ( index ) ;
155+ } ) ;
156+
149157 describe ( 'onKeyDown:' , ( ) => {
150158 let option ;
151159 let fakeEvent : any ;
@@ -204,40 +212,53 @@ describe('PoCheckboxGroupComponent:', () => {
204212
205213 it ( 'should set tabindex to -1 when checkbox-group is disabled' , ( ) => {
206214 component . disabled = true ;
207- fixture . detectChanges ( ) ;
215+ changeDetector . detectChanges ( ) ;
208216
209217 expect ( nativeElement . querySelector ( 'label.po-checkbox-group-label[tabindex="-1"]' ) ) . toBeTruthy ( ) ;
210218 } ) ;
211219
212220 it ( 'should set tabindex to 0 when checkbox-group disabled is false' , ( ) => {
213221 component . disabled = false ;
214- fixture . detectChanges ( ) ;
222+ changeDetector . detectChanges ( ) ;
215223
216224 expect ( nativeElement . querySelector ( 'label.po-checkbox-group-label[tabindex="0"]' ) ) . toBeTruthy ( ) ;
217225 } ) ;
218226
219227 it ( 'should set tabindex to -1 when option disabled is true' , ( ) => {
220228 component . options = [ { label : 'teste' , value : 'teste' , disabled : true } ] ;
221- fixture . detectChanges ( ) ;
229+ changeDetector . detectChanges ( ) ;
222230
223231 expect ( nativeElement . querySelector ( 'label.po-checkbox-group-label[tabindex="-1"]' ) ) . toBeTruthy ( ) ;
224232 } ) ;
225233
226234 it ( 'should set tabindex to 0 when option disabled not exists' , ( ) => {
227235 component . options = [ { label : 'teste' , value : 'teste' } ] ;
228- fixture . detectChanges ( ) ;
236+ changeDetector . detectChanges ( ) ;
229237
230238 expect ( nativeElement . querySelector ( 'label.po-checkbox-group-label[tabindex="0"]' ) ) . toBeTruthy ( ) ;
231239 } ) ;
232240
233- it ( 'should set `po-clickable` class if `tabIndex` is equal 0.' , ( ) => {
241+ it ( 'should set `po-clickable` class if `disabled` and `options.disabled` are false.' , ( ) => {
242+ component . options = [
243+ { value : '1' , label : '1' } ,
244+ { value : '2' , label : '2' , disabled : true }
245+ ] ;
246+ component . disabled = false ;
247+
248+ changeDetector . detectChanges ( ) ;
249+
234250 expect ( nativeElement . querySelectorAll ( 'label.po-checkbox-group-label.po-clickable' ) [ 0 ] ) . toBeTruthy ( ) ;
235251 expect ( nativeElement . querySelectorAll ( 'label.po-checkbox-group-label.po-clickable' ) [ 1 ] ) . toBeFalsy ( ) ;
236252 } ) ;
237253
238- it ( 'shouldn`t set `po-clickable` class if `tabIndex` is equal -1.' , ( ) => {
254+ it ( 'shouldn`t set `po-clickable` class if `disabled` is true.' , ( ) => {
255+ component . options = [
256+ { value : '1' , label : '1' } ,
257+ { value : '2' , label : '2' }
258+ ] ;
239259 component . disabled = true ;
240- fixture . detectChanges ( ) ;
260+
261+ changeDetector . detectChanges ( ) ;
241262
242263 expect ( nativeElement . querySelectorAll ( 'label.po-checkbox-group-label.po-clickable' ) [ 0 ] ) . toBeFalsy ( ) ;
243264 expect ( nativeElement . querySelectorAll ( 'label.po-checkbox-group-label.po-clickable' ) [ 1 ] ) . toBeFalsy ( ) ;
@@ -248,7 +269,7 @@ describe('PoCheckboxGroupComponent:', () => {
248269 component . optional = true ;
249270 component . label = 'label' ;
250271
251- fixture . detectChanges ( ) ;
272+ changeDetector . detectChanges ( ) ;
252273
253274 expect ( fixture . debugElement . nativeElement . querySelector ( '.po-field-optional' ) ) . toBeTruthy ( ) ;
254275 } ) ;
@@ -258,7 +279,7 @@ describe('PoCheckboxGroupComponent:', () => {
258279 component . optional = true ;
259280 component . label = 'label' ;
260281
261- fixture . detectChanges ( ) ;
282+ changeDetector . detectChanges ( ) ;
262283
263284 expect ( fixture . debugElement . nativeElement . querySelector ( '.po-field-optional' ) ) . toBeNull ( ) ;
264285 } ) ;
@@ -268,7 +289,7 @@ describe('PoCheckboxGroupComponent:', () => {
268289 component . optional = false ;
269290 component . label = 'label' ;
270291
271- fixture . detectChanges ( ) ;
292+ changeDetector . detectChanges ( ) ;
272293
273294 expect ( fixture . debugElement . nativeElement . querySelector ( '.po-field-optional' ) ) . toBeNull ( ) ;
274295 } ) ;
0 commit comments