Jest + Jose error
Unanswered
Houss posted this in #help-forum
HoussOP
I'm trying to test my nextjs app that uses Jost for a jwt authentification system however jest gives me this error
this is my jest.config.ts :
and my test file :
this is my jest.config.ts :
import type { Config } from 'jest'
import nextJest from 'next/jest.js'
const createJestConfig = nextJest({
// Provide the path to your Next.js app to load next.config.js and .env files in your test environment
dir: './',
})
// Add any custom config to be passed to Jest
const config: Config = {
coverageProvider: 'v8',
testEnvironment: 'jsdom',
// Add more setup options before each test is run
// setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
}
// createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async
export default createJestConfig(config)and my test file :
import '@testing-library/jest-dom'
import { render, screen } from '@testing-library/react'
import Home from '@/app/page'
describe("Home Page", () => {
it("renders the nav bar", () => {
render(<Home />)
const navbar = screen.getByRole("nav")
expect(navbar).toBeInTheDocument()
})
})3 Replies
@Houss I'm trying to test my nextjs app that uses Jost for a jwt authentification system however jest gives me this error
this is my jest.config.ts : ts
import type { Config } from 'jest'
import nextJest from 'next/jest.js'
const createJestConfig = nextJest({
// Provide the path to your Next.js app to load next.config.js and .env files in your test environment
dir: './',
})
// Add any custom config to be passed to Jest
const config: Config = {
coverageProvider: 'v8',
testEnvironment: 'jsdom',
// Add more setup options before each test is run
// setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
}
// createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async
export default createJestConfig(config)
and my test file : ts
import '@testing-library/jest-dom'
import { render, screen } from '@testing-library/react'
import Home from '@/app/page'
describe("Home Page", () => {
it("renders the nav bar", () => {
render(<Home />)
const navbar = screen.getByRole("nav")
expect(navbar).toBeInTheDocument()
})
})
looks like the jose module is esm-only, and jest is trying to read it as a cjs module; have you tried the suggested fixes? (https://jestjs.io/docs/ecmascript-modules)
https://stackoverflow.com/questions/76608600/jest-tests-are-failing-because-of-an-unknown-unexpected-token-export this seems to be the answer to your question, have you tried this yet?
HoussOP
I've tried multiple solutions that i've found online however, none of them solve my issue, that's why i asked for help in here, however, it might be able that i implemented the solution in a wrong way