Вот мой код (очень простая c установка). Все файлы находятся в одной папке.
Я использую create-react-app
.
User.tsx:
import React from "react";
import styles from "./User.module.scss";
const User: React.FC = () => {
return <div className={styles.user}>User</div>;
};
export default User;
User.module .s css:
@import "scss/abstracts";
.user {
color: $dark_theme_color;
}
User.test.tsx:
import React from "react";
import { render, getByText } from "@testing-library/react";
import User from "./User";
it("renders correctly", () => {
const { asFragment } = render(<User />);
const fragmentElement = asFragment().firstChild as HTMLElement;
const root = getByText(fragmentElement, "User");
expect(root).not.toBe(null);
expect(root).toMatchSnapshot();
});
При запуске jest
я получаю эту ошибку:
FAIL src/pages/User/User.test.tsx
● Test suite failed to run
src/pages/User/User.tsx:2:20 - error TS2307: Cannot find module './User.module.scss'.
2 import styles from "./User.module.scss";
jest.config. js:
module.exports = {
roots: ["<rootDir>/src"],
transform: {
"^.+\\.tsx?$": "ts-jest"
},
setupFilesAfterEnv: [
"@testing-library/react/cleanup-after-each",
"@testing-library/jest-dom/extend-expect"
],
testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
moduleNameMapper: {
"^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
}
};
Я пробовал почти все решения из первых 2 страниц результатов поиска Google, например:
- используя
__mocks__/styleMock.js
jest.mock("./User.module.scss")
jest-transform-css
jest-css-modules-transform
jest-css-modules
import * as styles from "./User.module.scss";
- добавлено
declare module "*.scss";
дюйм globals.d.ts
но ничего не работает.
Пожалуйста, помогите.