diff --git a/package-lock.json b/package-lock.json
index e4abac9..bdd2477 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,9 +23,9 @@
"@commitlint/cli": "^13.1.0",
"@commitlint/config-conventional": "^13.1.0",
"@testing-library/jest-dom": "^5.14.1",
- "@testing-library/react": "^12.0.0",
+ "@testing-library/react": "^13.2.0",
"@types/jest": "^27.0.1",
- "@types/react": "^17.0.20",
+ "@types/react": "^18.0.9",
"@typescript-eslint/eslint-plugin": "^4.31.0",
"@typescript-eslint/parser": "^4.31.0",
"babel-jest": "^27.1.0",
@@ -38,8 +38,8 @@
"lint-staged": "^11.1.2",
"npm-run-all": "^4.1.5",
"prettier": "^2.3.2",
- "react": "^17.0.2",
- "react-dom": "^17.0.2",
+ "react": "^18.1.0",
+ "react-dom": "^18.1.0",
"standard-version": "^9.3.1",
"typescript": "^4.4.2"
},
@@ -3806,17 +3806,17 @@
}
},
"node_modules/@testing-library/dom": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.2.0.tgz",
- "integrity": "sha512-U8cTWENQPHO3QHvxBdfltJ+wC78ytMdg69ASvIdkGdQ/XRg4M9H2vvM3mHddxl+w/fM6NNqzGMwpQoh82v9VIA==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.13.0.tgz",
+ "integrity": "sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.10.4",
"@babel/runtime": "^7.12.5",
"@types/aria-query": "^4.2.0",
- "aria-query": "^4.2.2",
+ "aria-query": "^5.0.0",
"chalk": "^4.1.0",
- "dom-accessibility-api": "^0.5.6",
+ "dom-accessibility-api": "^0.5.9",
"lz-string": "^1.4.4",
"pretty-format": "^27.0.2"
},
@@ -3824,6 +3824,15 @@
"node": ">=12"
}
},
+ "node_modules/@testing-library/dom/node_modules/aria-query": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
+ "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
"node_modules/@testing-library/jest-dom": {
"version": "5.14.1",
"resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.14.1.tgz",
@@ -3914,20 +3923,21 @@
}
},
"node_modules/@testing-library/react": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.0.0.tgz",
- "integrity": "sha512-sh3jhFgEshFyJ/0IxGltRhwZv2kFKfJ3fN1vTZ6hhMXzz9ZbbcTgmDYM4e+zJv+oiVKKEWZPyqPAh4MQBI65gA==",
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.2.0.tgz",
+ "integrity": "sha512-Bprbz/SZVONCJy5f7hcihNCv313IJXdYiv0nSJklIs1SQCIHHNlnGNkosSXnGZTmesyGIcBGNppYhXcc11pb7g==",
"dev": true,
"dependencies": {
"@babel/runtime": "^7.12.5",
- "@testing-library/dom": "^8.0.0"
+ "@testing-library/dom": "^8.5.0",
+ "@types/react-dom": "^18.0.0"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
- "react": "*",
- "react-dom": "*"
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
}
},
"node_modules/@tootallnate/once": {
@@ -4078,9 +4088,9 @@
"dev": true
},
"node_modules/@types/react": {
- "version": "17.0.20",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.20.tgz",
- "integrity": "sha512-wWZrPlihslrPpcKyCSlmIlruakxr57/buQN1RjlIeaaTWDLtJkTtRW429MoQJergvVKc4IWBpRhWw7YNh/7GVA==",
+ "version": "18.0.9",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
+ "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
"dev": true,
"dependencies": {
"@types/prop-types": "*",
@@ -4088,6 +4098,15 @@
"csstype": "^3.0.2"
}
},
+ "node_modules/@types/react-dom": {
+ "version": "18.0.5",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz",
+ "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==",
+ "dev": true,
+ "dependencies": {
+ "@types/react": "*"
+ }
+ },
"node_modules/@types/scheduler": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
@@ -7173,9 +7192,9 @@
}
},
"node_modules/dom-accessibility-api": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.7.tgz",
- "integrity": "sha512-ml3lJIq9YjUfM9TUnEPvEYWFSwivwIGBPKpewX7tii7fwCazA8yCioGdqQcNsItPpfFvSJ3VIdMQPj60LJhcQA==",
+ "version": "0.5.14",
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz",
+ "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==",
"dev": true
},
"node_modules/domexception": {
@@ -14112,15 +14131,6 @@
"integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==",
"dev": true
},
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/object-copy": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
@@ -14620,30 +14630,28 @@
}
},
"node_modules/react": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
- "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "version": "18.1.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz",
+ "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==",
"dev": true,
"dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "loose-envify": "^1.1.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-dom": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
- "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "version": "18.1.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz",
+ "integrity": "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==",
"dev": true,
"dependencies": {
"loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "scheduler": "^0.20.2"
+ "scheduler": "^0.22.0"
},
"peerDependencies": {
- "react": "17.0.2"
+ "react": "^18.1.0"
}
},
"node_modules/react-is": {
@@ -15085,13 +15093,12 @@
}
},
"node_modules/scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz",
+ "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==",
"dev": true,
"dependencies": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "loose-envify": "^1.1.0"
}
},
"node_modules/semver": {
@@ -19761,19 +19768,27 @@
}
},
"@testing-library/dom": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.2.0.tgz",
- "integrity": "sha512-U8cTWENQPHO3QHvxBdfltJ+wC78ytMdg69ASvIdkGdQ/XRg4M9H2vvM3mHddxl+w/fM6NNqzGMwpQoh82v9VIA==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.13.0.tgz",
+ "integrity": "sha512-9VHgfIatKNXQNaZTtLnalIy0jNZzY35a4S3oi08YAt9Hv1VsfZ/DfA45lM8D/UhtHBGJ4/lGwp0PZkVndRkoOQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.10.4",
"@babel/runtime": "^7.12.5",
"@types/aria-query": "^4.2.0",
- "aria-query": "^4.2.2",
+ "aria-query": "^5.0.0",
"chalk": "^4.1.0",
- "dom-accessibility-api": "^0.5.6",
+ "dom-accessibility-api": "^0.5.9",
"lz-string": "^1.4.4",
"pretty-format": "^27.0.2"
+ },
+ "dependencies": {
+ "aria-query": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
+ "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==",
+ "dev": true
+ }
}
},
"@testing-library/jest-dom": {
@@ -19845,13 +19860,14 @@
}
},
"@testing-library/react": {
- "version": "12.0.0",
- "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.0.0.tgz",
- "integrity": "sha512-sh3jhFgEshFyJ/0IxGltRhwZv2kFKfJ3fN1vTZ6hhMXzz9ZbbcTgmDYM4e+zJv+oiVKKEWZPyqPAh4MQBI65gA==",
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.2.0.tgz",
+ "integrity": "sha512-Bprbz/SZVONCJy5f7hcihNCv313IJXdYiv0nSJklIs1SQCIHHNlnGNkosSXnGZTmesyGIcBGNppYhXcc11pb7g==",
"dev": true,
"requires": {
"@babel/runtime": "^7.12.5",
- "@testing-library/dom": "^8.0.0"
+ "@testing-library/dom": "^8.5.0",
+ "@types/react-dom": "^18.0.0"
}
},
"@tootallnate/once": {
@@ -19999,9 +20015,9 @@
"dev": true
},
"@types/react": {
- "version": "17.0.20",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.20.tgz",
- "integrity": "sha512-wWZrPlihslrPpcKyCSlmIlruakxr57/buQN1RjlIeaaTWDLtJkTtRW429MoQJergvVKc4IWBpRhWw7YNh/7GVA==",
+ "version": "18.0.9",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.9.tgz",
+ "integrity": "sha512-9bjbg1hJHUm4De19L1cHiW0Jvx3geel6Qczhjd0qY5VKVE2X5+x77YxAepuCwVh4vrgZJdgEJw48zrhRIeF4Nw==",
"dev": true,
"requires": {
"@types/prop-types": "*",
@@ -20009,6 +20025,15 @@
"csstype": "^3.0.2"
}
},
+ "@types/react-dom": {
+ "version": "18.0.5",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.5.tgz",
+ "integrity": "sha512-OWPWTUrY/NIrjsAPkAk1wW9LZeIjSvkXRhclsFO8CZcZGCOg2G0YZy4ft+rOyYxy8B7ui5iZzi9OkDebZ7/QSA==",
+ "dev": true,
+ "requires": {
+ "@types/react": "*"
+ }
+ },
"@types/scheduler": {
"version": "0.16.2",
"resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
@@ -22409,9 +22434,9 @@
}
},
"dom-accessibility-api": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.7.tgz",
- "integrity": "sha512-ml3lJIq9YjUfM9TUnEPvEYWFSwivwIGBPKpewX7tii7fwCazA8yCioGdqQcNsItPpfFvSJ3VIdMQPj60LJhcQA==",
+ "version": "0.5.14",
+ "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz",
+ "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==",
"dev": true
},
"domexception": {
@@ -27716,12 +27741,6 @@
"integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==",
"dev": true
},
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
- },
"object-copy": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
@@ -28075,24 +28094,22 @@
"dev": true
},
"react": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
- "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "version": "18.1.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.1.0.tgz",
+ "integrity": "sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==",
"dev": true,
"requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "loose-envify": "^1.1.0"
}
},
"react-dom": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
- "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "version": "18.1.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.1.0.tgz",
+ "integrity": "sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==",
"dev": true,
"requires": {
"loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "scheduler": "^0.20.2"
+ "scheduler": "^0.22.0"
}
},
"react-is": {
@@ -28431,13 +28448,12 @@
}
},
"scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "version": "0.22.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.22.0.tgz",
+ "integrity": "sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==",
"dev": true,
"requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "loose-envify": "^1.1.0"
}
},
"semver": {
diff --git a/package.json b/package.json
index 5427a17..c809423 100644
--- a/package.json
+++ b/package.json
@@ -48,9 +48,9 @@
"@commitlint/cli": "^13.1.0",
"@commitlint/config-conventional": "^13.1.0",
"@testing-library/jest-dom": "^5.14.1",
- "@testing-library/react": "^12.0.0",
+ "@testing-library/react": "^13.2.0",
"@types/jest": "^27.0.1",
- "@types/react": "^17.0.20",
+ "@types/react": "^18.0.9",
"@typescript-eslint/eslint-plugin": "^4.31.0",
"@typescript-eslint/parser": "^4.31.0",
"babel-jest": "^27.1.0",
@@ -63,8 +63,8 @@
"lint-staged": "^11.1.2",
"npm-run-all": "^4.1.5",
"prettier": "^2.3.2",
- "react": "^17.0.2",
- "react-dom": "^17.0.2",
+ "react": "^18.1.0",
+ "react-dom": "^18.1.0",
"standard-version": "^9.3.1",
"typescript": "^4.4.2"
},
diff --git a/src/react/components/Link.test.tsx b/src/react/components/Link.test.tsx
index 33e67d0..4dc1c67 100644
--- a/src/react/components/Link.test.tsx
+++ b/src/react/components/Link.test.tsx
@@ -2,7 +2,7 @@ import { createMemoryHistory } from "history";
import React from "react";
import { useRoutes } from "../hooks/useRoutes";
import { Path, SingleHash } from "../shorthand";
-import { renderInHistory, screen } from "../test-utils";
+import { fireEvent, renderInHistory, screen } from "../test-utils";
import { Link } from "./Link";
describe("Link", () => {
@@ -33,7 +33,7 @@ describe("Link", () => {
renderInHistory(history, );
expect(screen.queryByText("I AM BAR")).toBeNull();
expect(history.index).toBe(0);
- screen.queryByTestId("link")?.click();
+ fireEvent.click(screen.queryByTestId("link")!);
expect(screen.queryByText("I AM BAR")).toBeInTheDocument();
expect(history.index).toBe(1);
expect(history.location).toMatchObject({
@@ -162,7 +162,7 @@ describe("Link", () => {
renderInHistory(history, );
expect(screen.queryByText("I AM BAR")).toBeInTheDocument();
expect(screen.queryByTestId("link")?.getAttribute("href")).toBe("/foo/bar");
- screen.queryByTestId("link")?.click();
+ fireEvent.click(screen.queryByTestId("link")!);
expect(history.location).toMatchObject({
pathname: "/foo/bar",
state: null,
diff --git a/src/react/components/RoconRoot.tsx b/src/react/components/RoconRoot.tsx
index 4cc9836..431eb7b 100644
--- a/src/react/components/RoconRoot.tsx
+++ b/src/react/components/RoconRoot.tsx
@@ -5,6 +5,7 @@ import { LocationContext } from "../contexts/LocationContext";
export type RoconRootProps = {
history?: History;
+ children?: React.ReactNode;
};
export const RoconRoot: React.FC = memo((props) => {
diff --git a/src/react/hooks/useNavigate.test.tsx b/src/react/hooks/useNavigate.test.tsx
index 0bd1e61..f327af9 100644
--- a/src/react/hooks/useNavigate.test.tsx
+++ b/src/react/hooks/useNavigate.test.tsx
@@ -1,7 +1,7 @@
import { createMemoryHistory } from "history";
import React from "react";
import { Path, SingleHash } from "../shorthand";
-import { renderInHistory, screen } from "../test-utils";
+import { fireEvent, renderInHistory, screen } from "../test-utils";
import { useNavigate } from "./useNavigate";
import { useRoutes } from "./useRoutes";
@@ -34,7 +34,7 @@ describe("useNavigate", () => {
renderInHistory(history, );
expect(screen.queryByText("I AM BAR")).toBeNull();
expect(history.index).toBe(0);
- screen.queryByTestId("button")?.click();
+ fireEvent.click(screen.queryByTestId("button")!);
expect(screen.queryByText("I AM BAR")).toBeInTheDocument();
expect(history.index).toBe(1);
expect(history.location).toMatchObject({
@@ -73,7 +73,7 @@ describe("useNavigate", () => {
renderInHistory(history, );
expect(screen.queryByText("I AM BAR")).toBeNull();
expect(history.index).toBe(0);
- screen.queryByTestId("button")?.click();
+ fireEvent.click(screen.queryByTestId("button")!);
expect(screen.queryByText("I AM BAR")).toBeInTheDocument();
expect(history.index).toBe(1);
expect(history.location).toMatchObject({
@@ -112,7 +112,7 @@ describe("useNavigate", () => {
renderInHistory(history, );
expect(screen.queryByText("I AM BAR")).toBeNull();
expect(history.index).toBe(0);
- screen.queryByTestId("button")?.click();
+ fireEvent.click(screen.queryByTestId("button")!);
expect(screen.queryByText("I AM BAR")).toBeInTheDocument();
expect(history.index).toBe(0);
expect(history.location).toMatchObject({
@@ -152,7 +152,7 @@ describe("useNavigate", () => {
renderInHistory(history, );
expect(screen.queryByText("I AM BAR")).toBeNull();
expect(history.index).toBe(0);
- screen.queryByTestId("button")?.click();
+ fireEvent.click(screen.queryByTestId("button")!);
expect(screen.queryByText("I AM BAR")).toBeInTheDocument();
expect(history.index).toBe(1);
expect(history.location).toMatchObject({
diff --git a/src/react/hooks/useRoutes.test.tsx b/src/react/hooks/useRoutes.test.tsx
index da9e7b7..515e160 100644
--- a/src/react/hooks/useRoutes.test.tsx
+++ b/src/react/hooks/useRoutes.test.tsx
@@ -4,12 +4,12 @@ import {
LocationNotFoundError,
} from "../errors/LocationNotFoundError";
import { Path } from "../shorthand";
-import { renderInLocation, screen } from "../test-utils";
+import { fireEvent, renderInLocation, screen } from "../test-utils";
import { useNavigate } from "./useNavigate";
import { useRoutes } from "./useRoutes";
class LocationNotFoundErrorBoundary extends React.Component<
- {},
+ {children: React.ReactNode},
{
error?: LocationNotFoundError;
}
@@ -198,7 +198,7 @@ describe("useRoutes", () => {
);
expect(screen.queryByText("I am foo")).toBeInTheDocument();
expect(screen.queryByText("hogehoge")).toBeInTheDocument();
- screen.queryByTestId("fugaButton")?.click();
+ fireEvent.click(screen.queryByTestId("fugaButton")!);
expect(screen.queryByText("I am foo")).toBeInTheDocument();
expect(screen.queryByText("fugafuga")).toBeInTheDocument();
});
@@ -206,8 +206,8 @@ describe("useRoutes", () => {
describe("React Component as action", () => {
it("1", () => {
const FooComponent = () => {
- const loc = useState("foo");
- return I am {loc}
;
+ const [loc, _] = useState("foo");
+ return {`I am ${loc}`}
;
};
const location = {
pathname: "/foo",
diff --git a/src/react/hooks/useRoutes.tsx b/src/react/hooks/useRoutes.tsx
index 069584c..5615ad2 100644
--- a/src/react/hooks/useRoutes.tsx
+++ b/src/react/hooks/useRoutes.tsx
@@ -41,7 +41,7 @@ export const useRoutes = (builder: ReactRouteBuilder): ReactElement | null => {
const result = React.createElement(
resolved.route.action,
resolved.match as never
- );
+ ) as unknown as React.ReactNode;
const routeContextValue = {
route: resolved.route,
ancestorRoutes,