File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
packages/core/src/hooks/useBrowserLanguage Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ import { act , renderHook } from '@testing-library/react' ;
2+
3+ import { renderHookServer } from '@/tests' ;
4+
5+ import { useBrowserLanguage } from './useBrowserLanguage' ;
6+
7+ beforeAll ( ( ) => {
8+ Object . defineProperty ( navigator , 'language' , {
9+ value : 'ru' ,
10+ writable : true
11+ } ) ;
12+ } ) ;
13+
14+ it ( 'Should use browser language' , ( ) => {
15+ const { result } = renderHook ( useBrowserLanguage ) ;
16+
17+ expect ( result . current ) . toBe ( 'ru' ) ;
18+ } ) ;
19+
20+ it ( 'Should use browser language on server' , ( ) => {
21+ const { result } = renderHookServer ( useBrowserLanguage ) ;
22+
23+ expect ( result . current ) . toBe ( 'undetermined' ) ;
24+ } ) ;
25+
26+ it ( 'Should handle language change event' , ( ) => {
27+ const { result } = renderHook ( useBrowserLanguage ) ;
28+
29+ expect ( result . current ) . toBe ( 'ru' ) ;
30+
31+ act ( ( ) => {
32+ Object . defineProperty ( navigator , 'language' , {
33+ value : 'en' ,
34+ writable : true
35+ } ) ;
36+
37+ window . dispatchEvent ( new Event ( 'languagechange' ) ) ;
38+ } ) ;
39+
40+ expect ( result . current ) . toBe ( 'en' ) ;
41+ } ) ;
You can’t perform that action at this time.
0 commit comments