No video

Next.js with React Testing Library, Jest, TypeScript

Web Dev Roadmap for Beginners (Free!): bit.ly/DaveGrayWebDevRoadmap
Learn how to write tests in Next.js with React Testing Library, Jest, and TypeScript. This tutorial takes you through the setup for testing in Next.js 13 with App Router and TypeScript step-by-step. Write your first tests in Next.js!
💖 Support me on Patreon ➜ / davegray
⭐ Become a full-stack web dev with Zero To Mastery Courses:
- Complete Next.js Developer: bit.ly/CompNextJSDev
- Advanced React: bit.ly/AdvReactDev
- Junior to Senior Dev Roadmap: bit.ly/WebDevRoadmap-JrtoSr
🚩 Subscribe ➜ bit.ly/3nGHmNn
📬 Course Updates ➜ courses.davegray.codes/
❓ Questions - Please post them to my Discord ➜ / discord
☕ Buy Me A Coffee ➜ www.buymeacoffee.com/davegray
👇 Follow Me On Social Media:
GitHub: github.com/gitdagray
Twitter: / yesdavidgray
LinkedIn: / davidagray
🔗 Source Code: github.com/gitdagray/next-tes...
📺 "Testing Your Code" playlist: • Testing Your Code
Next.js Testing Introduction with React Testing Library, Jest, TypeScript
(00:00) Intro
(00:11) Welcome
(00:35) Lesson Goals
(01:06) Create a Next.js Project
(02:50) Add dependencies
(04:11) Current issue with Next.js & Jest
(06:17) Add scripts
(06:49) Jest config
(10:04) Jest setup
(10:33) ESLint
(12:17) Writing Your First Component Test & AAA Pattern
(19:20) Multiple Tests for the Same Component
(23:49) For More Information
📚 Tutorial References:
🔗 Next.js Official Site: nextjs.org/
🔗 React Testing Library: testing-library.com/docs/reac...
🔗 Jest: jestjs.io/
🔗 TypeScript: www.typescriptlang.org/
Was this tutorial about getting started with Jest, React Testing Library and TypeScript in Next.js helpful? If so, please share. Let me know your thoughts in the comments.
#nextjs #react #testing

Пікірлер: 118

  • @johnbeckham606
    @johnbeckham60611 ай бұрын

    Finally a KZreadr that doesn't constantly do html crash course videos... keep it up with medium/advanced topics! Love it!🎉

  • @ScriptRaccoon

    @ScriptRaccoon

    11 ай бұрын

    Finally? There are tons of KZreadrs who cover medium or advanced topics in web development.

  • @johnbeckham606

    @johnbeckham606

    11 ай бұрын

    @@ScriptRaccoonoh, can you name some of them? would love to check them out :) thanks 🙌

  • @lord-of-the-shinobi-world

    @lord-of-the-shinobi-world

    11 ай бұрын

    That ain't the problem. The problems are: - Do those videos have clear timestamps? - Can you code by yourself after you are done watching the video? - Can you compete with the low/middle/high/ultra high level developers like you? Or will you fail bad? - How long will it take for you to move onto the next level of developing? If the answers for these questions are "no", or "i don't know", then you'd better stop watching videos, and start doing first

  • @johnbeckham606

    @johnbeckham606

    11 ай бұрын

    @@lord-of-the-shinobi-world I'm not a beginner fyi. I was just complaining about KZreadrs that continue to create HTML5 courses and even sell them. It's all already on the Internet. I want to see new technologies and see how others use them in different scenarios. What you wrote are facts anyway, good point, but it ain't related to what I wrote. I hope that I made it now clear what I meant 😁🙌

  • @lord-of-the-shinobi-world

    @lord-of-the-shinobi-world

    11 ай бұрын

    @@johnbeckham606 Well then, think of those things as "teaching material". If you just repeat the same thing, over and over again, your students will leave you. I am in middle level, so i understand what you're saying

  • @DanielMolnar_Tuzla
    @DanielMolnar_Tuzla11 ай бұрын

    Just something I needed these days. I have already middle size app written with Next.js 13 but with 0% tests 😁 Thank you Dave

  • @nishant810125
    @nishant81012511 ай бұрын

    Hey Dave! You've are a saviour/ultimate mentor for those who are diving deep into Next.js. Appreciate your progressive content. Thank you.

  • @farazk9729
    @farazk972911 ай бұрын

    Hi Dave, I am doing some of your other videos, and a little something I wanted to thank you for: Thanks for explaining the little things that you do and not just doing them (e.g. Ctrl + B to hide the file tree, etc etc). These tidbits make the learning journey more fun, clearer, and basically make me feel more involved in what's happening, which makes me want to keep at it, so muchas gracias ;-)

  • @MichaelShingo
    @MichaelShingo5 ай бұрын

    thank you for this, got jest into my existing audio player project. It's crazy that getting one of most popular testing libraries to work with one of most popular frameworks takes so many workarounds.

  • @emobodigo
    @emobodigo11 ай бұрын

    Thank you dave, i hope you will continue this testing video as series, it will help so much❤

  • @danieljing9319
    @danieljing931911 ай бұрын

    This is what we want !!!! Dave you are my hero! You always provide useful and advanced stuff !!! 👍👍

  • @alirezagarshasbi6557
    @alirezagarshasbi655711 ай бұрын

    the configuration really did help as its setup is not straight forward thank you Dave🔥

  • @ryanwoods3333
    @ryanwoods333311 ай бұрын

    Thank you! I really hope you produce more unit-testing videos with React!

  • @farahrayis5928
    @farahrayis592811 ай бұрын

    Looking forward to more videos on testing, thanks Dave.

  • @jayfallon
    @jayfallon2 ай бұрын

    Three hours of head banging the desk trying to get Jest up and running with NextJS and failing, or twenty five minutes following Dave's instructions. Thank you!

  • @seanfang398
    @seanfang3989 ай бұрын

    Oh, thank you so much! Really saved my day❤ I don't know about others, but for me, working with typescript sometimes can be very head-scratching and I myself fell into quite a few traps😂 And contents like setting configs or some other little tricks can be very very helpful, just like what this video demonstrates. Thank you again and hopefully we could watch more great video in this channel

  • @FreeDeveloper
    @FreeDeveloper11 ай бұрын

    17:06 Or instead of downgrade the dependency you can: install this: npm i -D @types/jest import '@testing-library/jest-dom'; in the testing files import '@testing-library/jest-dom' in the jest.setup.js file

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    11 ай бұрын

    You can, but you shouldn't have to. As mentioned, hopefully the issue will be fixed in the near future. The update is just a few days old.

  • @rubendacostaesilva8442

    @rubendacostaesilva8442

    9 ай бұрын

    Instead of -> import '@testing-library/jest-dom' in the jest.setup.js file You can add -> "files": ["jest.setup.js"] in your tsconfig.json file

  • @Ecki107

    @Ecki107

    2 ай бұрын

    For me a similar approach worked: 1. npm i -D @types/jest 2. in jest.setup.ts change import "@testing-library/jest-dom/extend-expect"; to import "@testing-library/jest-dom/extend-expect"; And everything works fine. No additional imports needed and way cleaner than relying on an old version

  • @michaeljakobsen1959

    @michaeljakobsen1959

    20 күн бұрын

    If using the latest versions of NextJS, Jest and Testing Library running npm i -D @types/jest and adding import '@testing-library/jest-dom'; to the test file worked

  • @justAbeautifulSoul409
    @justAbeautifulSoul40911 ай бұрын

    Thanks for this awesome video i was struggling to understand testing with nextjs ❤

  • @noormuhammad888
    @noormuhammad88811 ай бұрын

    I would love to see more videos on Next 13 testing, client, and server components. Also, I am assuming that after this testing series, you are going to create a project on Next 13 with testing included?

  • @romero-r
    @romero-r10 ай бұрын

    I've been fighting jest, typescript, webpack, nextjs, and vite the whole day trying to set up a test runner for a nextjs project created with create-t3-app. The pain in the js ecosystem is real. I hope I can just use bun for everything soon. Anyways, this video got me the closest to a perfect setup just a tiny bit of googling aside from the instructions in this video got jest+RTL working! Thank you!

  • @raymondmichael4987
    @raymondmichael498711 ай бұрын

    Yes please, I need to dive into more testing now 😊

  • @Stefoux
    @Stefoux11 ай бұрын

    Thank you so much for this helpful video ! 😊❤

  • @tomasgilamoedo8301
    @tomasgilamoedo83016 ай бұрын

    Great tutorial Dave! highly appreciated

  • @HHB0206
    @HHB02066 ай бұрын

    Thank you so much Dave, I tried to follow the next official document to install jest exactly, but I don't know why, there was a red underline at the 'expect' and 'describe'. I was so annoyed. But finally you gave me the solution. It was really helpful. Thanks.

  • @benallan5078
    @benallan507810 ай бұрын

    Hey Dave! I'd love some react testing videos. Finding resources to effectively explain testing react hooks and redux usages are few and far between!

  • @kikaccc93
    @kikaccc939 ай бұрын

    It would be nice to see some unit testing in react native using react native library and jest.Also love your explanations.

  • @syedsadiq8591
    @syedsadiq859111 ай бұрын

    Great! Waiting for next video.

  • @27sosite73
    @27sosite7311 ай бұрын

    damn next.js with this versions and all that libraries struggled a lot thank you mate

  • @Nanashi-rq7lk
    @Nanashi-rq7lk11 ай бұрын

    Nice tutorial,Thanks

  • @watchandenjoy1043
    @watchandenjoy104311 ай бұрын

    AA Dave I am going to watch you while next series if I can

  • @viniciusmassari5503
    @viniciusmassari550311 ай бұрын

    Hey Dave ! any thoughts about a testing course ? Like, what is mock, spy, stub, e2e and unit testing...Maybe a little teoric and practice introduction to these subjects, as a beginner I feel that will be a great adittion to my studies, recently I came across many videos about that. Thank you for your teachings ! Helped me a lot to learn Nextjs

  • @hamza-alrashed
    @hamza-alrashed11 ай бұрын

    Hi Dave .. Thank you so much about everything .. I learned from you alot of things not just programming .. I learned from you english language also Your accent very clear .. I have one request please .. Can you start with SQL I need this for my work and I need to understand it using your explanation Thanks Hamza

  • @nan-simon
    @nan-simon9 ай бұрын

    You are the best!!! Thank you! 😍😍😍

  • @waleedsharif618
    @waleedsharif61811 ай бұрын

    There are hundreds testing videos for Reactjs in youtube but i think this is literally first Nextjs testing video ? Please add more

  • @yonnierenton6177
    @yonnierenton617711 ай бұрын

    Super Love it thankyou! I used Chai with Hardhat. Yeeew lol...

  • @yourcasualdeveloper
    @yourcasualdeveloper11 ай бұрын

    Yet another great video.

  • @TravinskiyVladislav
    @TravinskiyVladislav11 ай бұрын

    Awesome stuff man

  • @ron-almog
    @ron-almog7 ай бұрын

    Wise words at the last minute: strive for progress over perfection!

  • @omidoyinayodeji9338
    @omidoyinayodeji933811 ай бұрын

    Weldone Sir. I would like the videos for react. Thank you Sir.

  • @okbaalla8451
    @okbaalla845111 ай бұрын

    Finally, we need more of this Dave, keep it up, I want to question you about two things: The vscode extension you're using for the icons When selecting the pages and not the app features in next project inititializing, will it work with same new SSR and SSG functionalities or we will use the getStaticProps, getServerSideProps keywords, thanks!

  • @desafiosdev

    @desafiosdev

    7 ай бұрын

    The icon theme is vscode-icons

  • @iamsomraj
    @iamsomraj11 ай бұрын

    A video for react will be very helpful.

  • @imkir4n
    @imkir4n11 ай бұрын

    Ozm Dave 🔥👍🏼

  • @jazzdestructor
    @jazzdestructor11 ай бұрын

    HI Dave, thanks a lot for the jest video as you asked Could you Please do react vite vitest video on a big react project?? like the blog project you had in your redux video?? want to see how it works compared to jest and learn more on how it does crud on frontend?

  • @dazecm
    @dazecm8 ай бұрын

    Thanks for this Dave. The Using App Router docs at Vercel still do not have specific Testing documentation in the Optimizing section as of Next version 14.0.3 and I was struggling getting Jest and React Testing Library configured properly.

  • @CTILET
    @CTILET11 ай бұрын

    Dave 200k subs today!

  • @gorkemka4061
    @gorkemka406111 ай бұрын

    thank you!

  • @SajjjadGhasemi
    @SajjjadGhasemi6 ай бұрын

    Hello Dave, Thanks for this teaching. I have one question, What is that .swc folder that made in root directory when you used npm test?

  • @o12345684
    @o1234568410 ай бұрын

    That rolling back for @testing-library/jest-dom@5.16.5 saved me hours of searching. Thanks a lot

  • @sadeshure5241
    @sadeshure524111 ай бұрын

    Ever thought of adding React native (mobile) tuts to your channel Dave?

  • @gopinathmano7910
    @gopinathmano791010 ай бұрын

    yes sir we need react testing video

  • @MDKhan-ww5tp
    @MDKhan-ww5tp11 ай бұрын

    Hey, can you please make a video on socket io setting up in NextJS 13 App Directory it would be great

  • @ricardorien
    @ricardorien8 ай бұрын

    Works fine with Next 14.0.1. just nuke yarn-error, yarn.lock and node-modules/ and install everything again before run 'yarn jest'.

  • @dlevz
    @dlevz10 ай бұрын

    How comes you are using extend-expect when it was removed in @testing-library/jest-dom v6.0?

  • @sushieatingcobra
    @sushieatingcobra3 ай бұрын

    thanks

  • @htmlfivedev
    @htmlfivedev11 ай бұрын

    I was really glad to find this video but when I went through it, I realized things are just too problematic to even set up Jest with the Next 13 right now ... conflict after conflict ... will get back when the issues are resolved ...

  • @AirOfFreshBlue
    @AirOfFreshBlue11 ай бұрын

    dear dave, why in nextjs 13.4 app directory we have several errors for testing aplication?

  • @darawan_omar
    @darawan_omar11 ай бұрын

    Mr Dave Can You Give The Effect Filter Of Your OBS

  • @focusme-tv3650
    @focusme-tv365011 ай бұрын

    Hello! This is a very nice video for beginners learning about the basics of testing. I came here with a bit more experience and I can't even get one test passing since next 13. The useRouter hook just keeps throwing the same error: " invariant expected app router to be mounted". If you don't have an idea yet about your next video, showing how to setup the tests when using "next/navigation" package should be a good one, not "next/router" (this is important) 👌Thanks for the content

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    11 ай бұрын

    Yes, that's a more advanced issue that I was looking into as well. Currently, it seems the solution is to mock next/navigation. A current discussion on this: github.com/vercel/next.js/discussions/48937

  • @focusme-tv3650

    @focusme-tv3650

    11 ай бұрын

    @@DaveGrayTeachesCode Thanks for your response! They seem to have found a pretty cute workaround! I also managed to fix it temporarily by mocking "next/navigation" and then useRouter.mockReturnValue({ push: jest.fn(), replace: jest.fn() });. This way i can see when push/replace are called and with what argument. But I'm defo going to try the stuff in the link you shared 😄

  • @rubendacostaesilva8442

    @rubendacostaesilva8442

    9 ай бұрын

    The useRouter from next/router is meant to be used with the Pages Router. For the App Router, you'll have to import from next/navigation.

  • @bewildstudio
    @bewildstudio11 ай бұрын

    Please, please... make a video about How to test React) you are a great teacher... do you work offline as a teacher?)

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    11 ай бұрын

    Yes, I do teach university courses.

  • @MicroUrb
    @MicroUrb9 ай бұрын

    I am curious, why is your test extension `tsx` as opposed to just `ts`? Is it because you did not create it as a spec file?

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    9 ай бұрын

    Keep going in this series and I change it. Really doesn't matter as both work but was unnecessary and created multiple questions :)

  • @tsjclips3815
    @tsjclips38154 ай бұрын

    Please make a video on react testing using the same.

  • @LuisFernando-il6tu
    @LuisFernando-il6tuАй бұрын

    Great content, please make examples but using JavaScript

  • @michalnowak2181
    @michalnowak218110 ай бұрын

    thx

  • @ubitubee
    @ubitubee11 ай бұрын

    Lool, I'm applying this tutorial for a nextjs project I started this week, and a dependency has already changed. eslint-config-next, from my 13.4.16 to Dave's 13.4.17. Not much, but you know, better watch this tutorial in August, or it will become outdated

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    11 ай бұрын

    I show an issue Next.js & Jest have right now and actually rollback to 13.4.10 to avoid it. All details in the vid.

  • @oscarjohne
    @oscarjohne6 ай бұрын

    Hello, before I use this, anyone knows if the issue was fized in Nextjs 14?

  • @kikaccc93
    @kikaccc937 ай бұрын

    I need some help I have a big app made with expo react native and typescript and for testing typescript, it says it needs ts-jest but I've tried everything and I can't configure it for testing typescript can someone help

  • @noNullMoments
    @noNullMoments11 ай бұрын

    codium tutorials please. thats a great tool n ure a great teacher. win || win

  • @mmtt1129
    @mmtt112910 ай бұрын

    I encountered the error " ReferenceError: Can't find variable: document at render ....". I already set testEnvironment: "jest-environment-jsdom". Anybody can help me ? Thanks

  • @ankursharma4304
    @ankursharma430429 күн бұрын

    is that the issue in next js that you are talking about is fidex in next 14?

  • @waleedsharif618
    @waleedsharif61811 ай бұрын

    Im using yarn, are those commands same for it, like adding dev dependency ?

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    11 ай бұрын

    I should do a tutorial on yarn. You can learn more about it here: yarnpkg.com/getting-started/usage

  • @oussemabouyahia474
    @oussemabouyahia4746 ай бұрын

    please Dave a video tuto for testing react with typescript

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    6 ай бұрын

    I do cover React testing library in this playlist. 😃

  • @chiragchhajed8353
    @chiragchhajed835311 ай бұрын

    Though jest is good and has been around for a time, what is your opinion on something like vitest

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    11 ай бұрын

    Vitest is also good. Getting several requests for a React + Vite + Vitest tutorial, too.

  • @cascadingstylesheets1890
    @cascadingstylesheets18905 ай бұрын

    Error [ERR_REQUIRE_ESM]: require() of ES Module C:\ ode_modules\string-width\index.js from C:\ ode_modules\cliui\build\index.cjs not supported. Instead change the require of index.js in C:\ ode_modules\cliui\build\index.cjs to a dynamic import() which is available in all CommonJS modules. at Object. (C:\ ode_modules\cliui\build\index.cjs:291:21) when execute test command

  • @waleedsharif618
    @waleedsharif61811 ай бұрын

    I wonder why Nextjs does not come with testing like create react app comes… it would help a lot

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    11 ай бұрын

    Maybe someday!

  • @AshishKumar-du2wk
    @AshishKumar-du2wk11 ай бұрын

    Hey Dave can you teach us auth0 for next js 13 ?

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    11 ай бұрын

    I could, but I prefer Kinde Auth. I think it is easier to implement, and my video for it is here: kzread.info/dash/bejne/iah8s6mle6q7org.html

  • @nanonkay5669
    @nanonkay566911 ай бұрын

    Bruh half the video was just setup and configurations. This is why no one likes to do testing 😂

  • @radixp0int
    @radixp0int5 ай бұрын

    For 17:00, it helped to install another dev dependency instead of downgrading: npm i --save-dev @types/jest. I'm on -> "@testing-library/jest-dom": "^6.4.2" then adding the line import '@testing-library/jest-dom' at the top as well.

  • @artsycoder533

    @artsycoder533

    5 ай бұрын

    This worked for me! Thank you!

  • @bhasker8789
    @bhasker878911 ай бұрын

    Sir please make videos django course from beginniner to advance.

  • @michaelscofield2469
    @michaelscofield246911 ай бұрын

    Omg ❤

  • @Sidgd1987
    @Sidgd19878 ай бұрын

    Why do we have jest.setup.js?

  • @khamzateedira9021
    @khamzateedira902111 ай бұрын

    Can you do it more testing with react❤❤❤

  • @chetanpl
    @chetanplАй бұрын

    for me Screen not available. I have tried everything. such as uninstall node software and reinstall the latest one but no luck. After I tried to create with Next@14 package as per your video suggest. however, no luck. Now I am stuck. your video does not helpful. Import {screen} from "@testing-library/react"

  • @soumadip_skyy_banerjee
    @soumadip_skyy_banerjee11 ай бұрын

  • @dios8256
    @dios82566 ай бұрын

    Yikes a lot of work around configuration to get this to work with nextjs!!!

  • @jonnathanmoreno5538
    @jonnathanmoreno55382 ай бұрын

    Way tooo much set up lol

  • @melycasola
    @melycasola5 ай бұрын

    david THANK YOU!! I had problem in fil 'jest.setup.js' import '@testing-library/jest-dom/extend-exptect'. we find two soluction: delete only '/extend-expect' or changed to version 5.16.5 in "@testing-library/jest-dom": "^6.4.2",

  • @JosephGoebbelcoque
    @JosephGoebbelcoque9 ай бұрын

    Replace jest.setup.js with the line "import '@testing-library/jest-dom'" because extend-expect is not there anymore

  • @JayFFresh
    @JayFFresh10 ай бұрын

    not gonna lie, all the switching from versions makes everything so uncertain

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    10 ай бұрын

    I suggest trying to use the latest version of everything. If it doesn't work, then roll back one of the versions that I did. By the following video in the series, I think I was using the latest Next.js with no issues.

  • @JayFFresh

    @JayFFresh

    10 ай бұрын

    @@DaveGrayTeachesCode 🙏 thank you for considering this bump in the road

  • @user-eb3cg3lo1t
    @user-eb3cg3lo1t11 ай бұрын

    __tests__/productImages.test.tsx ● Test suite failed to run Cannot find module '@testing-library/jest-dom/extend-except' from 'jest.setup.js' please help

  • @DaveGrayTeachesCode

    @DaveGrayTeachesCode

    11 ай бұрын

    Did you install the dependency? All of the dependencies are listed in the package.json file.

  • @user-eb3cg3lo1t

    @user-eb3cg3lo1t

    11 ай бұрын

    thank you for reply yes. but i am facing cannot find module for nested components. the components which are individual they are passing tests.

  • @user-eb3cg3lo1t

    @user-eb3cg3lo1t

    11 ай бұрын

    SyntaxError: Cannot use import statement outside a module showing this error please help

  • @wandercruz3502

    @wandercruz3502

    10 ай бұрын

    It is extend-expect not extend-except

  • @malakggh
    @malakggh9 ай бұрын

    npm i -D @testing-library/jest-dom@5.16.5 @testing-library/react @testing-library/user-event jest jest-environment-jsdom ts-jest

  • @ricardorien

    @ricardorien

    8 ай бұрын

    Works fine with Next 14.0.1. Thanks. Just nuke node-modules, and yarn lock before run test and install wverything again.

  • @27sosite73
    @27sosite736 ай бұрын

    npm i -D @testing-library/jest-dom @testing-library/react @testing-library/user-event jest jest-environment-jsdom ts-jest you are welcome

  • @doniaelfouly4142
    @doniaelfouly41427 ай бұрын

    thanks