Repository navigation
test(hooks): add unit tests for useClipboardCopy - #237
Merged
Merged
Conversation
Adds Vitest tests for the useClipboardCopy hook with a mocked navigator.clipboard.writeText and fake timers. They cover the start state, a successful copy, the reset after the default and a custom timeoutMs, and a rejected write.
|
@CodeByPeace is attempting to deploy a commit to the osama's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Thank you for the pull request! ✅ A maintainer will review this soon. Please be patient while we take a look. 🙌 |
O2sa
approved these changes
Oct 11, 2026
Owner
|
🎊 Welcome, @CodeByPeace! Your first contribution has been merged! 🚀 Thank you for helping improve the project! If you find this tool useful, please consider giving us a ⭐ star on GitHub—it helps more developers find our work and motivates us to keep improving! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #236
Additionally, at the time of submission of this PR:
What was missing. The useClipboardCopy hook had no tests.
What I added. One new file, use-clipboard-copy.test.ts, in a new hooks tests folder, as the issue asks. It has five tests. They use Vitest and React Testing Library, with fake timers and a mocked navigator.clipboard.writeText. They check the start state, a successful copy, the reset after the default 2000 ms, the reset after a custom timeoutMs, and a rejected write. A rejected write returns false and copied stays false.
The file sets the jsdom environment for itself with a comment at the top. vitest.config.ts is unchanged, so no other test is affected.
How I tested. All five pass. The full suite passes too, 23 files and 160 tests. I also broke the hook on purpose, twice. With the timer made ten times longer, 2 tests failed. With copied never set to true, 3 tests failed. I restored the hook after each. format:check and tsc pass, and lint shows no errors.
One note. CONTRIBUTING suggests feature test folders, but the issue asks for the hooks folder, so I followed the issue.
Left alone. The hook itself and the test config.
AI use: written with Claude Sonnet 5.5. I ran and checked every command and test myself.