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>
);
};`
Top comments (1)
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(
);