From 093bf278da500acb4c98b9a5f7d98b18d05d357a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E9=9C=96=E9=93=83?= Date: Fri, 29 May 2026 22:08:04 +0800 Subject: [PATCH] refactor: replace require with import for JSON module in vitest.setup.ts --- vitest.setup.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/vitest.setup.ts b/vitest.setup.ts index d4f262a..a2bae5d 100644 --- a/vitest.setup.ts +++ b/vitest.setup.ts @@ -1,11 +1,10 @@ import '@testing-library/jest-dom'; import { afterEach, beforeEach, vi } from 'vitest'; import React from 'react'; +import zhMessages from './public/_locales/zh/messages.json'; -// Load actual zh translations for getMessage mock -const zhMessages: Record = - // eslint-disable-next-line @typescript-eslint/no-require-imports - require('./public/_locales/zh/messages.json'); +// Type assertion to allow string indexing +const zhMessagesMap = zhMessages as Record; vi.mock('@/utils/chromeI18n', () => ({ useI18n: (ns?: string | string[]) => ({ @@ -16,13 +15,13 @@ vi.mock('@/utils/chromeI18n', () => ({ msgId = key.replace(':', '_').replace(/\./g, '_'); } // Try direct key first - if (zhMessages[msgId]) return zhMessages[msgId].message; + if (zhMessagesMap[msgId]) return zhMessagesMap[msgId].message; // Try namespace prefix (using converted msgId) if (ns) { const namespaces = Array.isArray(ns) ? ns : [ns]; for (const n of namespaces) { const candidate = `${n}_${msgId}`; - if (zhMessages[candidate]) return zhMessages[candidate].message; + if (zhMessagesMap[candidate]) return zhMessagesMap[candidate].message; } } return msgId; @@ -33,7 +32,7 @@ vi.mock('@/utils/chromeI18n', () => ({ }, isLoaded: true, }), - getMessage: (msgId: string) => zhMessages[msgId]?.message ?? msgId, + getMessage: (msgId: string) => zhMessagesMap[msgId]?.message ?? msgId, getLanguage: () => 'zh', preloadNamespaces: vi.fn().mockResolvedValue(undefined), }));