fix(tests): don't fail tests on react 16.9.0 deprecation warnings

There's a lot of 3rd party components using deprecated methods so there's a lot of warnings, and currently this is failing all tests.
Ignore these for now as we need to wait for components to be fixed
This commit is contained in:
Łukasz Mierzwa
2019-08-09 19:36:27 +01:00
parent a5f27ef020
commit bbee4fce0d
2 changed files with 18 additions and 1 deletions

View File

@@ -38,4 +38,17 @@ describe("console", () => {
console.warn();
}).toThrowError("message=undefined args=");
});
it("console.warn() with React deprecation warning doesn't throw any error", () => {
// https://reactjs.org/blog/2019/08/08/react-v16.9.0.html#new-deprecations
const msg = [
"Warning: componentWillMount has been renamed, and is not recommended for use. See https://fb.me/react-async-component-lifecycle-hooks for details.",
"* Move code with side effects to componentDidMount, and set initial state in the constructor.",
"* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 17.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.",
"Please update the following components: foo"
].join("\n");
expect(() => {
console.warn(msg);
}).not.toThrow();
});
});

View File

@@ -16,7 +16,11 @@ global.fetch = require("jest-fetch-mock");
// ensure that all console messages throw errors
for (const level of ["error", "warn", "info", "log", "trace"]) {
// https://reactjs.org/blog/2019/08/08/react-v16.9.0.html#new-deprecations
const reactDeprecationWarning = /.*has been renamed, and is not recommended for use\. See https:\/\/fb.me\/react-async-component-lifecycle-hooks for details.*/;
global.console[level] = (message, ...args) => {
throw new Error(`message=${message} args=${args}`);
if (reactDeprecationWarning.test(message) === false) {
throw new Error(`message=${message} args=${args}`);
}
};
}