web-dev-qa-db-fra.com

flatMap ne fonctionne pas dans le test de fil javascript

J'ai du code dans une de mes méthodes de composants en utilisant flatMap . Le code fonctionne très bien dans le navigateur, mais la méthode flatMap n'est pas là lors de l'exécution du code à l'aide de yarn test. Est-ce que quelqu'un a déjà vu quelque chose comme ça avant?

● Click Events › should copy table data

TypeError: children.map(...).flatMap is not a function

  181 |     const dataKeys = children
  182 |       .map(({ $: { data: dataKey } }) => dataKey)
> 183 |       .flatMap(k => k.split(LEVEL_DELIMITER));
      |        ^

EDIT - exemple reproductible: création d'une base CRA et ajout de ce test simple:

it('can flatMap', () => {
    [1, 2, 3, 4].flatMap(x => [x * 2]);
});

a obtenu la même erreur:

 FAIL  src/App.test.js
● can flatMap

TypeError: [1,2,3,4].flatMap is not a function

  at Object.<anonymous>.it (src/App.test.js:12:16)
      at new Promise (<anonymous>)
  at Promise.resolve.then.el (node_modules/p-map/index.js:46:16)
      at <anonymous>
  at process._tickCallback (internal/process/next_tick.js:188:7)

✓ renders without crashing (4ms)
✕ can flatMap
13
Nick Brady

Pour ce que ça vaut, l'utilisation d'un paquet de polyfill react a également fonctionné pour moi. Je peux contrôler mon propre environnement local, mais le système de build avec lequel je dois travailler est plus restreint et utilisé par plusieurs équipes.

paquet npm: react-app-polyfill

Usage:

// setupTests.js (jest)
// Using ie9 polyfills as the "kitchen sink" of polyfills
import 'react-app-polyfill/ie9';
import 'react-app-polyfill/stable';

Cela fonctionne pour Node v10.16.0, ce que j'ai actuellement.

2
Drew Reese