fix: use proper ESM imports in test setup for TypeScript compatibility
Replace require('react') with ESM imports of createElement and types
from React. This fixes the TS2591 error in tsc build for setup.ts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,43 +1,40 @@
|
||||
import '@testing-library/jest-dom/vitest'
|
||||
import { vi } from 'vitest'
|
||||
import { createElement, type ReactNode, type ComponentType } from 'react'
|
||||
|
||||
// Mock react-virtuoso: JSDOM has no real viewport, so render all items directly
|
||||
vi.mock('react-virtuoso', () => {
|
||||
const React = require('react')
|
||||
return {
|
||||
Virtuoso: ({ data, itemContent, components }: {
|
||||
data?: unknown[]
|
||||
itemContent?: (index: number, item: unknown) => React.ReactNode
|
||||
components?: { Header?: React.ComponentType }
|
||||
}) => {
|
||||
const Header = components?.Header
|
||||
return React.createElement('div', { 'data-testid': 'virtuoso-mock' },
|
||||
Header ? React.createElement(Header) : null,
|
||||
data?.map((item: unknown, index: number) =>
|
||||
React.createElement('div', { key: index }, itemContent?.(index, item))
|
||||
vi.mock('react-virtuoso', () => ({
|
||||
Virtuoso: ({ data, itemContent, components }: {
|
||||
data?: unknown[]
|
||||
itemContent?: (index: number, item: unknown) => ReactNode
|
||||
components?: { Header?: ComponentType }
|
||||
}) => {
|
||||
const Header = components?.Header
|
||||
return createElement('div', { 'data-testid': 'virtuoso-mock' },
|
||||
Header ? createElement(Header) : null,
|
||||
data?.map((item: unknown, index: number) =>
|
||||
createElement('div', { key: index }, itemContent?.(index, item))
|
||||
)
|
||||
)
|
||||
},
|
||||
GroupedVirtuoso: ({ groupCounts, groupContent, itemContent }: {
|
||||
groupCounts: number[]
|
||||
groupContent: (index: number) => ReactNode
|
||||
itemContent: (index: number, groupIndex: number) => ReactNode
|
||||
}) => {
|
||||
let globalIndex = 0
|
||||
return createElement('div', { 'data-testid': 'grouped-virtuoso-mock' },
|
||||
groupCounts?.map((count: number, groupIndex: number) => {
|
||||
const items = []
|
||||
for (let i = 0; i < count; i++) {
|
||||
items.push(createElement('div', { key: globalIndex }, itemContent(globalIndex, groupIndex)))
|
||||
globalIndex++
|
||||
}
|
||||
return createElement('div', { key: `group-${groupIndex}` },
|
||||
groupContent(groupIndex),
|
||||
...items
|
||||
)
|
||||
)
|
||||
},
|
||||
GroupedVirtuoso: ({ groupCounts, groupContent, itemContent }: {
|
||||
groupCounts: number[]
|
||||
groupContent: (index: number) => React.ReactNode
|
||||
itemContent: (index: number, groupIndex: number) => React.ReactNode
|
||||
}) => {
|
||||
const React = require('react')
|
||||
let globalIndex = 0
|
||||
return React.createElement('div', { 'data-testid': 'grouped-virtuoso-mock' },
|
||||
groupCounts?.map((count: number, groupIndex: number) => {
|
||||
const items = []
|
||||
for (let i = 0; i < count; i++) {
|
||||
items.push(React.createElement('div', { key: globalIndex }, itemContent(globalIndex, groupIndex)))
|
||||
globalIndex++
|
||||
}
|
||||
return React.createElement('div', { key: `group-${groupIndex}` },
|
||||
groupContent(groupIndex),
|
||||
...items
|
||||
)
|
||||
})
|
||||
)
|
||||
},
|
||||
}
|
||||
})
|
||||
})
|
||||
)
|
||||
},
|
||||
}))
|
||||
|
||||
Reference in New Issue
Block a user