refactor(web): migrate to Vitest and esm (#29974)

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: yyh <yuanyouhuilyz@gmail.com>
This commit is contained in:
Stephen Zhou
2025-12-22 16:35:22 +08:00
committed by GitHub
parent 42f7ecda12
commit eabdc5f0eb
268 changed files with 5455 additions and 6307 deletions

View File

@ -10,14 +10,14 @@ const supportedLanguages = languages.filter(lang => lang.supported)
// Test data builder for props
const createDefaultProps = (overrides?: Partial<ILanguageSelectProps>): ILanguageSelectProps => ({
currentLanguage: 'English',
onSelect: jest.fn(),
onSelect: vi.fn(),
disabled: false,
...overrides,
})
describe('LanguageSelect', () => {
beforeEach(() => {
jest.clearAllMocks()
vi.clearAllMocks()
})
// ==========================================
@ -189,7 +189,7 @@ describe('LanguageSelect', () => {
describe('onSelect prop', () => {
it('should be callable as a function', () => {
const mockOnSelect = jest.fn()
const mockOnSelect = vi.fn()
const props = createDefaultProps({ onSelect: mockOnSelect })
render(<LanguageSelect {...props} />)
@ -224,7 +224,7 @@ describe('LanguageSelect', () => {
it('should call onSelect when a language option is clicked', () => {
// Arrange
const mockOnSelect = jest.fn()
const mockOnSelect = vi.fn()
const props = createDefaultProps({ onSelect: mockOnSelect })
render(<LanguageSelect {...props} />)
@ -241,7 +241,7 @@ describe('LanguageSelect', () => {
it('should call onSelect with correct language when selecting different languages', () => {
// Arrange
const mockOnSelect = jest.fn()
const mockOnSelect = vi.fn()
const props = createDefaultProps({ onSelect: mockOnSelect })
render(<LanguageSelect {...props} />)
@ -274,7 +274,7 @@ describe('LanguageSelect', () => {
it('should not call onSelect when component is disabled', () => {
// Arrange
const mockOnSelect = jest.fn()
const mockOnSelect = vi.fn()
const props = createDefaultProps({ onSelect: mockOnSelect, disabled: true })
render(<LanguageSelect {...props} />)
@ -288,7 +288,7 @@ describe('LanguageSelect', () => {
it('should handle rapid consecutive clicks', () => {
// Arrange
const mockOnSelect = jest.fn()
const mockOnSelect = vi.fn()
const props = createDefaultProps({ onSelect: mockOnSelect })
render(<LanguageSelect {...props} />)
@ -314,9 +314,9 @@ describe('LanguageSelect', () => {
it('should not re-render when props remain the same', () => {
// Arrange
const mockOnSelect = jest.fn()
const mockOnSelect = vi.fn()
const props = createDefaultProps({ onSelect: mockOnSelect })
const renderSpy = jest.fn()
const renderSpy = vi.fn()
// Create a wrapper component to track renders
const TrackedLanguageSelect: React.FC<ILanguageSelectProps> = (trackedProps) => {
@ -515,7 +515,7 @@ describe('LanguageSelect', () => {
describe('Popover Integration', () => {
it('should use manualClose prop on Popover', () => {
// Arrange
const mockOnSelect = jest.fn()
const mockOnSelect = vi.fn()
const props = createDefaultProps({ onSelect: mockOnSelect })
// Act

View File

@ -23,7 +23,7 @@ const createQAProps = (overrides?: Partial<IPreviewItemProps>): IPreviewItemProp
describe('PreviewItem', () => {
beforeEach(() => {
jest.clearAllMocks()
vi.clearAllMocks()
})
// ==========================================
@ -346,7 +346,7 @@ describe('PreviewItem', () => {
it('should not re-render when props remain the same', () => {
// Arrange
const props = createDefaultProps()
const renderSpy = jest.fn()
const renderSpy = vi.fn()
// Create a wrapper component to track renders
const TrackedPreviewItem: React.FC<IPreviewItemProps> = (trackedProps) => {