DEV Community

SleepyDev
SleepyDev

Posted on

Where does return render( <UserProvider> etc go in a test.js jest file?

Here is the UserContext.js mock data file

`import React, { useState } from 'react';

// Create a mock UserContext with default userId as null
const UserContext = React.createContext({
userId: null,
setUserId: () => {}, // Mock function for tests
});

// Mock UserProvider to be used in tests
const UserProvider = ({ value, children }) => {
const [userId, setUserId] = useState(value?.userId || null);

// Always use the provided setUserId if available, otherwise use the internal state
const contextValue = {
userId,
setUserId: value?.setUserId || setUserId,
};

return (

{children}

);
};

export { UserContext, UserProvider };`

So does the below go above or in the describes if above do I pass the renderComponentWithUserContext to the describe condition as a parameter and each test that uses it? Apologies for the troll, I've just been at this jest failure for days.

`const renderComponentWithUserContext = (userId = null) => {
console.log('Rendering JobDescriptionNavigationMenu with userId:', userId); // Log userId

return render(
  <UserProvider>
    <JobDescriptionNavigationMenu />
  </UserProvider>
);
Enter fullscreen mode Exit fullscreen mode

};`

Top comments (1)

Collapse
 
sleepydev profile image
SleepyDev

I figured it out, it was getByTestId causing the problem, it needed to be toHaveStyle and I needed to have fakeLogin imported only into the login.jsx component file, also had to add the below in each test and not call it from outside gobally as a simply name(123 or null);

render(



);