UNPKG

opds-web-client

Version:
57 lines (56 loc) 2.23 kB
"use strict"; jest.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]); }); });