Files
karma/ui/src/index.test.js
2019-10-23 10:07:43 +01:00

61 lines
2.1 KiB
JavaScript

import { EmptyAPIResponse } from "__mocks__/Fetch";
import { DefaultsBase64 } from "__mocks__/Defaults";
it("renders without crashing", () => {
jest.spyOn(document, "getElementById").mockImplementationOnce(() => {
return {
innerHTML: `<div id="defaults">${DefaultsBase64}</div>`
};
});
const response = EmptyAPIResponse();
response.filters = [];
fetch.mockResponse(JSON.stringify(response));
const Index = require("./index.tsx");
expect(Index).toBeTruthy();
});
describe("console", () => {
it("console.error() throws an error", () => {
expect(() => {
console.error("foo");
}).toThrowError("message=foo args=");
});
it("console.warn() throws an error", () => {
expect(() => {
console.warn("foo", "bar");
}).toThrowError("message=foo args=bar");
});
it("console.info() throws an error", () => {
expect(() => {
console.info("foo", "bar", "abc");
}).toThrowError("message=foo args=bar,abc");
});
it("console.log() throws an error", () => {
expect(() => {
console.log("foo bar");
}).toThrowError("message=foo bar args=");
});
it("console.trace() throws an error", () => {
expect(() => {
console.trace();
}).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();
});
});