auth-api.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { AdminSignupResponseDto, AuthDeviceResponseDto, LoginCredentialDto, LoginResponseDto } from '@app/domain';
  2. import { adminSignupStub, loginResponseStub, loginStub, signupResponseStub } from '@test';
  3. import request from 'supertest';
  4. export const authApi = {
  5. adminSignUp: async (server: any) => {
  6. const { status, body } = await request(server).post('/auth/admin-sign-up').send(adminSignupStub);
  7. expect(status).toBe(201);
  8. expect(body).toEqual(signupResponseStub);
  9. return body as AdminSignupResponseDto;
  10. },
  11. adminLogin: async (server: any) => {
  12. const { status, body } = await request(server).post('/auth/login').send(loginStub.admin);
  13. expect(body).toEqual(loginResponseStub.admin.response);
  14. expect(body).toMatchObject({ accessToken: expect.any(String) });
  15. expect(status).toBe(201);
  16. return body as LoginResponseDto;
  17. },
  18. login: async (server: any, dto: LoginCredentialDto) => {
  19. const { status, body } = await request(server).post('/auth/login').send(dto);
  20. expect(status).toEqual(201);
  21. expect(body).toMatchObject({ accessToken: expect.any(String) });
  22. return body as LoginResponseDto;
  23. },
  24. getAuthDevices: async (server: any, accessToken: string) => {
  25. const { status, body } = await request(server).get('/auth/devices').set('Authorization', `Bearer ${accessToken}`);
  26. expect(body).toEqual(expect.any(Array));
  27. expect(status).toBe(200);
  28. return body as AuthDeviceResponseDto[];
  29. },
  30. validateToken: async (server: any, accessToken: string) => {
  31. const { status, body } = await request(server)
  32. .post('/auth/validateToken')
  33. .set('Authorization', `Bearer ${accessToken}`);
  34. expect(body).toEqual({ authStatus: true });
  35. expect(status).toBe(200);
  36. },
  37. };