mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-15 14:22:43 +00:00
36 lines
1.1 KiB
TypeScript
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('已复制')
|
|
})
|
|
})
|