1
0
Fork 0
firefox/browser/components/aboutwelcome/tests/unit/LinkParagraph.test.jsx
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

100 lines
2.7 KiB
JavaScript

import React from "react";
import { mount } from "enzyme";
import { LinkParagraph } from "content-src/components/LinkParagraph";
describe("LinkParagraph component", () => {
let sandbox;
let wrapper;
let handleAction;
beforeEach(() => {
sandbox = sinon.createSandbox();
handleAction = sandbox.stub();
wrapper = mount(
<LinkParagraph
text_content={{
text: {
string_id: "test-string-id",
},
link_keys: ["privacy_policy"],
font_styles: "legal",
}}
handleAction={handleAction}
/>
);
});
afterEach(() => {
sandbox.restore();
});
it("should render LinkParagraph component", () => {
assert.ok(wrapper.exists());
});
it("should render copy with legal style if legal is passed to font_styles", () => {
assert.strictEqual(wrapper.find(".legal-paragraph").length, 1);
});
it("should render one link when only one link id is passed", () => {
assert.strictEqual(wrapper.find(".legal-paragraph a").length, 1);
});
it("should call handleAction method when link is clicked", () => {
const linkEl = wrapper.find(".legal-paragraph a");
linkEl.simulate("click");
assert.calledOnce(handleAction);
});
it("should render two links if an additional link id is passed", () => {
wrapper.setProps({
text_content: {
text: {
string_id: "test-string-id",
},
link_keys: ["privacy_policy", "terms_of_use"],
font_styles: "legal",
},
});
assert.strictEqual(wrapper.find(".legal-paragraph a").length, 2);
});
it("should render no links when no link id is passed", () => {
wrapper.setProps({
text_content: { links: null },
});
assert.strictEqual(wrapper.find(".legal-paragraph a").length, 0);
});
it("should render copy even when no link id is passed", () => {
wrapper.setProps({
text_content: { links: null },
});
assert.ok(wrapper.find(".legal-paragraph"));
});
it("should not render LinkParagraph component if text is not passed", () => {
wrapper.setProps({ text_content: { text: null } });
assert.ok(wrapper.isEmptyRender());
});
it("should render copy in link style if no font style is passed", () => {
wrapper.setProps({
text_content: {
text: {
string_id: "test-string-id",
},
link_keys: ["learn_more"],
},
});
assert.strictEqual(wrapper.find(".link-paragraph").length, 1);
});
it("should not render links if string_id is not provided", () => {
wrapper.setProps({
text_content: { text: { string_id: null } },
});
assert.strictEqual(wrapper.find(".link-paragraph a").length, 0);
});
});