import { afterEach, beforeEach, describe, expect, it } from 'vitest' import { cleanup, render, screen } from '@testing-library/react' import '@testing-library/jest-dom' import { ThinkingBlock } from './ThinkingBlock' import { useSettingsStore } from '../../stores/settingsStore' describe('ThinkingBlock', () => { beforeEach(() => { useSettingsStore.setState({ locale: 'zh' }) }) afterEach(() => { cleanup() useSettingsStore.setState({ locale: 'zh' }) }) it('shows the in-progress label while thinking is active', () => { render() expect(screen.getByRole('button')).toHaveTextContent('思考中') expect(screen.getByRole('button')).not.toHaveTextContent('已思考') }) it('shows the done label once thinking has completed', () => { render() expect(screen.getByRole('button')).toHaveTextContent('已思考') expect(screen.getByRole('button')).not.toHaveTextContent('思考中') }) it('defaults to the done label when isActive is omitted', () => { render() expect(screen.getByRole('button')).toHaveTextContent('已思考') }) it('localizes both labels in English', () => { useSettingsStore.setState({ locale: 'en' }) const { rerender } = render() expect(screen.getByRole('button')).toHaveTextContent('Thinking') rerender() expect(screen.getByRole('button')).toHaveTextContent('Thought') }) })