Source code
Revision control
Copy as Markdown
Other Tools
/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Unit tests for the IssueItem component.
*/
const { shallow } = require("enzyme");
const React = require("react");
const {
COMPATIBILITY_ISSUE_TYPE,
} = require("resource://devtools/shared/constants.js");
const IssueItem = React.createFactory(
require("resource://devtools/client/inspector/compatibility/components/IssueItem.js")
);
describe("IssueItem component", () => {
it("renders an unsupported issue of CSS property", () => {
const targetComponent = shallow(
IssueItem({
type: COMPATIBILITY_ISSUE_TYPE.CSS_PROPERTY,
property: "test-property",
url: "test-url",
deprecated: false,
experimental: false,
prefixNeeded: false,
unsupportedBrowsers: [
{ id: "firefox", name: "Firefox", version: "70", status: "nightly" },
],
})
);
expect(targetComponent).toMatchSnapshot();
});
it("renders a deprecated issue of CSS property", () => {
const targetComponent = shallow(
IssueItem({
type: COMPATIBILITY_ISSUE_TYPE.CSS_PROPERTY,
property: "test-property",
url: "test-url",
deprecated: true,
experimental: false,
prefixNeeded: false,
unsupportedBrowsers: [],
})
);
expect(targetComponent).toMatchSnapshot();
});
it("renders an experimental issue of CSS property", () => {
const targetComponent = shallow(
IssueItem({
type: COMPATIBILITY_ISSUE_TYPE.CSS_PROPERTY,
property: "test-property",
url: "test-url",
deprecated: false,
experimental: true,
prefixNeeded: false,
unsupportedBrowsers: [],
})
);
expect(targetComponent).toMatchSnapshot();
});
it("renders a prefixNeeded issue of CSS property", () => {
const targetComponent = shallow(
IssueItem({
type: COMPATIBILITY_ISSUE_TYPE.CSS_PROPERTY,
property: "test-property",
url: "test-url",
aliases: ["test-alias-1", "test-alias-2"],
deprecated: false,
experimental: false,
prefixNeeded: true,
unsupportedBrowsers: [],
})
);
expect(targetComponent).toMatchSnapshot();
});
it("renders an issue which has deprecated and experimental", () => {
const targetComponent = shallow(
IssueItem({
type: COMPATIBILITY_ISSUE_TYPE.CSS_PROPERTY,
property: "test-property",
url: "test-url",
aliases: ["test-alias-1", "test-alias-2"],
deprecated: true,
experimental: true,
prefixNeeded: false,
unsupportedBrowsers: [],
})
);
expect(targetComponent).toMatchSnapshot();
});
it("renders an issue which has deprecated and prefixNeeded", () => {
const targetComponent = shallow(
IssueItem({
type: COMPATIBILITY_ISSUE_TYPE.CSS_PROPERTY,
property: "test-property",
url: "test-url",
aliases: ["test-alias-1", "test-alias-2"],
deprecated: true,
experimental: false,
prefixNeeded: true,
unsupportedBrowsers: [],
})
);
expect(targetComponent).toMatchSnapshot();
});
it("renders an issue which has experimental and prefixNeeded", () => {
const targetComponent = shallow(
IssueItem({
type: COMPATIBILITY_ISSUE_TYPE.CSS_PROPERTY,
property: "test-property",
url: "test-url",
aliases: ["test-alias-1", "test-alias-2"],
deprecated: false,
experimental: true,
prefixNeeded: true,
unsupportedBrowsers: [],
})
);
expect(targetComponent).toMatchSnapshot();
});
it("renders an issue which has deprecated, experimental and prefixNeeded", () => {
const targetComponent = shallow(
IssueItem({
type: COMPATIBILITY_ISSUE_TYPE.CSS_PROPERTY,
property: "test-property",
url: "test-url",
aliases: ["test-alias-1", "test-alias-2"],
deprecated: true,
experimental: true,
prefixNeeded: true,
unsupportedBrowsers: [],
})
);
expect(targetComponent).toMatchSnapshot();
});
it("renders an issue which has nodes that caused this issue", () => {
const targetComponent = shallow(
IssueItem({
type: COMPATIBILITY_ISSUE_TYPE.CSS_PROPERTY,
property: "test-property",
url: "test-url",
unsupportedBrowsers: [],
nodes: [
{
actorID: "test-actor",
attributes: [],
nodeName: "test-element",
nodeType: 1,
},
],
})
);
expect(targetComponent).toMatchSnapshot();
});
});