Skip to content

Commit

Permalink
Merge pull request #952 from Franceq34/add-secondary-mapper-for-project
Browse files Browse the repository at this point in the history
Add secondary mapper for project object
  • Loading branch information
pascalgrimaud authored Mar 7, 2022
2 parents 5cb7424 + c4c7665 commit 1587d9d
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 4 deletions.
7 changes: 5 additions & 2 deletions src/main/webapp/app/generator/secondary/ProjectRepository.ts
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
import { Project } from '@/generator/domain/Project';
import { ProjectService } from '@/generator/domain/ProjectService';
import { AxiosHttp } from '@/http/AxiosHttp';
import { RestProject, toRestProject } from '@/generator/secondary/RestProject';

export default class ProjectRepository implements ProjectService {
constructor(private axiosHttp: AxiosHttp) {}

async init(project: Project): Promise<void> {
await this.axiosHttp.post('api/projects/init', project);
const restProject: RestProject = toRestProject(project);
await this.axiosHttp.post('api/projects/init', restProject);
}

async addMaven(project: Project): Promise<void> {
await this.axiosHttp.post('api/build-tools/maven', project);
const restProject: RestProject = toRestProject(project);
await this.axiosHttp.post('api/build-tools/maven', restProject);
}
}
9 changes: 9 additions & 0 deletions src/main/webapp/app/generator/secondary/RestProject.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Project } from '@/generator/domain/Project';

export interface RestProject {
folder: string;
}

export const toRestProject = (project: Project): RestProject => ({
folder: project.folder,
});
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Project } from '@/generator/domain/Project';
import ProjectRepository from '@/generator/secondary/ProjectRepository';
import { stubAxiosHttp } from '../../http/AxiosHttpStub';
import { RestProject, toRestProject } from '@/generator/secondary/RestProject';

describe('ProjectRepository', () => {
it('should init project', () => {
Expand All @@ -11,9 +12,10 @@ describe('ProjectRepository', () => {

projectRepository.init(project);

const expectedRestProject: RestProject = toRestProject(project);
const [uri, payload] = axiosHttpStub.post.getCall(0).args;
expect(uri).toBe('api/projects/init');
expect(payload).toEqual<Project>(project);
expect(payload).toEqual<RestProject>(expectedRestProject);
});

it('should add Maven', () => {
Expand All @@ -24,8 +26,9 @@ describe('ProjectRepository', () => {

projectRepository.addMaven(project);

const expectedRestProject: RestProject = toRestProject(project);
const [uri, payload] = axiosHttpStub.post.getCall(0).args;
expect(uri).toBe('api/build-tools/maven');
expect(payload).toEqual<Project>(project);
expect(payload).toEqual<RestProject>(expectedRestProject);
});
});
14 changes: 14 additions & 0 deletions src/test/javascript/spec/generator/secondary/RestProject.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { RestProject, toRestProject } from '@/generator/secondary/RestProject';
import { Project } from '@/generator/domain/Project';

describe('RestProject', () => {
it('should convert to Project', () => {
const project: Project = {
folder: 'folder',
};

expect(toRestProject(project)).toEqual<RestProject>({
folder: 'folder',
});
});
});

0 comments on commit 1587d9d

Please sign in to comment.