No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Integration Test

22/27
Recursos

Aportes 2

Preguntas 1

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

ERROR

Si llegan a tener este error:

 ~/.../testing-js/api   master ●  npm run test:e2e

> [email protected] test:e2e
> jest --config ./e2e/jest-e2e.json --forceExit

 PASS  e2e/hello.e2e.js
 FAIL  e2e/books.e2e.js
  ● Test suite failed to run

    ReferenceError: Cannot access 'mockGetAll' before initialization

      13 | jest.mock('../src/lib/mongo.lib', () => jest.fn().mockImplementation(() => ({
      14 |   // Metodos a suplantar.
    > 15 |   getAll: mockGetAll,
         |           ^
      16 |   create: () => {},
      17 | })));
      18 |

      at mockConstructor.<anonymous> (books.e2e.js:15:11)
      at new BooksService (../src/services/books.service.js:6:20)
      at Object.<anonymous> (../src/routes/books.router.js:5:17)

Test Suites: 1 failed, 1 passed, 2 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        2.384 s
Ran all test suites.
Force exiting Jest: Have you considered using `--detectOpenHandles` to detect async operations that kept running after all tests finished?

Yo lo solucioné declarando mockGetAll arriba de las importaciones así:


// Esta es una prueba de integración, pero lleva la extensión e2e.js para que...
// ... lo ejecute testRegex del archivo de configuración de Supertest (jest-e2e.json).

const mockGetAll = jest.fn(); // Tocó subirla para que la llame bien en el test.

const request = require('supertest');

const { generateManyBook } = require('../src/fakes/book.fake');

const createApp = require('../src/app');

Ojo: generateManyBook no puede importarse encima de request.

  • Profe @nicobites, será que lo hice bien?, porque creo que caí en una mala práctica pero funciona.

El que no se haya equivocado en un caracter programando que lance la primera piedra jaja