mercredi 16 octobre 2019

NestJs - Jest - Test: ConnectionNotFoundError: Connection "default" was not found

I am trying to write a test of a simple TODO App.

This is my test class:


    const mockTaskRepository = () => ({
        createTask: jest.fn(),
    });

    describe('TasksService', () => {
        let tasksService;
        let taskRepository;

      beforeEach(async () => {
            const module = await Test.createTestingModule({
                providers: [TasksService, { provide: TaskRepository, useFactory: mockTaskRepository }],
            }).compile();

            tasksService = await module.get<TasksService>(TasksService);
            taskRepository = await module.get<TaskRepository>(TaskRepository);
        });

      describe('create task', () => {
            it('calls taskRepository.create() and returns the result', async () => {
                const createTaskDto = {
                    title: 'Test task',
                    description: 'Test desc',
                };
                taskRepository.createTask.mockResolvedValue('someTask');
                expect(taskRepository.createTask).not.toHaveBeenCalled();
                const result = await tasksService.createTask(createTaskDto);
                expect(taskRepository.createTask).toHaveBeenCalledWith(createTaskDto);
                expect(result).toEqual('someValue');
            });
        });
    });

When I try to run the Create a Task test, the error below occurs.

FAIL  src/tasks/tasks.service.spec.ts
  ● TasksService › create task › calls taskRepository.create() and returns the result

    ConnectionNotFoundError: Connection "default" was not found.

      at new ConnectionNotFoundError (error/ConnectionNotFoundError.ts:8:9)
      at ConnectionManager.Object.<anonymous>.ConnectionManager.get (connection/ConnectionManager.ts:40:19)
      at Object.getConnection (index.ts:247:35)
      at Function.Object.<anonymous>.BaseEntity.getRepository (repository/BaseEntity.ts:85:72)
      at Task.Object.<anonymous>.BaseEntity.save (repository/BaseEntity.ts:50:42)
      at TasksService.createTask (tasks/tasks.service.ts:35:14)
      at Object.<anonymous> (tasks/tasks.service.spec.ts:69:38)

Test Suites: 1 failed, 1 passed, 2 total
Tests:       1 failed, 8 passed, 9 total

Anyone know what's the mistake in the code?

Thanks in advance!

Aucun commentaire:

Enregistrer un commentaire