我刚刚升级到chakra2.2.1,在使用Jest和运行测试时遇到了一些问题
似乎是useBreakpointValue钩子导致了这个问题:
TypeError: Cannot read property 'details' of undefined
81 | base: aspectRatios[aspectRatioKey]?.mobile,
82 | lg: aspectRatios[aspectRatioKey]?.desktop,
> 83 | });
到目前为止,我已经成功地使用了jest-文件中建议的这个模拟,但是在将Chakra升级到2.2.1之后,它不再工作了。
Object.defineProperty(window, 'matchMedia', {
writable: true,
value: jest.fn().mockImplementation(query => ({
matches: false,
media: query,
onchange: null,
addListener: jest.fn(), // deprecated
removeListener: jest.fn(), // deprecated
addEventListener: jest.fn(),
removeEventListener: jest.fn(),
dispatchEvent: jest.fn(),
})),
});
发布于 2022-11-06 22:23:54
来自chakra的useBreakpointValue也有相同的错误。我能够通过包装要用ChakraProvider测试的组件来解决这个问题。
const { container } = render(
<ChakraProvider>
<ComponentToBeTested />
</ChakraProvider>
);
https://stackoverflow.com/questions/72899832
复制相似问题