Al ejecutar jest, si una función utiliza performance.getEntries (o performance.getEntriesByName ), la prueba genera una excepción:
performance.getEntries is not a function¿Cómo puedo permitir que mis pruebas continúen ejecutándose sin fallar?
De acuerdo con la documentación, performance.getEntries se eliminó de perf_hooks en NodeJS v10.0.0 ( https://github.com/nodejs/node/pull/19563 ) y se puede lograr la misma funcionalidad usando
const measures = [] const obs = new PerformanceObserver(list => { measures.push(...list.getEntries()) obs.disconnect() }) obs.observe({entryTypes: ['measure']}) function getEntriesByType(name) { return measures } Sin embargo, la solución anterior solo es viable cuando se trabaja directamente en la aplicación NodeJS, no cuando se ejecutan pruebas, ya que no quiero cambiar mi implementación. He intentado burlarme de performance.getEntries como global en setupAfterEnv , como lo haría con otros globales. Por ejemplo:
global.performance = { getEntries: () => [] } Sin embargo, cuando se depura, el rendimiento siempre es igual a {} (mientras que performance.now() funciona bien. Creo que este es jsdom predeterminado (que es mi testEnvironment ).