55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
import '@testing-library/jest-dom/vitest'
|
|
|
|
// Ensure happy-dom environment is properly initialized
|
|
if (typeof window === 'undefined' || typeof document === 'undefined') {
|
|
throw new Error('happy-dom environment not initialized. Check vitest config.')
|
|
}
|
|
|
|
// Polyfill window.matchMedia for jsdom (required by TDesign)
|
|
Object.defineProperty(window, 'matchMedia', {
|
|
writable: true,
|
|
value: (query: string) => ({
|
|
matches: false,
|
|
media: query,
|
|
onchange: null,
|
|
addListener: () => {},
|
|
removeListener: () => {},
|
|
addEventListener: () => {},
|
|
removeEventListener: () => {},
|
|
dispatchEvent: () => false,
|
|
}),
|
|
})
|
|
|
|
// Polyfill window.getComputedStyle to suppress jsdom warnings
|
|
const originalGetComputedStyle = window.getComputedStyle
|
|
window.getComputedStyle = (elt: Element, pseudoElt?: string | null) => {
|
|
try {
|
|
return originalGetComputedStyle(elt, pseudoElt)
|
|
} catch {
|
|
return {} as CSSStyleDeclaration
|
|
}
|
|
}
|
|
|
|
// Polyfill ResizeObserver for TDesign
|
|
global.ResizeObserver = class ResizeObserver {
|
|
observe() {}
|
|
unobserve() {}
|
|
disconnect() {}
|
|
}
|
|
|
|
// Suppress TDesign Form internal act() warnings
|
|
// These warnings come from TDesign's FormItem component internal async state updates
|
|
// They don't affect test reliability - all tests pass successfully
|
|
const originalError = console.error
|
|
console.error = (...args: unknown[]) => {
|
|
const message = args[0]
|
|
// Filter out TDesign FormItem act() warnings
|
|
if (
|
|
typeof message === 'string' &&
|
|
message.includes('An update to FormItem inside a test was not wrapped in act(...)')
|
|
) {
|
|
return
|
|
}
|
|
originalError(...args)
|
|
}
|