import { mount } from "enzyme";
import * as React from "react";
import { builder } from "ts-url-pattern";
import { route, Router } from "./index";
class NumPage extends React.PureComponent<{ spam: number, eggs: number }, never> {
public render() {
return
num: {this.props.spam} extra: {this.props.eggs}
;
}
}
const StrPage: React.SFC<{ bar: string }> = (props) => {
return str: {props.bar}
;
};
const NotFound: React.SFC = () => {
return not found
;
};
describe("Router", () => {
it("should", () => {
const numRoute = builder.raw("foo").num("spam");
const strRoute = builder.raw("foo").str("bar");
function router(url: string) {
return (
{[
route(numRoute, { eggs: 20 }, React.createFactory(NumPage)),
route(strRoute, {}, React.createFactory(StrPage)),
]}
);
}
expect(mount(router("/")).text()).toBe("not found");
expect(mount(router("/foo/string")).text()).toBe("str: string");
expect(mount(router("/foo/10")).text()).toBe("num: 10 extra: 20");
});
});