diff options
Diffstat (limited to 'tests/unit/i18n.vendor.spec.js')
-rw-r--r-- | tests/unit/i18n.vendor.spec.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/unit/i18n.vendor.spec.js b/tests/unit/i18n.vendor.spec.js new file mode 100644 index 000000000..93049b9bf --- /dev/null +++ b/tests/unit/i18n.vendor.spec.js @@ -0,0 +1,44 @@ +// How to run this test in isolation: +// npm run test:unit -- i18n.vendor.spec.js +// This verifies vendor overlays (e.g., nvidia shared folder) and vendor-root fallback +// without requiring component mounts or full app boot. +describe('i18n vendor overlays', () => { + const ORIGINAL_ENV = process.env; + beforeEach(() => { + jest.resetModules(); + process.env = { ...ORIGINAL_ENV }; + // Ensure default locale is deterministic for the test + window.localStorage.setItem('storedLanguage', 'en-US'); + }); + + afterEach(() => { + process.env = ORIGINAL_ENV; + }); + + test('falls back to vendor root overlays when env has hyphenated suffix', async () => { + // Simulate running in nvidia-gb but having overlays only in src/env/locales/nvidia + process.env.VUE_APP_ENV_NAME = 'nvidia-gb'; + + const { createI18nInstance } = await import('@/i18n'); + const vendorEn = require('@/env/locales/nvidia/en-US.json'); + const stubLoader = () => ({ 'en-US': vendorEn.default || vendorEn }); + const i18nInstance = createI18nInstance('nvidia-gb', 'en-US', stubLoader); + + // System HGX dump is NVIDIA-specific and defined in src/env/locales/nvidia/en-US.json + const translated = i18nInstance.global.t( + 'pageDumps.dumpTypes.systemHgxDump', + ); + expect(translated).toBe('System [HGX] dump (disruptive)'); + }); + + test('base locales do not contain vendor-only keys', async () => { + process.env.VUE_APP_ENV_NAME = undefined; + const { createI18nInstance } = await import('@/i18n'); + const i18nInstance = createI18nInstance(undefined, 'en-US'); + const translated = i18nInstance.global.t( + 'pageDumps.dumpTypes.systemHgxDump', + ); + // When no env overlays are loaded, accessing vendor-only keys should return the key path + expect(translated).toBe('pageDumps.dumpTypes.systemHgxDump'); + }); +}); |