I am using Next.JS 13, and have a component which is using
import { cookies } from 'next/headers';
The simplified component:
import { cookies } from 'next/headers';
function Simple() {
console.log({ cookies });
return <div>Simple</div>;
}
export default Simple;
and the simplified test:
import { render } from '@testing-library/react';
import Simple from './Simple';
describe('<Simple />', () => {
it('should render Simple component', () => {
render(<Simple />);
});
});
When I have any reference to the cookies
, in this case
console.log({ cookies });
I always get the following error when running jest tests:
x NEXT_RSC_ERR_CLIENT_IMPORT: next/headers
,-[1:1]
1 | import { cookies } from 'next/headers';
: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2 |
3 | function Simple() {
4 | console.log({ cookies });
Any ideas how to fix it?
I have tried mocking the 'next/headers' with jest.mock, like so, but to no avail:
jest.mock('next/headers', () => ({
cookies: jest.fn(),
}));
My jest.config.js
const nextJest = require('next/jest');
const createJestConfig = nextJest({
dir: './',
});
const customJestConfig = {
setupFilesAfterEnv: ['./.jest/setup.js'],
testEnvironment: 'jest-environment-jsdom',
};
module.exports = async () => ({
...(await createJestConfig(customJestConfig)()),
});
My ./jest/setup.js
require('jest-fetch-mock').enableMocks();
import '@testing-library/jest-dom';
Package versions
"next": "13.1.0",
"jest": "^29.3.1",
"jest-environment-jsdom": "^29.3.1",
"jest-fetch-mock": "^3.0.3",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",