scottrippey / next-router-mock

Mock implementation of the Next.js Router
MIT License
400 stars 38 forks source link

Next 13 App Router Support (`next/navigation`) #103

Open scottrippey opened 1 year ago

scottrippey commented 1 year ago

This PR adds support for Next 13's new App Router. It supplies functional mocks for the hooks in next/navigation.

TODO

changeset-bot[bot] commented 1 year ago

🦋 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

kaufmann42 commented 1 year ago

Any idea when this might be completed? 😅

italogama commented 1 year ago

👀

tkrotoff commented 1 year ago

Beside the use* functions, next/navigation also provides:

rob2d commented 1 year ago

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?

SalahAdDin commented 7 months ago

Is this package usable with NextJS 14?

MarkLyck commented 5 months ago

is this dead?

SalahAdDin commented 5 months ago

@scottrippey are you here?

scottrippey commented 5 months ago

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!

oleg-kuibar commented 4 months ago

Perhaps someone will find this useful and will have time to dig into this. Here is how storybook implemented their mocks for navigation: Link

SalahAdDin commented 4 months ago

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?