Zoeken op website

typescript - TypeError: React.createContext is geen functie met ApolloContext en Jest


Ik probeer wat TypeScript-code te testen met Jest voor mijn TS+NextJS-app waar ik Apollo+GraphQL gebruik. Helaas krijg ik de foutmelding

TypeError: React.createContext is not a function

Van het volgende node-module:

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

Toen ik naar deze fout keek bij andere vragen op Stack Overflow, staat er dat de react-versie verouderd is, maar mijn react-versie in mijn package.json is

"react": "^17.0.1",

Dus ik weet niet zeker wat dit probleem zou kunnen veroorzaken. Het lijkt erop dat om de een of andere reden ofwel de typecontrole faalt, of een oude versie van React wordt gebruikt in die node-module in plaats van de projectbrede versie, wat niet juist lijkt.

Wat ik tot nu toe geprobeerd heb is:

Mijn react- en react-dom-node-modules bijwerken (doet niets)

Best wel vastzitten over wat te doen daarna.

code is hier:

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 })

Waar withApollo de code is in https://github.com/apollographql/apollo-client/issues/5089

Ik voer de tests uit met jest --runInBand