Skip to content

Commit 7df3028

Browse files
committed
Testing Lab - Test for Project Mapper
1 parent 35c350b commit 7df3028

2 files changed

Lines changed: 87 additions & 4 deletions

File tree

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import * as apiModel from "./api/project.api-model";
2+
import * as viewModel from "./project.vm";
3+
import { mapProjectFromApiToVm } from "./project.mapper";
4+
5+
describe("project.mapper specs", () => {
6+
describe("mapProjectFromApiToVm", () => {
7+
it("should return empty project when feeding null project", () => {
8+
// Arrange
9+
const project = null;
10+
11+
// Act
12+
const result = mapProjectFromApiToVm(project);
13+
14+
// Assert
15+
const expectedResult = viewModel.createEmptyProject();
16+
expect(result).toEqual(expectedResult);
17+
});
18+
19+
it("should map project from api to vm when feeding project with data", () => {
20+
// Arrange
21+
const project: apiModel.Project = {
22+
id: "1",
23+
name: "Test Project",
24+
isActive: true,
25+
employees: [
26+
{
27+
id: "1",
28+
isAssigned: true,
29+
employeeName: "John Doe",
30+
},
31+
{
32+
id: "2",
33+
isAssigned: false,
34+
employeeName: "Jane Smith",
35+
},
36+
],
37+
};
38+
39+
// Act
40+
const result = mapProjectFromApiToVm(project);
41+
42+
// Assert
43+
expect(result).toEqual({
44+
id: "1",
45+
name: "Test Project",
46+
isActive: true,
47+
employees: [
48+
{
49+
id: "1",
50+
isAssigned: true,
51+
employeeName: "John Doe",
52+
},
53+
{
54+
id: "2",
55+
isAssigned: false,
56+
employeeName: "Jane Smith",
57+
},
58+
],
59+
});
60+
});
61+
62+
it("should map project from api to vm when feeding project with empty employees", () => {
63+
// Arrange
64+
const project: apiModel.Project = {
65+
id: "1",
66+
name: "Test Project",
67+
isActive: true,
68+
employees: [],
69+
};
70+
71+
// Act
72+
const result = mapProjectFromApiToVm(project);
73+
74+
// Assert
75+
expect(result).toEqual({
76+
id: "1",
77+
name: "Test Project",
78+
isActive: true,
79+
employees: [],
80+
});
81+
});
82+
});
83+
});

5 - Testing/Ejercicios/Testing-Lab/src/pods/project/project.mapper.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { mapToCollection } from '#common/mappers';
2-
import * as apiModel from './api/project.api-model';
3-
import * as viewModel from './project.vm';
1+
import { mapToCollection } from "#common/mappers";
2+
import * as apiModel from "./api/project.api-model";
3+
import * as viewModel from "./project.vm";
44

55
const mapEmployeeSummaryFromApiToVm = (
66
employeeSummary: apiModel.EmployeeSummary
@@ -11,7 +11,7 @@ const mapEmployeeSummaryFromApiToVm = (
1111
const mapEmployeeSummaryListFromApiToVm = (
1212
employeeSummary: apiModel.EmployeeSummary[]
1313
): viewModel.EmployeeSummary[] =>
14-
mapToCollection(employeeSummary, es => mapEmployeeSummaryFromApiToVm(es));
14+
mapToCollection(employeeSummary, (es) => mapEmployeeSummaryFromApiToVm(es));
1515

1616
export const mapProjectFromApiToVm = (
1717
project: apiModel.Project

0 commit comments

Comments
 (0)