opds-web-client
Version:
75 lines (74 loc) • 2.58 kB
JavaScript
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);
});
});
;