Skip to content
This repository has been archived by the owner on Mar 21, 2021. It is now read-only.

Commit

Permalink
Merge pull request #543 from pascalgrimaud/add-promise-reject-in-case…
Browse files Browse the repository at this point in the history
…-of-an-error

Add Promise Reject in case of an error
  • Loading branch information
pascalgrimaud authored Feb 9, 2020
2 parents 213880b + 707ee5f commit dc4835a
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 13 deletions.
27 changes: 14 additions & 13 deletions generators/entity-client/templates/vue/src/main/webapp/app/entities/entity.service.ts.ejs
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -16,52 +16,53 @@ const baseSearchApiUrl = '<%= baseApi %>_search/<%= entityApiUrl %>?query=';
export default class <%= entityAngularName %>Service {
<%_ if (searchEngine === 'elasticsearch') { _%>
public search(query<% if (pagination !== 'no') { %>, paginationQuery<% } %>) : Promise<any> {
return new Promise<any>(resolve => {
return new Promise<any>((resolve, reject) => {
axios.get(`${baseSearchApiUrl}${query}<% if (pagination !== 'no') { %>&${buildPaginationQueryOpts(paginationQuery)}<% } %>`).then(function (res) {
resolve(<% if (pagination !== 'no') { %>res<% } else { %>res.data<% } %>);
});
}).catch(err => { reject(err); });
});
}
<%_ } _%>

public find(id: <% if (pkType === 'String' || pkType === 'UUID') { %>string<% } else { %>number<% } %>) : Promise<I<%= entityAngularName %>> {
return new Promise<I<%= entityAngularName %>>(resolve => {
return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
axios.get(`${baseApiUrl}/${id}`).then(function (res) {
resolve(res.data);
});
}).catch(err => { reject(err); });
});
}

public retrieve(<% if (pagination !== 'no') { %>paginationQuery?: any<% } %>) : Promise<any> {
return new Promise<any>(resolve => {
return new Promise<any>((resolve, reject) => {
axios.get(baseApiUrl<% if (pagination !== 'no') { %> + `?${buildPaginationQueryOpts(paginationQuery)}` <% } %>).then(function (res) {
resolve(res);
});
}).catch(err => { reject(err); });
});
}
<%_ if (!readOnly) { _%>
<%_
if (!readOnly) { _%>

public delete(id: <% if (pkType === 'String' || pkType === 'UUID') { %>string<% } else { %>number<% } %>) : Promise<any> {
return new Promise<any>(resolve => {
return new Promise<any>((resolve, reject) => {
axios.delete(`${baseApiUrl}/${id}`).then(function (res) {
resolve(res);
});
}).catch(err => { reject(err); });
});
}

public create(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
return new Promise<I<%= entityAngularName %>>(resolve => {
return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
axios.post(`${baseApiUrl}`, entity).then(function (res) {
resolve(res.data);
});
}).catch(err => { reject(err); });
});
}

public update(entity: I<%= entityAngularName %>) : Promise<I<%= entityAngularName %>> {
return new Promise<I<%= entityAngularName %>>(resolve => {
return new Promise<I<%= entityAngularName %>>((resolve, reject) => {
axios.put(`${baseApiUrl}`, entity).then(function (res) {
resolve(res.data);
});
}).catch(err => { reject(err); });
});
}
<%_ } _%>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@ if (field.fieldIsEnum && !enumsAlreadyDeclared.includes(field.fieldType)) {
} from '@/shared/model/<%= entityModelFileName %>.model';

const mockedAxios: any = axios;
const error = {
response: {
status: null,
data: {
type: null
}
}
};

jest.mock('axios', () => ({
get: jest.fn(),
post: jest.fn(),
Expand Down Expand Up @@ -106,6 +115,16 @@ describe('Service Tests', () => {
expect(res).toMatchObject(elemDefault);
});
});

it('should not find an element', async () => {
mockedAxios.get.mockReturnValue(Promise.reject(error));
return service.find(<%- tsKeyId %>)
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});

<%_ if (!readOnly) { _%>
it('should create a <%= entityAngularName %>', async () => {
const returnedFromService = Object.assign({
Expand Down Expand Up @@ -140,6 +159,16 @@ describe('Service Tests', () => {
});
});

it('should not create a <%= entityAngularName %>', async () => {
mockedAxios.post.mockReturnValue(Promise.reject(error));

return service.create({})
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});

it('should update a <%= entityAngularName %>', async () => {
const returnedFromService = Object.assign({
<%_ fields.forEach((field) => {
Expand Down Expand Up @@ -176,6 +205,17 @@ describe('Service Tests', () => {
expect(res).toMatchObject(expected);
});
});

it('should not update a <%= entityAngularName %>', async () => {
mockedAxios.put.mockReturnValue(Promise.reject(error));

return service.update({})
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});

<%_ } _%>
it('should return a list of <%= entityAngularName %>', async () => {
const returnedFromService = Object.assign({
Expand Down Expand Up @@ -211,13 +251,34 @@ describe('Service Tests', () => {
expect(res).toContainEqual(expected);
});
});

it('should not return a list of <%= entityAngularName %>', async () => {
mockedAxios.get.mockReturnValue(Promise.reject(error));

return service.retrieve()
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});

<%_ if (!readOnly) { _%>
it('should delete a <%= entityAngularName %>', async () => {
mockedAxios.delete.mockReturnValue(Promise.resolve({ok: true}));
return service.delete(<%- tsKeyId %>).then((res) => {
expect(res.ok).toBeTruthy();
});
});

it('should not delete a <%= entityAngularName %>', async () => {
mockedAxios.delete.mockReturnValue(Promise.reject(error));

return service.delete(<%- tsKeyId %>)
.then()
.catch(err => {
expect(err).toMatchObject(error);
});
});
<%_ } _%>
});
});
Expand Down

0 comments on commit dc4835a

Please sign in to comment.