File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed
Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -88,4 +88,27 @@ describe('Translator', () => {
8888 )
8989 ) . toBe ( 'Bonjour, tout le monde' ) ;
9090 } ) ;
91+
92+ it ( 'should handle SSR environment where document is undefined' , ( ) => {
93+ const ssrTranslator = new Translator ( ) ;
94+ const originalDocument = global . document ;
95+
96+ // Simulate SSR environment
97+ // @ts -expect-error - deliberately setting document to undefined for SSR test
98+ delete global . document ;
99+
100+ expect ( ( ) => {
101+ ssrTranslator . init ( { defaultLanguage : 'en' , translations : { } } ) ;
102+ } ) . not . toThrow ( ) ;
103+
104+ expect ( ( ) => {
105+ ssrTranslator . changeLanguage ( 'fr' ) ;
106+ } ) . not . toThrow ( ) ;
107+
108+ expect ( ssrTranslator . resolvedLanguage ) . toBe ( 'fr' ) ;
109+ expect ( ssrTranslator . t ( 'libui.days.monday' ) ) . toBe ( 'Lundi' ) ;
110+
111+ // Restore document
112+ global . document = originalDocument ;
113+ } ) ;
91114} ) ;
Original file line number Diff line number Diff line change @@ -68,7 +68,9 @@ export class Translator implements TranslatorType<TranslationKey> {
6868 @InitializedOnly
6969 changeLanguage ( language : Language ) {
7070 this . #resolvedLanguage = language ;
71- document . documentElement . lang = language ;
71+ if ( typeof document !== 'undefined' ) {
72+ document . documentElement . lang = language ;
73+ }
7274 this . emitEvent ( 'languageChange' , [ language ] ) ;
7375 }
7476
You can’t perform that action at this time.
0 commit comments