Skip to content

Commit 56daed3

Browse files
author
Antonio Contreras LEMONCODE
committed
Implement unit test
1 parent 043f364 commit 56daed3

1 file changed

Lines changed: 120 additions & 0 deletions

File tree

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
import { mapEmployeeFromApiToVm } from './employee.mappers';
2+
import * as apiModel from './api/employee.api-model';
3+
import * as viewModel from './employee.vm';
4+
5+
describe('./pods/employee/employee.mappers', () => {
6+
it('should return empty employee when feeding null value', () => {
7+
// Arrange
8+
const employee = null;
9+
10+
// Act
11+
const result = mapEmployeeFromApiToVm(employee);
12+
13+
// Assert
14+
expect(result).toEqual(viewModel.createEmptyEmployee());
15+
});
16+
17+
it('should return empty employee when feeding undefined value', () => {
18+
// Arrange
19+
const employee = undefined;
20+
21+
// Act
22+
const result = mapEmployeeFromApiToVm(employee);
23+
24+
// Assert
25+
expect(result).toEqual(viewModel.createEmptyEmployee());
26+
});
27+
28+
it('should return expected result but feeding null project list', () => {
29+
// Arrange
30+
const employee: apiModel.Employee = {
31+
id: 'test id',
32+
name: 'test name',
33+
email: 'test@email.com',
34+
isActive: true,
35+
temporalPassword: 'test password',
36+
projects: null,
37+
};
38+
39+
const expectedResult: viewModel.Employee = {
40+
id: 'test id',
41+
name: 'test name',
42+
email: 'test@email.com',
43+
isActive: true,
44+
temporalPassword: 'test password',
45+
projects: [],
46+
};
47+
48+
// Act
49+
const result = mapEmployeeFromApiToVm(employee);
50+
51+
// Assert
52+
expect(result).toEqual(expectedResult);
53+
});
54+
55+
it('should return expected result but feeding undefined project list', () => {
56+
// Arrange
57+
const employee: apiModel.Employee = {
58+
id: 'test id',
59+
name: 'test name',
60+
email: 'test@email.com',
61+
isActive: true,
62+
temporalPassword: 'test password',
63+
projects: undefined,
64+
};
65+
66+
const expectedResult: viewModel.Employee = {
67+
id: 'test id',
68+
name: 'test name',
69+
email: 'test@email.com',
70+
isActive: true,
71+
temporalPassword: 'test password',
72+
projects: [],
73+
};
74+
75+
// Act
76+
const result = mapEmployeeFromApiToVm(employee);
77+
78+
// Assert
79+
expect(result).toEqual(expectedResult);
80+
});
81+
82+
it('should return expected result feeding correct values', () => {
83+
// Arrange
84+
const employee: apiModel.Employee = {
85+
id: 'test id',
86+
name: 'test name',
87+
email: 'test@email.com',
88+
isActive: true,
89+
temporalPassword: 'test password',
90+
projects: [
91+
{
92+
id: 'test id',
93+
employeeName: 'test employee name',
94+
isAssigned: true,
95+
},
96+
],
97+
};
98+
99+
const expectedResult: viewModel.Employee = {
100+
id: 'test id',
101+
name: 'test name',
102+
email: 'test@email.com',
103+
isActive: true,
104+
temporalPassword: 'test password',
105+
projects: [
106+
{
107+
id: 'test id',
108+
employeeName: 'test employee name',
109+
isAssigned: true,
110+
},
111+
],
112+
};
113+
114+
// Act
115+
const result = mapEmployeeFromApiToVm(employee);
116+
117+
// Assert
118+
expect(result).toEqual(expectedResult);
119+
});
120+
});

0 commit comments

Comments
 (0)