/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
import React from "react";
import { mount } from "enzyme";
import { Provider } from "react-redux";
import { INITIAL_STATE, reducers } from "common/Reducers.sys.mjs";
import { InterestPicker } from "content-src/components/DiscoveryStreamComponents/InterestPicker/InterestPicker";
import { combineReducers, createStore } from "redux";
function WrapWithProvider({ children, state = INITIAL_STATE }) {
let store = createStore(combineReducers(reducers), state);
return {children};
}
describe("", () => {
const DEFAULT_PROPS = {
title: "Pick your interests",
subtitle: "Choose topics you care about",
receivedFeedRank: 1,
interests: [
{ sectionId: "section-1", title: "Technology", followable: true },
{ sectionId: "section-2", title: "Sports", followable: true },
{ sectionId: "section-3", title: "Hidden", followable: false },
],
};
it("should filter out interests with followable: false", () => {
const wrapper = mount(
);
const items = wrapper.find(".topic-item-label");
assert.equal(items.length, 2);
assert.equal(items.at(0).text(), "Technology");
assert.equal(items.at(1).text(), "Sports");
});
it("should render all interests when all have followable: true", () => {
const wrapper = mount(
);
assert.equal(wrapper.find(".topic-item-label").length, 2);
});
it("should render interests when followable is undefined", () => {
const wrapper = mount(
);
assert.equal(wrapper.find(".topic-item-label").length, 2);
});
it("should render no interests when all have followable: false", () => {
const wrapper = mount(
);
assert.equal(wrapper.find(".topic-item-label").length, 0);
});
});