opds-web-client
Version:
57 lines (56 loc) • 2.23 kB
JavaScript
autoMockOff();
var React = require("react");
var enzyme_1 = require("enzyme");
var Lane_1 = require("../Lane");
var LaneBook_1 = require("../LaneBook");
var CatalogLink_1 = require("../CatalogLink");
var LaneMoreLink_1 = require("../LaneMoreLink");
var books = [1, 2, 3].map(function (i) {
return {
id: "test book id " + i,
title: "test book title " + i,
authors: [("test author " + i)],
summary: "test summary " + i,
imageUrl: "https://example.com/testimage" + i,
publisher: "test publisher " + i
};
});
var laneData = {
title: "test lane",
books: books,
url: "http://example.com/testlane"
};
describe("Lane", function () {
var wrapper;
beforeEach(function () {
wrapper = enzyme_1.shallow(React.createElement(Lane_1.default, {lane: laneData, collectionUrl: "test collection"}));
});
it("shows the lane title in a CatalogLink", function () {
var titleLink = wrapper.find(CatalogLink_1.default);
expect(titleLink.first().children().get(0)).toBe(laneData.title);
});
it("shows LaneBooks", function () {
var laneBooks = wrapper.find(LaneBook_1.default);
var bookDatas = laneBooks.map(function (book) { return book.props().book; });
var uniqueCollectionUrls = Array.from(new Set(laneBooks.map(function (book) { return book.props().collectionUrl; })));
expect(laneBooks.length).toBe(books.length);
expect(bookDatas).toEqual(books);
expect(uniqueCollectionUrls).toEqual(["test collection"]);
});
it("shows more link", function () {
var moreLink = wrapper.find(LaneMoreLink_1.default);
expect(moreLink.prop("lane")).toBe(laneData);
});
it("hides more link", function () {
wrapper.setProps({ hideMoreLink: true });
var moreLink = wrapper.find(LaneMoreLink_1.default);
expect(moreLink.length).toBe(0);
});
it("hides books by id", function () {
wrapper.setProps({ hiddenBookIds: ["test book id 1"] });
var laneBooks = wrapper.find(LaneBook_1.default);
expect(laneBooks.length).toBe(books.length - 1);
expect(laneBooks.at(0).props().book).toBe(books[1]);
});
});
;
jest.