UNPKG

opds-web-client

Version:
75 lines (74 loc) 2.58 kB
"use strict"; var chai_1 = require("chai"); var loans_1 = require("../loans"); var DataFetcher_1 = require("../../DataFetcher"); var actions_1 = require("../../actions"); var OPDSDataAdapter_1 = require("../../OPDSDataAdapter"); var fetcher = new DataFetcher_1.default({ adapter: OPDSDataAdapter_1.adapter }); var actions = new actions_1.default(fetcher); var collectionData = { url: "collection url", title: "title", id: "id", books: [], lanes: [], navigationLinks: [], shelfUrl: "loans url" }; var loansData = [{ id: "book id", url: "book url", title: "book title" }]; describe("loans reducer", function () { var initState = { url: null, books: [] }; it("returns the initial state", function () { chai_1.expect(loans_1.default(undefined, {})).to.deep.equal(initState); }); it("handles LOAD_COLLECTION", function () { var action = actions.loadCollection(collectionData); var newState = Object.assign({}, initState, { url: "loans url" }); chai_1.expect(loans_1.default(initState, action)).to.deep.equal(newState); }); it("handles LOAD_COLLECTION for loans feed", function () { var oldState = Object.assign({}, initState, { url: "loans url" }); var loansCollectionData = Object.assign({}, collectionData, { books: loansData }); var action = actions.loadCollection(loansCollectionData, "loans url"); var newState = Object.assign({}, oldState, { books: loansData }); chai_1.expect(loans_1.default(oldState, action)).to.deep.equal(newState); }); it("handles LOAD_LOANS", function () { var oldState = Object.assign({}, initState, { url: "loans url" }); var action = actions.loadLoans(loansData); var newState = Object.assign({}, oldState, { books: loansData }); chai_1.expect(loans_1.default(oldState, action)).to.deep.equal(newState); }); it("clears books on LOAD_UPDATE_BOOK_DATA", function () { var oldState = Object.assign({}, initState, { books: loansData }); var newBookData = { id: "book id", url: "book url", title: "new book title" }; var action = actions.loadUpdateBookData(newBookData); var newState = Object.assign({}, oldState, { books: [] }); chai_1.expect(loans_1.default(oldState, action)).to.deep.equal(newState); }); });