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