如何在 React 组件的 Jest 测试中模拟 MUI5 Pro 许可证密钥

问题描述 投票:0回答:1

我目前正在将 MUI v5 Pro 组件集成到我的 React 库中,然后将这些库组件导入到我的主机应用程序中。我已在库和主机应用程序的

.env
文件中设置了 MUI 许可证密钥,并且我正在导入必要的组件,如下所示:

import { LicenseInfo } from "@mui/x-license-pro";

LicenseInfo.setLicenseKey(import.meta.env.VITE_REACT_APP__MUI_KEY || "");

但是,当我执行 Jest 和 React 库测试时,我遇到了“缺少许可证密钥”问题,即使在 .env 文件中正确设置了密钥。

console.error
    *************************************************************
    
    MUI: Missing license key.
    
    The license key is missing. You might not be allowed to use `@mui/x-date-pickers-pro` which is part of MUI X Pro.
    
    To solve the issue, you can check the free trial conditions: https://mui.com/r/x-license-trial.
    If you are eligible no actions are required. If you are not eligible to the free trial, you need to purchase a license https://mui.com/r/x-get-license or stop using the software immediately.
    
    *************************************************************

让事情变得复杂的是,并非我们团队中的每个开发人员都可以访问此许可证密钥——主要是前端开发人员。因此,我想确保测试在每台本地计算机上通过,无论开发人员是否设置了许可证密钥。

有没有办法仅在 Jest 和 React 库测试期间模拟或绕过许可证检查,确保它们无需密钥即可执行?

reactjs jestjs material-ui vite mui-x
1个回答
0
投票

如果您有笑话设置文件,您可以模拟 MUI 许可证返回。这应该可以消除使用 jest 测试时显示的控制台错误:

jest.mock('@mui/x-license-pro', () => ({
    ...jest.requireActual('@mui/x-license-pro'),
    useLicenseVerifier: () => 'Valid',
    Watermark: () => null,
})):

或者,如果您不需要在所有测试中模拟它,则在测试套件的

beforeAll(() => {})
中模拟它也可以工作

© www.soinside.com 2019 - 2024. All rights reserved.