mirror of
https://github.com/wassname/Open-Assistant.git
synced 2026-06-27 16:10:30 +08:00
Fix jest unit test (#1495)
* Fix jest tests by mocking i18n, and prevent future such breakages by making warns and errors fatal * Delete src/setupTests.js - this is a create-react-app only file that is not used here. Setup is done in jest.setup.js
This commit is contained in:
@@ -1,2 +1,36 @@
|
||||
// jest.setup.js
|
||||
import "@testing-library/jest-dom/extend-expect";
|
||||
|
||||
const CONSOLE_FAIL_TYPES = ["error", "warn"];
|
||||
|
||||
// Throw errors when a `console.error` or `console.warn` happens
|
||||
// by overriding the functions.
|
||||
// If the warning/error is intentional, then catch it and expect for it, like:
|
||||
//
|
||||
// jest.spyOn(console, 'warn').mockImplementation();
|
||||
// ...
|
||||
// expect(console.warn).toHaveBeenCalledWith(expect.stringContaining('Empty titles are deprecated.'));
|
||||
CONSOLE_FAIL_TYPES.forEach((type) => {
|
||||
const orig_f = console[type];
|
||||
console[type] = (...message) => {
|
||||
orig_f(...message);
|
||||
throw new Error(`Failing due to console.${type} while running test!\n\n${message.join(" ")}`);
|
||||
};
|
||||
});
|
||||
|
||||
// Mock out useTranslation hook as per https://react.i18next.com/misc/testing
|
||||
jest.mock("react-i18next", () => ({
|
||||
// this mock makes sure any components using the translate hook can use it without a warning being shown
|
||||
useTranslation: () => {
|
||||
return {
|
||||
t: (str) => str,
|
||||
i18n: {
|
||||
changeLanguage: () => new Promise(() => {}),
|
||||
},
|
||||
};
|
||||
},
|
||||
initReactI18next: {
|
||||
type: "3rdParty",
|
||||
init: () => {},
|
||||
},
|
||||
}));
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
||||
// allows you to do things like:
|
||||
// expect(element).toHaveTextContent(/react/i)
|
||||
// learn more: https://github.com/testing-library/jest-dom
|
||||
import "@testing-library/jest-dom";
|
||||
Reference in New Issue
Block a user