53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
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);
|
|
}
|
|
});
|
|
});
|