start
This commit is contained in:
52
src/api/__tests__/user-api.test.ts
Normal file
52
src/api/__tests__/user-api.test.ts
Normal file
@@ -0,0 +1,52 @@
|
||||
import { createUser, fetchUser } from '../user';
|
||||
import { mockFailureResponse } from '../../mocks/server';
|
||||
import { APIErrorType } from '../index';
|
||||
import { mockedCreateUserData } from '../../mocks/data';
|
||||
|
||||
describe('fetchUser api', () => {
|
||||
test('successful fetching user', async () => {
|
||||
const response = await fetchUser();
|
||||
|
||||
expect(response).toBeDefined();
|
||||
expect(response).toHaveProperty('id');
|
||||
expect(response).toHaveProperty('name');
|
||||
expect(response).toHaveProperty('mobile');
|
||||
});
|
||||
|
||||
test('failure fetching user', async () => {
|
||||
mockFailureResponse();
|
||||
try {
|
||||
await fetchUser();
|
||||
// Fail test if above expression doesn't throw anything.
|
||||
expect(true).toBe(false);
|
||||
} catch (e) {
|
||||
const error = e as APIErrorType;
|
||||
expect(error.status).toBe(500);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe('create user api', () => {
|
||||
const data = mockedCreateUserData;
|
||||
|
||||
test('successful creating user', async () => {
|
||||
const response = await createUser(data);
|
||||
|
||||
expect(response).toBeDefined();
|
||||
expect(response).toHaveProperty('id');
|
||||
expect(response).toMatchObject({ name: `${data.firstName} ${data.lastName}` });
|
||||
expect(response).toMatchObject({ mobile: data.mobile });
|
||||
});
|
||||
|
||||
test('failure creating user', async () => {
|
||||
mockFailureResponse();
|
||||
try {
|
||||
await createUser(data);
|
||||
// Fail test if above expression doesn't throw anything.
|
||||
expect(true).toBe(false);
|
||||
} catch (e) {
|
||||
const error = e as APIErrorType;
|
||||
expect(error.status).toBe(500);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user