summaryrefslogtreecommitdiffstats
path: root/browser/components/newtab/test/unit/content-src/components/DiscoveryStreamComponents/DSDismiss.test.jsx
blob: 2f7e206b4f7d2f841a863452777a5be8247bf7d7 (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
import { DSDismiss } from "content-src/components/DiscoveryStreamComponents/DSDismiss/DSDismiss";
import React from "react";
import { shallow } from "enzyme";

describe("<DSDismiss>", () => {
  const fakeSpoc = {
    url: "https://foo.com",
    guid: "1234",
  };
  let wrapper;
  let sandbox;
  let onDismissClickStub;

  beforeEach(() => {
    sandbox = sinon.createSandbox();
    onDismissClickStub = sandbox.stub();
    wrapper = shallow(
      <DSDismiss
        data={fakeSpoc}
        onDismissClick={onDismissClickStub}
        shouldSendImpressionStats={true}
      />
    );
  });

  afterEach(() => {
    sandbox.restore();
  });

  it("should render", () => {
    assert.ok(wrapper.exists());
    assert.ok(wrapper.find(".ds-dismiss").exists());
  });

  it("should render proper hover state", () => {
    wrapper.instance().onHover();
    assert.ok(wrapper.find(".hovering").exists());
    wrapper.instance().offHover();
    assert.ok(!wrapper.find(".hovering").exists());
  });

  it("should dispatch call onDismissClick", () => {
    wrapper.instance().onDismissClick();
    assert.calledOnce(onDismissClickStub);
  });

  it("should add extra classes", () => {
    wrapper = shallow(<DSDismiss extraClasses="extra-class" />);
    assert.ok(wrapper.find(".extra-class").exists());
  });
});