@@ -25,10 +25,6 @@ fdescribe('LocaleService test suite', () => {
2525 let document ;
2626 let spyOnGetLanguage ;
2727
28- authService = jasmine . createSpyObj ( 'AuthService' , {
29- isAuthenticated : jasmine . createSpy ( 'isAuthenticated' ) ,
30- isAuthenticationLoaded : jasmine . createSpy ( 'isAuthenticationLoaded' )
31- } ) ;
3228
3329 const translateServiceStub : any = {
3430 getLangs : ( ) => {
@@ -38,145 +34,153 @@ fdescribe('LocaleService test suite', () => {
3834 return langList ;
3935 } ,
4036 // eslint-disable-next-line @typescript-eslint/no-empty-function
41- use : ( param : string ) => { }
37+ use : ( param : string ) => {
38+ }
4239 } ;
4340
44- const langList = [ 'en' , 'it' , 'de' ] ;
45-
46- beforeEach ( waitForAsync ( ( ) => {
47- return TestBed . configureTestingModule ( {
48- imports : [
49- TranslateModule . forRoot ( {
50- loader : {
51- provide : TranslateLoader ,
52- useClass : TranslateLoaderMock
53- }
54- } ) ,
55- ] ,
56- providers : [
57- { provide : CookieService , useValue : new CookieServiceMock ( ) } ,
58- { provide : AuthService , userValue : authService } ,
59- { provide : RouteService , useValue : routeServiceStub } ,
60- { provide : TranslateService , useValue : translateServiceStub } ,
61- { provide : Document , useValue : document } ,
62- ]
63- } ) ;
64- } ) ) ;
65-
66- beforeEach ( ( ) => {
67- cookieService = TestBed . inject ( CookieService ) ;
68- translateService = TestBed . inject ( TranslateService ) ;
69- routeService = TestBed . inject ( RouteService ) ;
70- window = new NativeWindowRef ( ) ;
71- document = { documentElement : { lang : 'en' } } ;
72- service = new LocaleService ( window , cookieService , translateService , authService , routeService , document ) ;
73- serviceAsAny = service ;
74- spyOnGet = spyOn ( cookieService , 'get' ) ;
75- spyOnSet = spyOn ( cookieService , 'set' ) ;
76- spyOnGetLanguage = spyOn ( routeService , 'getQueryParameterValue' ) . withArgs ( 'lang' ) ;
41+ authService = jasmine . createSpyObj ( 'AuthService' , {
42+ isAuthenticated : jasmine . createSpy ( 'isAuthenticated' ) ,
43+ isAuthenticationLoaded : jasmine . createSpy ( 'isAuthenticationLoaded' )
7744 } ) ;
45+ const langList = [ 'en' , 'xx' , 'de' ] ;
46+
47+ describe ( 'with valid language' , ( ) => {
48+
49+ beforeEach ( waitForAsync ( ( ) => {
50+ return TestBed . configureTestingModule ( {
51+ imports : [
52+ TranslateModule . forRoot ( {
53+ loader : {
54+ provide : TranslateLoader ,
55+ useClass : TranslateLoaderMock
56+ }
57+ } ) ,
58+ ] ,
59+ providers : [
60+ { provide : CookieService , useValue : new CookieServiceMock ( ) } ,
61+ { provide : AuthService , userValue : authService } ,
62+ { provide : RouteService , useValue : routeServiceStub } ,
63+ { provide : TranslateService , useValue : translateServiceStub } ,
64+ { provide : Document , useValue : document } ,
65+ ]
66+ } ) ;
67+ } ) ) ;
7868
79- describe ( 'getCurrentLanguageCode' , ( ) => {
80- it ( 'should return language saved on cookie' , ( ) => {
81- spyOnGet . and . returnValue ( 'de' ) ;
82- expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'de' ) ;
69+ beforeEach ( ( ) => {
70+ cookieService = TestBed . inject ( CookieService ) ;
71+ translateService = TestBed . inject ( TranslateService ) ;
72+ routeService = TestBed . inject ( RouteService ) ;
73+ window = new NativeWindowRef ( ) ;
74+ document = { documentElement : { lang : 'en' } } ;
75+ service = new LocaleService ( window , cookieService , translateService , authService , routeService , document ) ;
76+ serviceAsAny = service ;
77+ spyOnGet = spyOn ( cookieService , 'get' ) ;
78+ spyOnSet = spyOn ( cookieService , 'set' ) ;
79+ spyOnGetLanguage = spyOn ( routeService , 'getQueryParameterValue' ) . withArgs ( 'lang' ) ;
8380 } ) ;
8481
85- describe ( '' , ( ) => {
86- beforeEach ( ( ) => {
87- spyOn ( translateService , 'getLangs' ) . and . returnValue ( langList ) ;
82+ describe ( 'getCurrentLanguageCode' , ( ) => {
83+ it ( 'should return language saved on cookie' , ( ) => {
84+ spyOnGet . and . returnValue ( 'de' ) ;
85+ expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'de' ) ;
8886 } ) ;
8987
90- it ( 'should return language from browser setting ', ( ) => {
91- spyOn ( translateService , 'getBrowserLang' ) . and . returnValue ( 'it' ) ;
92- expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'it' ) ;
93- } ) ;
88+ describe ( ' ', ( ) => {
89+ beforeEach ( ( ) => {
90+ spyOn ( translateService , 'getLangs' ) . and . returnValue ( langList ) ;
91+ } ) ;
9492
95- it ( 'should return default language from config' , ( ) => {
96- spyOn ( translateService , 'getBrowserLang' ) . and . returnValue ( 'fr' ) ;
97- expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'en' ) ;
98- } ) ;
99- } ) ;
100- } ) ;
93+ it ( 'should return language from browser setting' , ( ) => {
94+ spyOn ( translateService , 'getBrowserLang' ) . and . returnValue ( 'xx' ) ;
95+ expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'xx' ) ;
96+ } ) ;
10197
102- describe ( 'getLanguageCodeFromCookie' , ( ) => {
103- it ( 'should return language from cookie' , ( ) => {
104- spyOnGet . and . returnValue ( 'de' ) ;
105- expect ( service . getLanguageCodeFromCookie ( ) ) . toBe ( 'de' ) ;
98+ it ( 'should return default language from config' , ( ) => {
99+ spyOn ( translateService , 'getBrowserLang' ) . and . returnValue ( 'fr' ) ;
100+ expect ( service . getCurrentLanguageCode ( ) ) . toBe ( 'en' ) ;
101+ } ) ;
102+ } ) ;
106103 } ) ;
107104
108- } ) ;
105+ describe ( 'getLanguageCodeFromCookie' , ( ) => {
106+ it ( 'should return language from cookie' , ( ) => {
107+ spyOnGet . and . returnValue ( 'de' ) ;
108+ expect ( service . getLanguageCodeFromCookie ( ) ) . toBe ( 'de' ) ;
109+ } ) ;
109110
110- describe ( 'saveLanguageCodeToCookie' , ( ) => {
111- it ( 'should save language to cookie' , ( ) => {
112- service . saveLanguageCodeToCookie ( 'en' ) ;
113- expect ( spyOnSet ) . toHaveBeenCalledWith ( LANG_COOKIE , 'en' ) ;
114111 } ) ;
115- } ) ;
116112
117- describe ( 'setCurrentLanguageCode' , ( ) => {
118- beforeEach ( ( ) => {
119- spyOn ( service , 'saveLanguageCodeToCookie' ) ;
120- spyOn ( translateService , 'use' ) ;
113+ describe ( 'saveLanguageCodeToCookie' , ( ) => {
114+ it ( 'should save language to cookie' , ( ) => {
115+ service . saveLanguageCodeToCookie ( 'en' ) ;
116+ expect ( spyOnSet ) . toHaveBeenCalledWith ( LANG_COOKIE , 'en' ) ;
117+ } ) ;
121118 } ) ;
122119
123- it ( 'should set the given language ', ( ) => {
124- service . setCurrentLanguageCode ( 'it' ) ;
125- expect ( translateService . use ) . toHaveBeenCalledWith ( 'it ') ;
126- expect ( service . saveLanguageCodeToCookie ) . toHaveBeenCalledWith ( 'it ') ;
127- } ) ;
120+ describe ( 'setCurrentLanguageCode ', ( ) => {
121+ beforeEach ( ( ) => {
122+ spyOn ( service , 'saveLanguageCodeToCookie ') ;
123+ spyOn ( translateService , 'use ') ;
124+ } ) ;
128125
129- it ( 'should set the current language' , ( ) => {
130- spyOn ( service , 'getCurrentLanguageCode' ) . and . returnValue ( 'es' ) ;
131- service . setCurrentLanguageCode ( ) ;
132- expect ( translateService . use ) . toHaveBeenCalledWith ( 'es' ) ;
133- expect ( service . saveLanguageCodeToCookie ) . toHaveBeenCalledWith ( 'es' ) ;
134- } ) ;
126+ it ( 'should set the given language' , ( ) => {
127+ service . setCurrentLanguageCode ( 'it' ) ;
128+ expect ( translateService . use ) . toHaveBeenCalledWith ( 'it' ) ;
129+ expect ( service . saveLanguageCodeToCookie ) . toHaveBeenCalledWith ( 'it' ) ;
130+ } ) ;
135131
136- it ( 'should set the current language on the html tag' , ( ) => {
137- spyOn ( service , 'getCurrentLanguageCode' ) . and . returnValue ( 'es' ) ;
138- service . setCurrentLanguageCode ( ) ;
139- expect ( ( service as any ) . document . documentElement . lang ) . toEqual ( 'es' ) ;
140- } ) ;
132+ it ( 'should set the current language' , ( ) => {
133+ spyOn ( service , 'getCurrentLanguageCode' ) . and . returnValue ( 'es' ) ;
134+ service . setCurrentLanguageCode ( ) ;
135+ expect ( translateService . use ) . toHaveBeenCalledWith ( 'es' ) ;
136+ expect ( service . saveLanguageCodeToCookie ) . toHaveBeenCalledWith ( 'es' ) ;
137+ } ) ;
141138
142- describe ( 'should set language on init ' , ( ) => {
143- beforeEach ( ( ) => {
144- spyOn ( translateService , 'getLangs' ) . and . returnValue ( langList ) ;
145- spyOn ( service , 'setCurrentLanguageCode ') ;
139+ it ( 'should set the current language on the html tag ' , ( ) => {
140+ spyOn ( service , 'getCurrentLanguageCode' ) . and . returnValue ( 'es' ) ;
141+ service . setCurrentLanguageCode ( ) ;
142+ expect ( ( service as any ) . document . documentElement . lang ) . toEqual ( 'es ') ;
146143 } ) ;
147- describe ( 'whith correct lang query param ' , ( ) => {
144+
145+ describe ( 'should set language on init' , ( ) => {
148146 beforeEach ( ( ) => {
149- spyOnGetLanguage . and . returnValue ( observableOf ( 'en' ) ) ;
150- service . initDefaults ( ) ;
151- } ) ;
152- it ( 'should set correct lang' , ( ) => {
153- expect ( service . setCurrentLanguageCode ) . toHaveBeenCalledWith ( 'en' ) ;
147+ spyOn ( translateService , 'getLangs' ) . and . returnValue ( langList ) ;
148+ spyOn ( service , 'setCurrentLanguageCode' ) ;
154149 } ) ;
155- } ) ;
156- describe ( 'whith wrong lang query param ' , ( ) => {
157- beforeEach ( ( ) => {
158- spyOnGetLanguage . and . returnValue ( observableOf ( 'abcd' ) ) ;
159- service . initDefaults ( ) ;
150+ describe ( 'whith correct lang query param ' , ( ) => {
151+ beforeEach ( ( ) => {
152+ spyOnGetLanguage . and . returnValue ( observableOf ( 'en' ) ) ;
153+ service . initDefaults ( ) ;
154+ } ) ;
155+ it ( 'should set correct lang' , ( ) => {
156+ expect ( service . setCurrentLanguageCode ) . toHaveBeenCalledWith ( 'en' ) ;
157+ } ) ;
160158 } ) ;
161- it ( 'should not set lang' , ( ) => {
162- expect ( service . setCurrentLanguageCode ) . not . toHaveBeenCalled ( ) ;
159+ describe ( 'whith wrong lang query param ' , ( ) => {
160+ beforeEach ( ( ) => {
161+ spyOnGetLanguage . and . returnValue ( observableOf ( 'abcd' ) ) ;
162+ service . initDefaults ( ) ;
163+ } ) ;
164+ it ( 'should not set lang' , ( ) => {
165+ expect ( service . setCurrentLanguageCode ) . not . toHaveBeenCalled ( ) ;
166+ } ) ;
163167 } ) ;
164168 } ) ;
165169 } ) ;
166- } ) ;
167170
168- describe ( '' , ( ) => {
169- it ( 'should set quality to current language list' , ( ) => {
170- const langListWithQuality = [ 'en;q=1' , 'it;q=0.9' , 'de;q=0.8' ] ;
171- spyOn ( service , 'setQuality' ) . and . returnValue ( langListWithQuality ) ;
172- service . setQuality ( langList , LANG_ORIGIN . BROWSER , false ) ;
173- expect ( service . setQuality ) . toHaveBeenCalledWith ( langList , LANG_ORIGIN . BROWSER , false ) ;
174- } ) ;
171+ describe ( '' , ( ) => {
172+ it ( 'should set quality to current language list' , ( ) => {
173+ const langListWithQuality = [ 'en;q=1' , 'it;q=0.9' , 'de;q=0.8' ] ;
174+ spyOn ( service , 'setQuality' ) . and . returnValue ( langListWithQuality ) ;
175+ service . setQuality ( langList , LANG_ORIGIN . BROWSER , false ) ;
176+ expect ( service . setQuality ) . toHaveBeenCalledWith ( langList , LANG_ORIGIN . BROWSER , false ) ;
177+ } ) ;
175178
176- it ( 'should return the list of language with quality factor' , ( ) => {
177- spyOn ( service , 'getLanguageCodeList' ) ;
178- service . getLanguageCodeList ( ) ;
179- expect ( service . getLanguageCodeList ) . toHaveBeenCalled ( ) ;
179+ it ( 'should return the list of language with quality factor' , ( ) => {
180+ spyOn ( service , 'getLanguageCodeList' ) ;
181+ service . getLanguageCodeList ( ) ;
182+ expect ( service . getLanguageCodeList ) . toHaveBeenCalled ( ) ;
183+ } ) ;
180184 } ) ;
181185 } ) ;
182186} ) ;
0 commit comments