@@ -10,8 +10,9 @@ import { AuthService } from '../auth/auth.service';
1010import { NativeWindowRef } from '../services/window.service' ;
1111import { RouteService } from '../services/route.service' ;
1212import { routeServiceStub } from '../../shared/testing/route-service.stub' ;
13+ import { of as observableOf } from 'rxjs' ;
1314
14- describe ( 'LocaleService test suite' , ( ) => {
15+ fdescribe ( 'LocaleService test suite' , ( ) => {
1516 let service : LocaleService ;
1617 let serviceAsAny : any ;
1718 let cookieService : CookieService ;
@@ -22,13 +23,25 @@ describe('LocaleService test suite', () => {
2223 let authService ;
2324 let routeService ;
2425 let document ;
26+ let spyOnGetLanguage ;
2527
2628 authService = jasmine . createSpyObj ( 'AuthService' , {
2729 isAuthenticated : jasmine . createSpy ( 'isAuthenticated' ) ,
2830 isAuthenticationLoaded : jasmine . createSpy ( 'isAuthenticationLoaded' )
2931 } ) ;
3032
31- const langList = [ 'en' , 'xx' , 'de' ] ;
33+ const translateServiceStub : any = {
34+ getLangs : ( ) => {
35+ return langList ;
36+ } ,
37+ getBrowserLang : ( ) => {
38+ return langList ;
39+ } ,
40+ // eslint-disable-next-line @typescript-eslint/no-empty-function
41+ use : ( param : string ) => { }
42+ } ;
43+
44+ const langList = [ 'en' , 'it' , 'de' ] ;
3245
3346 beforeEach ( waitForAsync ( ( ) => {
3447 return TestBed . configureTestingModule ( {
@@ -44,6 +57,7 @@ describe('LocaleService test suite', () => {
4457 { provide : CookieService , useValue : new CookieServiceMock ( ) } ,
4558 { provide : AuthService , userValue : authService } ,
4659 { provide : RouteService , useValue : routeServiceStub } ,
60+ { provide : TranslateService , useValue : translateServiceStub } ,
4761 { provide : Document , useValue : document } ,
4862 ]
4963 } ) ;
@@ -59,36 +73,29 @@ describe('LocaleService test suite', () => {
5973 serviceAsAny = service ;
6074 spyOnGet = spyOn ( cookieService , 'get' ) ;
6175 spyOnSet = spyOn ( cookieService , 'set' ) ;
76+ spyOnGetLanguage = spyOn ( routeService , 'getQueryParameterValue' ) . withArgs ( 'lang' ) ;
6277 } ) ;
6378
6479 describe ( 'getCurrentLanguageCode' , ( ) => {
65- beforeEach ( ( ) => {
66- spyOn ( translateService , 'getLangs' ) . and . returnValue ( langList ) ;
67- } ) ;
68-
69- it ( 'should return the language saved on cookie if it\'s a valid & active language' , ( ) => {
80+ it ( 'should return language saved on cookie' , ( ) => {
7081 spyOnGet . and . returnValue ( 'de' ) ;
7182 expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'de' ) ;
7283 } ) ;
7384
74- it ( 'should return the default language if the cookie language is disabled' , ( ) => {
75- spyOnGet . and . returnValue ( 'disabled' ) ;
76- expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'en' ) ;
77- } ) ;
78-
79- it ( 'should return the default language if the cookie language does not exist' , ( ) => {
80- spyOnGet . and . returnValue ( 'does-not-exist' ) ;
81- expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'en' ) ;
82- } ) ;
85+ describe ( '' , ( ) => {
86+ beforeEach ( ( ) => {
87+ spyOn ( translateService , 'getLangs' ) . and . returnValue ( langList ) ;
88+ } ) ;
8389
84- it ( 'should return language from browser setting' , ( ) => {
85- spyOn ( translateService , 'getBrowserLang' ) . and . returnValue ( 'xx ' ) ;
86- expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'xx ' ) ;
87- } ) ;
90+ it ( 'should return language from browser setting' , ( ) => {
91+ spyOn ( translateService , 'getBrowserLang' ) . and . returnValue ( 'it ' ) ;
92+ expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'it ' ) ;
93+ } ) ;
8894
89- it ( 'should return default language from config' , ( ) => {
90- spyOn ( translateService , 'getBrowserLang' ) . and . returnValue ( 'fr' ) ;
91- expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'en' ) ;
95+ it ( 'should return default language from config' , ( ) => {
96+ spyOn ( translateService , 'getBrowserLang' ) . and . returnValue ( 'fr' ) ;
97+ expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'en' ) ;
98+ } ) ;
9299 } ) ;
93100 } ) ;
94101
@@ -114,9 +121,9 @@ describe('LocaleService test suite', () => {
114121 } ) ;
115122
116123 it ( 'should set the given language' , ( ) => {
117- service . setCurrentLanguageCode ( 'xx ' ) ;
118- expect ( translateService . use ) . toHaveBeenCalledWith ( 'xx ' ) ;
119- expect ( service . saveLanguageCodeToCookie ) . toHaveBeenCalledWith ( 'xx ' ) ;
124+ service . setCurrentLanguageCode ( 'it ' ) ;
125+ expect ( translateService . use ) . toHaveBeenCalledWith ( 'it ' ) ;
126+ expect ( service . saveLanguageCodeToCookie ) . toHaveBeenCalledWith ( 'it ' ) ;
120127 } ) ;
121128
122129 it ( 'should set the current language' , ( ) => {
@@ -131,11 +138,36 @@ describe('LocaleService test suite', () => {
131138 service . setCurrentLanguageCode ( ) ;
132139 expect ( ( service as any ) . document . documentElement . lang ) . toEqual ( 'es' ) ;
133140 } ) ;
141+
142+ describe ( 'should set language on init' , ( ) => {
143+ beforeEach ( ( ) => {
144+ spyOn ( translateService , 'getLangs' ) . and . returnValue ( langList ) ;
145+ spyOn ( service , 'setCurrentLanguageCode' ) ;
146+ } ) ;
147+ describe ( 'whith correct lang query param ' , ( ) => {
148+ beforeEach ( ( ) => {
149+ spyOnGetLanguage . and . returnValue ( observableOf ( 'en' ) ) ;
150+ service . initDefaults ( ) ;
151+ } ) ;
152+ it ( 'should set correct lang' , ( ) => {
153+ expect ( service . setCurrentLanguageCode ) . toHaveBeenCalledWith ( 'en' ) ;
154+ } ) ;
155+ } ) ;
156+ describe ( 'whith wrong lang query param ' , ( ) => {
157+ beforeEach ( ( ) => {
158+ spyOnGetLanguage . and . returnValue ( observableOf ( 'abcd' ) ) ;
159+ service . initDefaults ( ) ;
160+ } ) ;
161+ it ( 'should not set lang' , ( ) => {
162+ expect ( service . setCurrentLanguageCode ) . not . toHaveBeenCalled ( ) ;
163+ } ) ;
164+ } ) ;
165+ } ) ;
134166 } ) ;
135167
136168 describe ( '' , ( ) => {
137169 it ( 'should set quality to current language list' , ( ) => {
138- const langListWithQuality = [ 'en;q=1' , 'xx ;q=0.9' , 'de;q=0.8' ] ;
170+ const langListWithQuality = [ 'en;q=1' , 'it ;q=0.9' , 'de;q=0.8' ] ;
139171 spyOn ( service , 'setQuality' ) . and . returnValue ( langListWithQuality ) ;
140172 service . setQuality ( langList , LANG_ORIGIN . BROWSER , false ) ;
141173 expect ( service . setQuality ) . toHaveBeenCalledWith ( langList , LANG_ORIGIN . BROWSER , false ) ;
0 commit comments