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
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.