user-api.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { CreateUserDto, UpdateUserDto, UserResponseDto } from '@app/domain';
  2. import request from 'supertest';
  3. export const userApi = {
  4. create: async (server: any, accessToken: string, dto: CreateUserDto) => {
  5. const { status, body } = await request(server)
  6. .post('/user')
  7. .set('Authorization', `Bearer ${accessToken}`)
  8. .send(dto);
  9. expect(status).toBe(201);
  10. expect(body).toMatchObject({
  11. id: expect.any(String),
  12. createdAt: expect.any(String),
  13. updatedAt: expect.any(String),
  14. email: dto.email,
  15. });
  16. return body as UserResponseDto;
  17. },
  18. get: async (server: any, accessToken: string, id: string) => {
  19. const { status, body } = await request(server)
  20. .get(`/user/info/${id}`)
  21. .set('Authorization', `Bearer ${accessToken}`);
  22. expect(status).toBe(200);
  23. expect(body).toMatchObject({ id });
  24. return body as UserResponseDto;
  25. },
  26. update: async (server: any, accessToken: string, dto: UpdateUserDto) => {
  27. const { status, body } = await request(server).put('/user').set('Authorization', `Bearer ${accessToken}`).send(dto);
  28. expect(status).toBe(200);
  29. expect(body).toMatchObject({ id: dto.id });
  30. return body as UserResponseDto;
  31. },
  32. delete: async (server: any, accessToken: string, id: string) => {
  33. const { status, body } = await request(server).delete(`/user/${id}`).set('Authorization', `Bearer ${accessToken}`);
  34. expect(status).toBe(200);
  35. expect(body).toMatchObject({ id, deletedAt: expect.any(String) });
  36. return body as UserResponseDto;
  37. },
  38. };