I have UserContext and a hook useUser exported from src/app/context/user-context.tsx.
Additionally I have an index.tsx file in src/app/context which exports all child modules.
If I spyOn src/app/context/user-context it works but changing the import to src/app/context I get:
TypeError: Cannot redefine property: useUser at Function.defineProperty (<anonymous>)
Why is that?
Source code:
// src/app/context/user-context.tsx
export const UserContext = React.createContext({});
export function useUser() {
return useContext(UserContext);;
}
// src/app/context/index.tsx
export * from "./user-context";
// *.spec.tsx
// This works:
import * as UserContext from "src/app/context/user-context";
// This does not work:
// import * as UserContext from "src/app/context";
it("should render complete navigation when user is logged in", () => {
jest.spyOn(UserContext, "useUser").mockReturnValue({
user: mockUser,
update: (user) => null,
initialized: true,
});
})
