opds-web-client
Version:
55 lines (54 loc) • 2.33 kB
JavaScript
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
jest.autoMockOff();
var React = require("react");
var enzyme_1 = require("enzyme");
var CatalogLink_1 = require("../CatalogLink");
var react_router_1 = require("react-router");
var routing_1 = require("./routing");
describe("CatalogLink", function () {
it("renders Link with location and props and context", function () {
var props = {
className: "test-class",
id: "test-id",
target: "_blank",
collectionUrl: "test collection",
bookUrl: "test book"
};
var context = routing_1.mockRouterContext();
var location = context.pathFor(props.collectionUrl, props.bookUrl);
var linkProps = Object.assign({}, react_router_1.Link.defaultProps, props, { to: location });
delete linkProps["collectionUrl"];
delete linkProps["bookUrl"];
var requiredRouterKeys = [
"push", "createHref", "isActive", "replace",
"go", "goBack", "goForward", "setRouteLeaveHook"
];
var wrapper = enzyme_1.shallow(React.createElement(CatalogLink_1.default, __assign({}, props)), { context: context });
var link = wrapper.find(react_router_1.Link);
var instance = wrapper.instance();
var linkContextRouterKeys = Object.keys(instance.getChildContext().router);
expect(link.props()).toEqual(linkProps);
expect(linkContextRouterKeys).toEqual(requiredRouterKeys);
});
it("passes children to Link", function () {
var props = {
className: "test-class",
id: "test-id",
target: "_blank",
collectionUrl: "test collection",
bookUrl: "test book"
};
var context = routing_1.mockRouterContext();
var wrapper = enzyme_1.shallow(React.createElement(CatalogLink_1.default, __assign({}, props), React.createElement("div", {className: "child"})), { context: context });
var child = wrapper.children().first();
expect(child.hasClass("child")).toBe(true);
});
});
;