Ricerca nel sito web

typescript - TypeError: React.createContext non è una funzione con ApolloContext e Jest


Sto cercando di testare del codice TypeScript con Jest per la mia app TS+NextJS dove sto usando Apollo+GraphQL. Sfortunatamente, sto ricevendo l'errore

TypeError: React.createContext is not a function

Dal seguente modulo node:

getApolloContext (node_modules/@apollo/client/react/context/ApolloContext.js:7:25)

Quando ho guardato questo errore su altre domande su Stack Overflow, dice che la versione di react è obsoleta, ma la mia versione di react in package.json è

"react": "^17.0.1",

Quindi non sono sicuro di cosa potrebbe causare questo problema. Sembra che per qualche motivo il controllo del tipo stia fallendo oppure venga utilizzata una vecchia versione di React in quel modulo node invece di quella a livello di progetto, il che non sembra corretto.

Quello che ho provato finora è:

Aggiornando i miei moduli node react e react-dom (non fa nulla)

Abbastanza bloccato su cosa fare oltre a questo.

il codice è qui:

test.tsx
import * as React from 'react';
import { render } from '@testing-library/react'
import DonePage from '../pages/done'

describe('Pages', () => {
  describe('Index', () => {
    it('Pages render', function testCases() {
        render(<DonePage apolloClient={{}} apolloState={{}}/>)
    })
  })
})

export {}
page.tsx
import * as React from 'react';
import { withApollo } from 'apollo'
{...}

const DonePage: NextPage<{}> = () => {
  return (
    <>
        {...}
    </>
  )
}

export default withApollo(DonePage, { ssr: false })

Dove withApollo è il codice in https://github.com/apollographql/apollo-client/issues/5089

Sto eseguendo i test con jest --runInBand