summaryrefslogtreecommitdiffstats
path: root/devtools/client/application/test/node/components/manifest/components_application_panel-Manifest.test.js
blob: 0b554fbdd205b5dcddf9d8227568864608972ee2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

"use strict";

// Import libs
const { shallow } = require("enzyme");
const { createFactory } = require("react");

const Manifest = createFactory(
  require("resource://devtools/client/application/src/components/manifest/Manifest.js")
);

const {
  MANIFEST_COLOR_MEMBERS,
  MANIFEST_ICON_MEMBERS,
  MANIFEST_STRING_MEMBERS,
  MANIFEST_UNKNOWN_TYPE_MEMBERS,
  MANIFEST_URL_MEMBERS,
  MANIFEST_NO_ISSUES,
  MANIFEST_WITH_ISSUES,
} = require("resource://devtools/client/application/test/node/fixtures/data/constants.js");

/*
 * Test for Manifest component
 */

describe("Manifest", () => {
  it("renders the expected snapshot for a manifest with string members", () => {
    const wrapper = shallow(Manifest(MANIFEST_STRING_MEMBERS));
    expect(wrapper).toMatchSnapshot();
  });

  it("renders the expected snapshot for a manifest with color members", () => {
    const wrapper = shallow(Manifest(MANIFEST_COLOR_MEMBERS));
    expect(wrapper).toMatchSnapshot();
  });

  it("renders the expected snapshot for a manifest with unknown types", () => {
    const wrapper = shallow(Manifest(MANIFEST_UNKNOWN_TYPE_MEMBERS));
    expect(wrapper).toMatchSnapshot();
  });

  it("renders the expected snapshot for a manifest with icon members", () => {
    const wrapper = shallow(Manifest(MANIFEST_ICON_MEMBERS));
    expect(wrapper).toMatchSnapshot();
  });

  it("renders the expected snapshot for a manifest with url members", () => {
    const wrapper = shallow(Manifest(MANIFEST_URL_MEMBERS));
    expect(wrapper).toMatchSnapshot();
  });

  it("does render the issues section when the manifest is not valid", () => {
    const wrapper = shallow(Manifest(MANIFEST_WITH_ISSUES));
    expect(wrapper).toMatchSnapshot();

    const sections = wrapper.find("ManifestSection");
    expect(sections).toHaveLength(4);
    expect(sections.get(0).props.title).toBe("manifest-item-warnings");
    expect(sections.find("ManifestIssueList")).toHaveLength(1);
  });

  it("does not render the issues section when the manifest is valid", () => {
    const wrapper = shallow(Manifest(MANIFEST_NO_ISSUES));
    expect(wrapper).toMatchSnapshot();

    const sections = wrapper.find("ManifestSection");
    expect(sections).toHaveLength(3);
    expect(sections.get(0).props.title).not.toBe("manifest-item-warnings");
    expect(sections.find("ManifestIssueList")).toHaveLength(0);
  });
});