Completed
Push — master ( e65836...fa4d5c )
by Mathieu
12s queued 10s
created

server/src/Application/Task/Query/GetTaskByIdQueryHandler.spec.ts   A

Complexity

Total Complexity 1
Complexity/F 0

Size

Lines of Code 52
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 43
dl 0
loc 52
rs 10
c 0
b 0
f 0
wmc 1
mnd 1
bc 1
fnc 0
bpm 0
cpm 0
noi 0
1
import {mock, instance, when, verify} from 'ts-mockito';
2
import {TaskRepository} from 'src/Infrastructure/Task/Repository/TaskRepository';
3
import {Task} from 'src/Domain/Task/Task.entity';
4
import {TaskView} from 'src/Application/Task/View/TaskView';
5
import {GetTaskByIdQueryHandler} from './GetTaskByIdQueryHandler';
6
import {GetTaskByIdQuery} from './GetTaskByIdQuery';
7
import {TaskNotFoundException} from 'src/Domain/Task/Exception/TaskNotFoundException';
8
9
describe('GetTaskByIdQueryHandler', () => {
10
  const query = new GetTaskByIdQuery('eb9e1d9b-dce2-48a9-b64f-f0872f3157d2');
11
12
  it('testGetTask', async () => {
13
    const taskRepository = mock(TaskRepository);
14
    const queryHandler = new GetTaskByIdQueryHandler(instance(taskRepository));
15
    const expectedResult = new TaskView(
16
      'eb9e1d9b-dce2-48a9-b64f-f0872f3157d2',
17
      'Coaching'
18
    );
19
    const task = mock(Task);
20
21
    when(task.getId()).thenReturn('eb9e1d9b-dce2-48a9-b64f-f0872f3157d2');
22
    when(task.getName()).thenReturn('Coaching');
23
    when(
24
      taskRepository.findOneById('eb9e1d9b-dce2-48a9-b64f-f0872f3157d2')
25
    ).thenResolve(instance(task));
26
27
    expect(await queryHandler.execute(query)).toMatchObject(expectedResult);
28
29
    verify(
30
      taskRepository.findOneById('eb9e1d9b-dce2-48a9-b64f-f0872f3157d2')
31
    ).once();
32
  });
33
34
  it('testGetTaskNotFound', async () => {
35
    const taskRepository = mock(TaskRepository);
36
    const queryHandler = new GetTaskByIdQueryHandler(instance(taskRepository));
37
    when(
38
      taskRepository.findOneById('eb9e1d9b-dce2-48a9-b64f-f0872f3157d2')
39
    ).thenResolve(null);
40
41
    try {
42
      await queryHandler.execute(query);
43
    } catch (e) {
44
      expect(e).toBeInstanceOf(TaskNotFoundException);
45
      expect(e.message).toBe('accounting.tasks.errors.not_found');
46
      verify(
47
        taskRepository.findOneById('eb9e1d9b-dce2-48a9-b64f-f0872f3157d2')
48
      ).once();
49
    }
50
  });
51
});
52