Skip to content

Commit 140f68b

Browse files
author
Abigail Cabascango
committed
refactor: TTA-164 refactor services
1 parent 503b12e commit 140f68b

File tree

3 files changed

+162
-1
lines changed

3 files changed

+162
-1
lines changed

src/app/modules/customer-management/components/projects/components/services/project.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Injectable } from '@angular/core';
22
import { HttpClient, HttpParams } from '@angular/common/http';
33
import { Observable } from 'rxjs';
4+
45
import { environment } from '../../../../../../../environments/environment';
56
import { EnvironmentType } from '../../../../../../../environments/enum';
67
import { Project } from '../../../../../shared/models';
@@ -9,7 +10,6 @@ import { Project } from '../../../../../shared/models';
910
providedIn: 'root',
1011
})
1112
export class ProjectService {
12-
projects: Project[] = [];
1313
url = `${environment.timeTrackerApiUrl}/projects`;
1414
isDevelopmentOrProd = environment.production === EnvironmentType.TT_DEV || environment.production === EnvironmentType.TT_PROD;
1515

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
// import { TestBed, inject } from '@angular/core/testing';
2+
// import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
3+
4+
// import { ServicesManagementService } from './services-management.service';
5+
6+
// describe('ServicesManagementService', () => {
7+
// let service: ServicesManagementService;
8+
// let httpMock: HttpTestingController;
9+
10+
// const projectsList: Project[] = [
11+
// {
12+
// id: '1',
13+
// name: 'app 1',
14+
// description: 'It is a good app',
15+
// project_type_id: '123',
16+
// },
17+
// {
18+
// id: '2',
19+
// name: 'app 2',
20+
// description: 'It is a good app',
21+
// project_type_id: '123',
22+
// },
23+
// {
24+
// id: '3',
25+
// name: 'app 3',
26+
// description: 'It is a good app',
27+
// project_type_id: '123',
28+
// },
29+
// ];
30+
31+
// beforeEach(() => {
32+
// TestBed.configureTestingModule({
33+
// imports: [HttpClientTestingModule],
34+
// });
35+
// service = TestBed.inject(ServicesManagementService);
36+
// httpMock = TestBed.inject(HttpTestingController);
37+
// });
38+
39+
// afterEach(() => {
40+
// httpMock.verify();
41+
// });
42+
43+
// it('should be created', inject(
44+
// [HttpClientTestingModule, ServicesManagementService],
45+
// (httpClient: HttpClientTestingModule, apiService: ServicesManagementService) => {
46+
// expect(apiService).toBeTruthy();
47+
// expect(httpClient).toBeTruthy();
48+
// }
49+
// ));
50+
51+
// it('all projects are read using GET from url', () => {
52+
// const projectsFoundSize = projectsList.length;
53+
// service.getAll().subscribe((projectsInResponse) => {
54+
// expect(projectsInResponse.length).toBe(projectsFoundSize);
55+
// });
56+
// const getProjectsRequest = httpMock.expectOne(service.url);
57+
// expect(getProjectsRequest.request.method).toBe('GET');
58+
// getProjectsRequest.flush(projectsList);
59+
// });
60+
61+
// it('projects are read using GET from url', () => {
62+
// const projectsFoundSize = projectsList.length;
63+
// service.url = '/projects';
64+
// service.getProjects({ customerId: 'xyz' }).subscribe((projectsInResponse) => {
65+
// expect(projectsInResponse.length).toBe(projectsFoundSize);
66+
// });
67+
// const getProjectsRequest = httpMock.expectOne(`${service.url}?customer_id=xyz`);
68+
// expect(getProjectsRequest.request.method).toBe('GET');
69+
// getProjectsRequest.flush(projectsList);
70+
// });
71+
72+
// it('recent projects are read using GET from url/recent', () => {
73+
// const projectsFoundSize = projectsList.length;
74+
// service.getRecentProjects().subscribe((projectsInResponse) => {
75+
// expect(projectsInResponse.length).toBe(projectsFoundSize);
76+
// });
77+
// const getProjectsRequest = httpMock.expectOne(`${service.url}/recent`);
78+
// expect(getProjectsRequest.request.method).toBe('GET');
79+
// getProjectsRequest.flush(projectsList);
80+
// });
81+
82+
// it('create project using POST from url', () => {
83+
// const project: Project[] = [{ id: '1', name: 'ccc', description: 'xxx', project_type_id: '123' }];
84+
// service.url = 'projects';
85+
// service.createProject(project).subscribe((response) => {
86+
// expect(response.length).toBe(1);
87+
// });
88+
// const createProjectsRequest = httpMock.expectOne(service.url);
89+
// expect(createProjectsRequest.request.method).toBe('POST');
90+
// createProjectsRequest.flush(project);
91+
// });
92+
93+
// it('update project using PUT from url', () => {
94+
// const project: Project = { id: '1', name: 'new name', description: 'description', project_type_id: '123' };
95+
// service.url = 'projects';
96+
// service.updateProject(project).subscribe((response) => {
97+
// expect(response.name).toBe('new name');
98+
// });
99+
// const updateProjectRequest = httpMock.expectOne(`${service.url}/${project.id}`);
100+
// expect(updateProjectRequest.request.method).toBe('PUT');
101+
// updateProjectRequest.flush(project);
102+
// });
103+
104+
// it('update project using PUT from url locally', () => {
105+
// const project: Project = { id: '1', name: 'new name', description: 'description', project_type_id: '123', status: 'active'};
106+
// service.url = 'projects';
107+
// service.isDevelopmentOrProd = true;
108+
// service.updateProject(project).subscribe((response) => {
109+
// expect(response.name).toBe('new name');
110+
// });
111+
// const updateProjectRequest = httpMock.expectOne(`${service.url}/${project.id}`);
112+
// expect(updateProjectRequest.request.method).toBe('PUT');
113+
// updateProjectRequest.flush(project);
114+
// });
115+
116+
// it('delete project using DELETE from baseUrl', () => {
117+
// const url = `${service.url}/1`;
118+
// service.isDevelopmentOrProd = false;
119+
// service.deleteProject(projectsList[0].id).subscribe((projectsInResponse) => {
120+
// expect(projectsInResponse.filter((project) => project.id !== projectsList[0].id).length).toEqual(2);
121+
// });
122+
// const deleteActivitiesRequest = httpMock.expectOne(url);
123+
// expect(deleteActivitiesRequest.request.method).toBe('DELETE');
124+
// deleteActivitiesRequest.flush(projectsList);
125+
// });
126+
127+
// it('update status project using PUT from baseUrl locally', () => {
128+
// const url = `${service.url}/1`;
129+
// service.isDevelopmentOrProd = true;
130+
// service.deleteProject(projectsList[0].id).subscribe((projectsInResponse) => {
131+
// expect(projectsInResponse.filter((project) => project.id !== projectsList[0].id).length).toEqual(2);
132+
// });
133+
// const deleteActivitiesRequest = httpMock.expectOne(url);
134+
// expect(deleteActivitiesRequest.request.method).toBe('PUT');
135+
// deleteActivitiesRequest.flush(projectsList);
136+
// });
137+
138+
// });
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// import { Injectable } from '@angular/core';
2+
// import { Interface } from 'readline';
3+
// import { HttpClient, HttpParams } from '@angular/common/http';
4+
// import { Observable } from 'rxjs';
5+
6+
// import { environment } from '../../../environments/environment';
7+
// import { EnvironmentType } from '../../../environments/enum';
8+
// import { Project } from '../shared/models';
9+
10+
// @Injectable({
11+
// providedIn: 'root'
12+
// })
13+
// export abstract class ServicesManagementService {
14+
// url = `${environment.timeTrackerApiUrl}/projects`;
15+
// isDevelopmentOrProd = environment.production === EnvironmentType.TT_DEV || environment.production === EnvironmentType.TT_PROD;
16+
17+
// constructor(private http: HttpClient) { }
18+
19+
// protected getAll(interfaceModel: any): Observable<Interface> {
20+
// return this.http.get<interfaceModel[]>(this.url);
21+
// }
22+
23+
// }

0 commit comments

Comments
 (0)