Skip to content

Commit

Permalink
JHLite: add Spring Boot MVC Tomcat
Browse files Browse the repository at this point in the history
  • Loading branch information
pascalgrimaud committed Mar 10, 2022
1 parent 6bbfe1e commit 93a6c95
Show file tree
Hide file tree
Showing 8 changed files with 70 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/main/webapp/app/springboot/domain/ProjectService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,5 @@ export interface ProjectService {
addMaven(project: Project): Promise<void>;
addJavaBase(project: Project): Promise<void>;
addSpringBoot(project: Project): Promise<void>;
addSpringBootMvcTomcat(project: Project): Promise<void>;
}
7 changes: 7 additions & 0 deletions src/main/webapp/app/springboot/primary/Generator.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,19 @@ export default defineComponent({
}
};

const addSpringBootMvcTomcat = async (): Promise<void> => {
if (project.value.folder !== '') {
await projectService.addSpringBootMvcTomcat(toProject(project.value));
}
};

return {
project,
initProject,
addMaven,
addJavaBase,
addSpringBoot,
addSpringBootMvcTomcat,
};
},
});
3 changes: 3 additions & 0 deletions src/main/webapp/app/springboot/primary/Generator.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,7 @@ <h3>Project configuration</h3>
<button id="maven" @click.prevent="addMaven" data-selector="generator.add-maven-button">Maven</button>
<button id="javabase" @click.prevent="addJavaBase" data-selector="generator.add-java-base-button">JavaBase</button>
<button id="springboot" @click.prevent="addSpringBoot" data-selector="generator.add-spring-boot-button">SpringBoot</button>
<button id="springbootmvctomcat" @click.prevent="addSpringBootMvcTomcat" data-selector="generator.add-spring-boot-mvc-tomcat-button">
Spring MVC Tomcat
</button>
</form>
5 changes: 5 additions & 0 deletions src/main/webapp/app/springboot/secondary/ProjectRepository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,9 @@ export default class ProjectRepository implements ProjectService {
const restProject: RestProject = toRestProject(project);
await this.axiosHttp.post('/api/servers/spring-boot', restProject);
}

async addSpringBootMvcTomcat(project: Project): Promise<void> {
const restProject: RestProject = toRestProject(project);
await this.axiosHttp.post('/api/servers/spring-boot/mvc/web/tomcat', restProject);
}
}
1 change: 1 addition & 0 deletions src/test/component/cypress/integration/Generator.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,6 @@ describe('Generator', () => {
cy.get(generatorSelector('add-maven-button')).contains('Maven');
cy.get(generatorSelector('add-java-base-button')).contains('JavaBase');
cy.get(generatorSelector('add-spring-boot-button')).contains('SpringBoot');
cy.get(generatorSelector('add-spring-boot-mvc-tomcat-button')).contains('Spring MVC Tomcat');
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ export interface ProjectServiceFixture extends ProjectService {
addMaven: SinonStub;
addJavaBase: SinonStub;
addSpringBoot: SinonStub;
addSpringBootMvcTomcat: SinonStub;
}

export const stubProjectService = (): ProjectServiceFixture => ({
init: sinon.stub(),
addMaven: sinon.stub(),
addJavaBase: sinon.stub(),
addSpringBoot: sinon.stub(),
addSpringBootMvcTomcat: sinon.stub(),
});
37 changes: 37 additions & 0 deletions src/test/javascript/spec/springboot/primary/Generator.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -192,4 +192,41 @@ describe('Generator', () => {
serverPort: 8080,
});
});

it('should not add SpringBoot MVC with Tomcat when project path is not filled', async () => {
const projectService = stubProjectService();
projectService.addSpringBootMvcTomcat.resolves({});
await wrap({ projectService });

const button = wrapper.find('#springbootmvctomcat');
await button.trigger('click');

expect(projectService.addSpringBootMvcTomcat.called).toBe(false);
});

it('should add SpringBoot when project path is filled', async () => {
const projectService = stubProjectService();
projectService.addSpringBootMvcTomcat.resolves({});
await wrap({ projectService });
const projectToUpdate: ProjectToUpdate = createProjectToUpdate({
folder: 'project/path',
baseName: 'beer',
projectName: 'Beer Project',
packageName: 'tech.jhipster.beer',
serverPort: '8080',
});
await fillFullForm(projectToUpdate);

const button = wrapper.find('#springbootmvctomcat');
await button.trigger('click');

const args = projectService.addSpringBootMvcTomcat.getCall(0).args[0];
expect(args).toEqual({
baseName: 'beer',
folder: 'project/path',
projectName: 'Beer Project',
packageName: 'tech.jhipster.beer',
serverPort: 8080,
});
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,18 @@ describe('ProjectRepository', () => {
expect(uri).toBe('/api/servers/spring-boot');
expect(payload).toEqual<RestProject>(expectedRestProject);
});

it('should add SpringBoot MVC with Tomcat', () => {
const axiosHttpStub = stubAxiosHttp();
axiosHttpStub.post.resolves();
const projectRepository = new ProjectRepository(axiosHttpStub);
const project: Project = createProject({ folder: 'folder/path' });

projectRepository.addSpringBootMvcTomcat(project);

const expectedRestProject: RestProject = toRestProject(project);
const [uri, payload] = axiosHttpStub.post.getCall(0).args;
expect(uri).toBe('/api/servers/spring-boot/mvc/web/tomcat');
expect(payload).toEqual<RestProject>(expectedRestProject);
});
});

0 comments on commit 93a6c95

Please sign in to comment.