next-router-mock
next-router-mock copied to clipboard
Next 13 App Router Support (`next/navigation`)
This PR adds support for Next 13's new App Router. It supplies functional mocks for the hooks in next/navigation
.
TODO
- [x] Implement
useRouter, usePathname, useParams, useSearchParams
hooks - [x] Add unit tests
- [ ] lAdd the App Context Provider to the MemoryRouterProvider, for Storybook
- [x] Implement
useSelectedLayoutSegment, useSelectedLayoutSegments
hooks as noops - [ ] Consider how to implement API for mocking
useSelectedLayoutSegment(s)
- [ ] Consider how to implement mocks for other non-hook utils in
next/navigation
- [ ] Add new entry point,
next-router-mock/navigation
- [ ] Update docs
🦋 Changeset detected
Latest commit: 8021d339464c7d670ca48a48070c766bc214ccba
The changes in this PR will be included in the next version bump.
This PR includes changesets to release 1 package
Name | Type |
---|---|
next-router-mock | Minor |
Not sure what this means? Click here to learn what changesets are.
Click here if you're a maintainer who wants to add another changeset to this PR
Any idea when this might be completed? 😅
👀
Since I was interested in using this library for mocking useRouter
in Next13+, I briefly looked in to get tests passing on a commit if it helps:
https://github.com/scottrippey/next-router-mock/compare/next/navigation...rob2d:next-router-mock:next/navigation
Based on the check for the methods, it seemed the intention at least in one of the fixes was to simply wrap/reference the original singleton routers' instances.
Wouldn't mind chipping in but didn't want to do anything potentially redundant or unwanted since I'm not totally familiar with things. Is any specific help needed or wanted?
Is this package usable with NextJS 14?
is this dead?
@scottrippey are you here?
I do not currently have the extra bandwidth to finish this PR, I'm sorry! I'd be happy to accept incoming PRs.
This PR is only partially complete. I've added support for the main 4 hooks, but there's still a lot of API methods that are not implemented. I'm willing to merge this as-is, since it will likely unblock many. However, the documentation is lacking, and the missing API methods would be frustrating.
Also I'd be happy to accept incoming PRs, if anyone wants to contribute!
Perhaps someone will find this useful and will have time to dig into this.
Here is how storybook implemented their mocks for navigation
: Link
Perhaps someone will find this useful and will have time to dig into this. Here is how storybook implemented their mocks for
navigation
: Link
So, we could use those mocks instead of this package, right?