hermes-agent/apps/desktop/src/components/ui/copy-button.test.tsx
Jim Liu 宝玉 fbd423b94d feat(desktop): localize desktop chrome
Co-authored-by: Kiro 有点Yes <246816394+sdyckjq-lab@users.noreply.github.com>
2026-06-06 07:51:44 -07:00

36 lines
1.1 KiB
TypeScript

import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react'
import { afterEach, describe, expect, it, vi } from 'vitest'
import { I18nProvider } from '@/i18n'
import { CopyButton } from './copy-button'
describe('CopyButton i18n', () => {
afterEach(() => {
cleanup()
vi.restoreAllMocks()
})
it('uses localized default labels and copied feedback', async () => {
const writeText = vi.fn().mockResolvedValue(undefined)
Object.defineProperty(navigator, 'clipboard', {
configurable: true,
value: { writeText }
})
render(
<I18nProvider configClient={null} initialLocale="zh">
<CopyButton text="hello" />
</I18nProvider>
)
const button = screen.getByRole('button', { name: '复制' })
expect(button.textContent).toContain('复制')
fireEvent.click(button)
await waitFor(() => expect(writeText).toHaveBeenCalledWith('hello'))
await waitFor(() => expect(screen.getByRole('button', { name: '已复制' })).toBeTruthy())
expect(screen.getByRole('button', { name: '已复制' }).textContent).toContain('已复制')
})
})