Giter Club home page Giter Club logo

Comments (9)

Optarion avatar Optarion commented on June 3, 2024 10

I did face the same issue while launching my jest tests with version 9.0.4.

I manage to fix it by adding react-redux in the list of transformIgnorePatterns:

"transformIgnorePatterns": [
      "node_modules/(?!((jest-)?react-native|...|react-redux)"
    ],

hope it will help some folks :)

from react-redux.

markerikson avatar markerikson commented on June 3, 2024 3

There you go! https://github.com/reduxjs/react-redux/releases/tag/v9.0.2

from react-redux.

markerikson avatar markerikson commented on June 3, 2024

Yeah, this seems like more of a Jest/ESM config issue at first glance. Jest normally transforms ESM module files into CJS, as far as I know. Seems like it isn't transforming this file.

Out of curiosity, what happens if you use the CodeSandbox CI build from #2102 ? Merged that additional tweak last night but haven't released it yet.

from react-redux.

pwltr avatar pwltr commented on June 3, 2024

Hi @markerikson !

After pulling from master and running tsup tests do indeed seem to be running again :) So can confirm that PR fixed react-native issues.

Congrats on the release btw, really awesome work 🎉

from react-redux.

markerikson avatar markerikson commented on June 3, 2024

Thanks! I'm out for the evening, but will publish that as 9.0.2 once I'm back

from react-redux.

pwltr avatar pwltr commented on June 3, 2024

Much appreciated!

from react-redux.

ejvet-ct avatar ejvet-ct commented on June 3, 2024

Unfortunately, I'm seeing a similar issue to this on version 9.0.2.

Details:

.../node_modules/react-redux/dist/react-redux.react-native.js:2
import * as ReactOriginal from "react";
^^^^^^

SyntaxError: Cannot use import statement outside a module

Although I can see the change to the filename you referenced, the outcome for my environment seems the same. @pwltr Did your Jest tests run fine once you upgraded?

from react-redux.

pwltr avatar pwltr commented on June 3, 2024

@ejvet-ct Yes my tests are running fine now, can see it in CI here. FWIW I haven't changed anything in the jest config or elsewhere.

from react-redux.

mrarslanark avatar mrarslanark commented on June 3, 2024

Hi, @Optarion. Thanks for this but when I add react-redux to transformIgnorePatterns I end up with the following:

// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`App should render successfully 1`] = `null`;

App.test.tsx

import App from "App"
import React from "react"
import { act } from "react-test-renderer"
import { renderWithProviders } from "src/helpers/wrapper"

describe("App", () => {
  it("should render successfully", async () => {
    const view = renderWithProviders(<App />).toJSON()
    await act(() => {
      expect(view).toMatchSnapshot()
    })
  })
})

wrapper.tsx

import { NavigationContainer } from "@react-navigation/native"
import { render, type RenderOptions } from "@testing-library/react-native"
import React, { type PropsWithChildren } from "react"
import { Provider } from "react-redux"
import { setupStore, type AppStore, type RootState } from "src/store"

interface ExtendedRenderOptions extends Omit<RenderOptions, "queries"> {
  preloadedState?: Partial<RootState>
  store?: AppStore
}

export function renderWithProviders(
  ui: React.ReactElement,
  extendedRenderOptions: ExtendedRenderOptions = {}
) {
  const {
    preloadedState = {},
    // Automatically create a store instance if no store was passed in
    store = setupStore(preloadedState),
    ...renderOptions
  } = extendedRenderOptions

  const Wrapper = ({ children }: PropsWithChildren) => (
    <Provider store={store}>{children}</Provider>
  )

  // Return an object with the store and all of RTL's query functions
  return {
    store,
    ...render(ui, { wrapper: Wrapper, ...renderOptions })
  }
}

What could be the reason of getting null for my snapshot?

from react-redux.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.