Remix Stub

πŸ‘¨β€πŸ’Ό Our user profile page has some logic for what to display depending on who's looking at it. If you're looking at your own page, it shows a button for logout and edit profile. If you're looking at someone else's page, it shows a button to view their notes.
Go ahead and try with Kody's account:
Login with Kody: (kody / kodylovesyou) then open it up again.
We want to test that out, but the problem is those components rely on useLoaderData, so we need to mock that out.
So we're going to render our username route, but we also need to provide a loader so the useLoaderData hook has something to return. And we can do something to make it match the type of the real loader. Here's an example of how to do that:
import { json } from '@remix-run/node'
import { createRemixStub } from '@remix-run/testing'
import { render, screen } from '@testing-library/react'
import { default as RouteComponent, type loader } from './some-route'

// ...

const App = createRemixStub([
	{
		path: '/some-path',
		Component: RouteComponent,
		loader(): Awaited<ReturnType<typeof loader>> {
			return json({
				// we have to return the right types or TypeScript will be upset!
			})
		},
	},
])

render(<App initialEntries={['/some-path']} />)

// ...
That can help us make sure that our fake version of a loader matches up with the real one.
πŸ§β€β™‚οΈ I already started this test, but rendering the <UsernameRoute /> component doesn't work since we use useLoaderData in it which requires a remix stub. So you're going to need to do that part.
πŸ‘¨β€πŸ’Ό That should be enough to get you going!
npx vitest username
Login to get access to the exclusive discord channel.
  • general
    Welcome to EpicWeb.dev! Say Hello πŸ‘‹
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    This is the first post of many hopefully!
    • 17
    78 Β· a year ago
  • general
    Migration to Vite: Server-only module referenced by client
    Fabian 🌌:
    Hi, I'm working on migrating to Vite following the remix docs (https://remix.run/docs/en/main/guides...
    • βœ…1
    1 Β· 2 months ago
  • general
    Remix Vite Plugin
    Binalfew πŸš€ 🌌:
    <@105755735731781632> Now that remix officially supports vite (though not stable) what does it mean...
    • βœ…1
    3 Β· a year ago
  • general
    πŸ”­foundations
    Solutions video on localhost:5639 ?
    quang πŸš€ 🌌:
    Hi, so I'm having a hard time navigating (hopefully will be better with time) The nav on epicweb.de...
    • βœ…1
    9 Β· a year ago
  • πŸ§ͺfull stack testing
    Failing tests in full-stack-testing workshop
    Szabolcs 🌌:
    I am getting this warning in the testing workshop. ``` Warning: `ReactDOMTestUtils.act` is deprecate...
    • βœ…1
    2 Β· 4 months ago
  • general
    Epicshop is now social and mobile friendly!
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    I'm excited to announce that now the Epic Web workshops are mobile friendly! https://foundations.ep...
    • πŸŽ‰2
    0 Β· 4 months ago
  • πŸ’Ύdata
    general
    πŸ“forms
    πŸ”­foundations
    double underscore?
    trendaaang 🌌:
    What with the `__note-editor.tsx`? I don't see that in the Remix docs and I don't remember Kent talk...
    • βœ…1
    2 Β· 5 months ago
  • πŸ”­foundations
    πŸ’Ύdata
    general
    πŸ“forms
    πŸ”auth
    Native Logging
    trendaaang 🌌:
    I was thinking that it could be useful to log every CRUD operation to help track down errors. Is tha...
    • βœ…1
    6 Β· 7 months ago
  • general
    The video play is pretty laggy currently
    QzCurious 🌌:
    I thought I should tag you for this <@105755735731781632>. Please take a look if something wrong.
    • βœ…2
    9 Β· 7 months ago
  • general
    New Workshop Scheduled
    Kent C. Dodds β—† πŸš€πŸ†πŸŒŒ:
    Hey Epic Web devs! I wanted to let you know before everyone else on here: https://www.epicweb.dev/ev...
    • 2
    0 Β· 7 months ago