@@ -23,7 +23,6 @@ import { FormModel } from '../core/form.model';
2323import { HarnessLoader } from '@angular/cdk/testing' ;
2424import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed' ;
2525import { UnitTestingUtils } from '../../../../testing/unit-testing-utils' ;
26- import { of } from 'rxjs' ;
2726
2827describe ( 'AmountWidgetComponent' , ( ) => {
2928 let loader : HarnessLoader ;
@@ -77,137 +76,6 @@ describe('AmountWidgetComponent', () => {
7776 expect ( widget . placeholder ) . toBe ( '1234' ) ;
7877 } ) ;
7978
80- it ( 'it should return locale based on browser' , ( ) => {
81- const returnedLanguages : string [ ] = [ 'en-GB' , 'en-US' , 'en' , 'de-DE' , 'pl' ] ;
82- const mockLanguages = spyOnProperty ( window , 'navigator' ) . and . returnValue ( {
83- languages : returnedLanguages
84- } as any ) ;
85- const locale = widget . getLocale ( ) ;
86-
87- expect ( locale ) . toBe ( returnedLanguages [ 0 ] ) ;
88- expect ( mockLanguages ) . toHaveBeenCalled ( ) ;
89- } ) ;
90-
91- it ( 'it should return default locale if browser does not return valid value' , ( ) => {
92- const defaultLocale = 'en-US' ;
93- spyOnProperty ( window , 'navigator' ) . and . returnValue ( {
94- languages : undefined
95- } as any ) ;
96- const locale = widget . getLocale ( ) ;
97-
98- expect ( locale ) . toBe ( defaultLocale ) ;
99- } ) ;
100-
101- it ( 'should set initial values when enableDisplayBasedOnLocale is enabled' , ( ) => {
102- const returnedLanguages : string [ ] = [ 'en-GB' ] ;
103- spyOnProperty ( window , 'navigator' ) . and . returnValue ( {
104- languages : returnedLanguages
105- } as any ) ;
106- widget . field = new FormFieldModel ( null , { id : 1 , name : 'test' , value : 25 , currency : 'USD' } ) ;
107- widget . enableDisplayBasedOnLocale = true ;
108- widget . currency = 'USD' ;
109- widget . setInitialValues ( ) ;
110-
111- expect ( widget . amountWidgetValue ) . toBe ( '$25' ) ;
112- expect ( widget . decimalProperty ) . toBe ( '1.0-0' ) ;
113- expect ( widget . locale ) . toBe ( returnedLanguages [ 0 ] ) ;
114- expect ( widget . valueAsNumber ) . toBe ( 25 ) ;
115- } ) ;
116-
117- it ( 'should set initial values with correct currency' , ( ) => {
118- const returnedLanguages : string [ ] = [ 'en-GB' ] ;
119- spyOnProperty ( window , 'navigator' ) . and . returnValue ( {
120- languages : returnedLanguages
121- } as any ) ;
122- widget . field = new FormFieldModel ( null , { id : 2 , name : 'test' , value : 25 , currency : 'GBP' } ) ;
123- widget . enableDisplayBasedOnLocale = true ;
124- widget . currency = 'GBP' ;
125- widget . setInitialValues ( ) ;
126-
127- expect ( widget . amountWidgetValue ) . toBe ( '£25' ) ;
128- expect ( widget . decimalProperty ) . toBe ( '1.0-0' ) ;
129- } ) ;
130-
131- it ( 'should set initial values with correct currency icon' , ( ) => {
132- const returnedLanguages : string [ ] = [ 'en-GB' ] ;
133- spyOnProperty ( window , 'navigator' ) . and . returnValue ( {
134- languages : returnedLanguages
135- } as any ) ;
136- widget . field = new FormFieldModel ( null , { id : 2 , name : 'test' , value : 25 , currency : '¥' } ) ;
137- widget . enableDisplayBasedOnLocale = true ;
138- widget . currency = '¥' ;
139- widget . setInitialValues ( ) ;
140-
141- expect ( widget . amountWidgetValue ) . toBe ( '¥25' ) ;
142- expect ( widget . decimalProperty ) . toBe ( '1.0-0' ) ;
143- } ) ;
144-
145- it ( 'should set initial values without currency' , ( ) => {
146- const returnedLanguages : string [ ] = [ 'en-GB' ] ;
147- spyOnProperty ( window , 'navigator' ) . and . returnValue ( {
148- languages : returnedLanguages
149- } as any ) ;
150- widget . field = new FormFieldModel ( null , { id : 3 , name : 'test' , value : 25 , currency : '' } ) ;
151- widget . enableDisplayBasedOnLocale = true ;
152- widget . currency = '' ;
153- widget . currencyDisplay = '' ;
154- widget . setInitialValues ( ) ;
155-
156- expect ( widget . amountWidgetValue ) . toBe ( '25' ) ;
157- expect ( widget . decimalProperty ) . toBe ( '1.0-0' ) ;
158- } ) ;
159-
160- it ( 'should set initial values when enableDisplayBasedOnLocale is disabled' , ( ) => {
161- widget . field = new FormFieldModel ( null , { id : 4 , name : 'test' , value : 25 , enableFractions : false , className : '' } ) ;
162- widget . enableDisplayBasedOnLocale = false ;
163- widget . setInitialValues ( ) ;
164-
165- expect ( widget . amountWidgetValue . toString ( ) ) . toBe ( '25' ) ;
166- } ) ;
167-
168- it ( 'should transform value from number to string' , ( ) => {
169- widget . enableDisplayBasedOnLocale = true ;
170- widget . valueAsNumber = 123456 ;
171- widget . amountWidgetOnFocus ( ) ;
172- expect ( widget . amountWidgetValue ) . toBe ( '123456' ) ;
173-
174- widget . valueAsNumber = 123456.11 ;
175- widget . amountWidgetOnFocus ( ) ;
176- expect ( widget . amountWidgetValue ) . toBe ( '123456.11' ) ;
177-
178- widget . valueAsNumber = 0 ;
179- widget . amountWidgetOnFocus ( ) ;
180- expect ( widget . amountWidgetValue ) . toBe ( '0' ) ;
181-
182- widget . valueAsNumber = undefined ;
183- widget . amountWidgetOnFocus ( ) ;
184- expect ( widget . amountWidgetValue ) . toBe ( null ) ;
185- } ) ;
186-
187- it ( 'should update field.value on change' , ( ) => {
188- widget . field = new FormFieldModel ( null , { id : 5 , name : 'test' , value : 25 } ) ;
189- const mockValue = '1234.12' ;
190- widget . amountWidgetValue = mockValue ;
191- widget . onFieldChangedAmountWidget ( ) ;
192-
193- expect ( widget . field . value ) . toBe ( mockValue ) ;
194- } ) ;
195-
196- it ( 'should transform values on blur' , ( ) => {
197- widget . enableDisplayBasedOnLocale = true ;
198- widget . amountWidgetValue = '1234.56' ;
199- widget . amountWidgetOnBlur ( ) ;
200-
201- expect ( widget . valueAsNumber ) . toBe ( 1234.56 ) ;
202- expect ( widget . amountWidgetValue ) . toBe ( '$1,234.56' ) ;
203-
204- widget . amountWidgetValue = '' ;
205- widget . amountWidgetOnBlur ( ) ;
206-
207- expect ( widget . valueAsNumber ) . toBe ( null ) ;
208- expect ( widget . amountWidgetValue ) . toBe ( null ) ;
209- } ) ;
210-
21179 describe ( 'when tooltip is set' , ( ) => {
21280 beforeEach ( ( ) => {
21381 widget . field = new FormFieldModel ( new FormModel ( { taskId : '<id>' } ) , {
@@ -459,189 +327,6 @@ describe('AmountWidgetComponent - rendering', () => {
459327 expect ( asterisk . textContent ) . toEqual ( '*' ) ;
460328 } ) ;
461329 } ) ;
462-
463- describe ( 'Test widget with different setting for enableDisplayBasedOnLocale' , ( ) => {
464- beforeEach ( ( ) => {
465- TestBed . resetTestingModule ( ) ;
466- } ) ;
467-
468- describe ( 'set module for enableDisplayBasedOnLocale = true' , ( ) => {
469- const mockField = new FormFieldModel ( new FormModel ( ) , {
470- id : 'TestAmount1' ,
471- name : 'Test Amount' ,
472- type : 'amount' ,
473- currency : 'USD' ,
474- enableFractions : true ,
475- value : '1234.55'
476- } ) ;
477- beforeEach ( async ( ) => {
478- TestBed . configureTestingModule ( {
479- imports : [ AmountWidgetComponent ] ,
480- providers : [ { provide : ADF_AMOUNT_SETTINGS , useValue : { enableDisplayBasedOnLocale : true } } ]
481- } ) ;
482- fixture = TestBed . createComponent ( AmountWidgetComponent ) ;
483- widget = fixture . componentInstance ;
484-
485- fixture . componentRef . setInput ( 'field' , mockField ) ;
486- loader = TestbedHarnessEnvironment . loader ( fixture ) ;
487- testingUtils = new UnitTestingUtils ( fixture . debugElement , loader ) ;
488- fixture . detectChanges ( ) ;
489- } ) ;
490-
491- it ( 'should not display prefix with currency when enableDisplayBasedOnLocale = true' , async ( ) => {
492- const field = await testingUtils . getMatFormField ( ) ;
493- expect ( await field . getPrefixText ( ) ) . toBe ( '' ) ;
494- } ) ;
495-
496- it ( 'should call method on focus and change input value' , async ( ) => {
497- const focusSpy = spyOn ( widget , 'amountWidgetOnFocus' ) . and . callThrough ( ) ;
498- fixture . detectChanges ( ) ;
499-
500- const field = await testingUtils . getMatInput ( ) ;
501- const fieldValueBeforeFocus = await field . getValue ( ) ;
502- await field . focus ( ) ;
503- const fieldValue = await field . getValue ( ) ;
504-
505- expect ( field ) . toBeDefined ( ) ;
506- expect ( widget . field . value ) . toBe ( '1234.55' ) ;
507- expect ( fieldValueBeforeFocus ) . toBe ( '$1,234.55' ) ;
508- expect ( focusSpy ) . toHaveBeenCalled ( ) ;
509- expect ( fieldValue ) . toBe ( '1234.55' ) ;
510- } ) ;
511-
512- it ( 'should transform value on blur' , async ( ) => {
513- const newValue = '456789' ;
514- const blurSpy = spyOn ( widget , 'amountWidgetOnBlur' ) . and . callThrough ( ) ;
515- fixture . detectChanges ( ) ;
516-
517- const field = await testingUtils . getMatInput ( ) ;
518- const fieldValueBeforeBlur = await field . getValue ( ) ;
519- await field . setValue ( newValue ) ;
520- await field . blur ( ) ;
521- const fieldValue = await field . getValue ( ) ;
522-
523- expect ( field ) . toBeDefined ( ) ;
524- expect ( widget . field . value ) . toBe ( newValue ) ;
525- expect ( fieldValueBeforeBlur ) . toBe ( '$1,234.55' ) ;
526- expect ( blurSpy ) . toHaveBeenCalled ( ) ;
527- expect ( widget . valueAsNumber ) . toBe ( parseFloat ( newValue ) ) ;
528- expect ( widget . amountWidgetValue ) . toBe ( '$456,789.00' ) ;
529- expect ( fieldValue ) . toBe ( '$456,789.00' ) ;
530- } ) ;
531- } ) ;
532- describe ( 'set module for enableDisplayBasedOnLocale = false' , ( ) => {
533- const mockField = new FormFieldModel ( new FormModel ( ) , {
534- id : 'TestAmount1' ,
535- name : 'Test Amount' ,
536- type : 'amount' ,
537- currency : 'USD' ,
538- enableFractions : true ,
539- value : '1234.55'
540- } ) ;
541- beforeEach ( async ( ) => {
542- TestBed . configureTestingModule ( {
543- imports : [ AmountWidgetComponent ] ,
544- providers : [ { provide : ADF_AMOUNT_SETTINGS , useValue : { enableDisplayBasedOnLocale : false } } ]
545- } ) ;
546- fixture = TestBed . createComponent ( AmountWidgetComponent ) ;
547- widget = fixture . componentInstance ;
548-
549- fixture . componentRef . setInput ( 'field' , mockField ) ;
550- loader = TestbedHarnessEnvironment . loader ( fixture ) ;
551- testingUtils = new UnitTestingUtils ( fixture . debugElement , loader ) ;
552- fixture . detectChanges ( ) ;
553- } ) ;
554-
555- it ( 'should display prefix with currency when enableDisplayBasedOnLocale = true' , async ( ) => {
556- const field = await testingUtils . getMatFormField ( ) ;
557- expect ( await field . getPrefixText ( ) ) . toBe ( 'USD' ) ;
558- } ) ;
559-
560- it ( 'should call method on focus and not change input value' , async ( ) => {
561- const focusSpy = spyOn ( widget , 'amountWidgetOnFocus' ) . and . callThrough ( ) ;
562- fixture . detectChanges ( ) ;
563-
564- const field = await testingUtils . getMatInput ( ) ;
565- const fieldValueBeforeFocus = await field . getValue ( ) ;
566- await field . focus ( ) ;
567- const fieldValue = await field . getValue ( ) ;
568-
569- expect ( field ) . toBeDefined ( ) ;
570- expect ( widget . field . value ) . toBe ( '1234.55' ) ;
571- expect ( widget . valueAsNumber ) . toBeUndefined ( ) ;
572- expect ( fieldValueBeforeFocus ) . toBe ( '1234.55' ) ;
573- expect ( focusSpy ) . toHaveBeenCalled ( ) ;
574- expect ( fieldValue ) . toBe ( '1234.55' ) ;
575- } ) ;
576-
577- it ( 'should call method on blur and not change input value' , async ( ) => {
578- const newValue = '456789' ;
579- const blurSpy = spyOn ( widget , 'amountWidgetOnBlur' ) . and . callThrough ( ) ;
580- fixture . detectChanges ( ) ;
581-
582- const field = await testingUtils . getMatInput ( ) ;
583- const fieldValueBeforeBlur = await field . getValue ( ) ;
584- await field . setValue ( newValue ) ;
585- await field . blur ( ) ;
586- const fieldValue = await field . getValue ( ) ;
587-
588- expect ( field ) . toBeDefined ( ) ;
589- expect ( widget . field . value ) . toBe ( newValue ) ;
590- expect ( widget . valueAsNumber ) . toBeUndefined ( ) ;
591- expect ( fieldValueBeforeBlur ) . toBe ( '1234.55' ) ;
592- expect ( blurSpy ) . toHaveBeenCalled ( ) ;
593- expect ( widget . valueAsNumber ) . toBeUndefined ( ) ;
594- expect ( widget . amountWidgetValue ) . toBe ( '456789' ) ;
595- expect ( fieldValue ) . toBe ( '456789' ) ;
596- } ) ;
597- } ) ;
598- } ) ;
599-
600- describe ( 'Test widget with ADF_AMOUNT_SETTINGS as observable' , ( ) => {
601- beforeEach ( ( ) => {
602- TestBed . resetTestingModule ( ) ;
603- } ) ;
604-
605- describe ( 'set module for enableDisplayBasedOnLocale = true' , ( ) => {
606- const mockField = new FormFieldModel ( new FormModel ( ) , {
607- id : 'TestAmount1' ,
608- name : 'Test Amount' ,
609- type : 'amount' ,
610- currency : 'USD' ,
611- enableFractions : true ,
612- value : '1234.55'
613- } ) ;
614- beforeEach ( async ( ) => {
615- TestBed . configureTestingModule ( {
616- imports : [ AmountWidgetComponent ] ,
617- providers : [ { provide : ADF_AMOUNT_SETTINGS , useValue : of ( { enableDisplayBasedOnLocale : true } ) } ]
618- } ) ;
619- fixture = TestBed . createComponent ( AmountWidgetComponent ) ;
620- widget = fixture . componentInstance ;
621- const returnedLanguages : string [ ] = [ 'en-GB' , 'en-US' , 'en' , 'de-DE' , 'pl' ] ;
622- spyOnProperty ( window , 'navigator' ) . and . returnValue ( {
623- languages : returnedLanguages
624- } as any ) ;
625- fixture . componentRef . setInput ( 'field' , mockField ) ;
626- loader = TestbedHarnessEnvironment . loader ( fixture ) ;
627- testingUtils = new UnitTestingUtils ( fixture . debugElement , loader ) ;
628- fixture . detectChanges ( ) ;
629- } ) ;
630-
631- it ( 'should set enableDisplayBasedOnLocale to true' , ( ) => {
632- expect ( widget . enableDisplayBasedOnLocale ) . toBeTrue ( ) ;
633- expect ( widget . decimalProperty ) . toBe ( '1.2-2' ) ;
634- expect ( widget . locale ) . toBe ( 'en-GB' ) ;
635- expect ( widget . valueAsNumber ) . toBe ( '1234.55' ) ;
636- expect ( widget . amountWidgetValue ) . toBe ( '$1,234.55' ) ;
637- } ) ;
638-
639- it ( 'should not display prefix with currency when enableDisplayBasedOnLocale = true' , async ( ) => {
640- const field = await testingUtils . getMatFormField ( ) ;
641- expect ( await field . getPrefixText ( ) ) . toBe ( '' ) ;
642- } ) ;
643- } ) ;
644- } ) ;
645330} ) ;
646331
647332describe ( 'AmountWidgetComponent settings' , ( ) => {
0 commit comments