diff --git a/infra/api/entities/users-api/Users.ts b/infra/api/entities/users-api/Users.ts index 250587f..c2a4abe 100644 --- a/infra/api/entities/users-api/Users.ts +++ b/infra/api/entities/users-api/Users.ts @@ -1,6 +1,6 @@ import { APIResponse } from "@playwright/test"; import { ApiClient } from "@api-client"; -import MockDataGenerator, { ApplicationUrl, RequestMethod, PaginationType } from "@api-helpers"; +import MockDataGenerator, { ApplicationUrl, RequestMethod, PaginationType, payloads } from "@api-helpers"; import { ApiEndpoints } from "@api-endpoints"; export class Users extends ApiClient { @@ -32,25 +32,11 @@ export class Users extends ApiClient { return; } else if (maleUsers > femaleUsers) { for (let i = 0; i < difference; i++) { - let femaleData = { - id: MockDataGenerator.getRandomNumber(), - name: MockDataGenerator.getRandomFemaleFirstName(), - email: MockDataGenerator.getRandomEmail(), - gender: 'female', - status: 'active', - } - response = await this.post(this.usersEndpoint, { requestData: femaleData, isAuthorizationRequired: true }) + response = await this.post(this.usersEndpoint, { requestData: payloads.femaleData, isAuthorizationRequired: true }) } } else { for (let i = 0; i < difference; i++) { - let maleData = { - id: MockDataGenerator.getRandomNumber(), - name: MockDataGenerator.getRandomMaleFirstName(), - email: MockDataGenerator.getRandomEmail(), - gender: 'male', - status: 'active', - } - response = await this.post(this.usersEndpoint, { requestData: maleData, isAuthorizationRequired: true }) + response = await this.post(this.usersEndpoint, { requestData: payloads.maleData, isAuthorizationRequired: true }) } } return response; diff --git a/infra/api/helpers/mocks/payloads.ts b/infra/api/helpers/mocks/payloads.ts index 97d2197..209f500 100644 --- a/infra/api/helpers/mocks/payloads.ts +++ b/infra/api/helpers/mocks/payloads.ts @@ -1,7 +1,6 @@ import MockDataGenerator from "@api-helpers"; export const payloads = { - createdPet: { id: 3193, category: { @@ -34,5 +33,21 @@ export const payloads = { } ], status: 'available' + }, + + maleData: { + id: MockDataGenerator.getRandomNumber(), + name: MockDataGenerator.getRandomMaleFirstName(), + email: MockDataGenerator.getRandomEmail(), + gender: 'male', + status: 'active', + }, + + femaleData: { + id: MockDataGenerator.getRandomNumber(), + name: MockDataGenerator.getRandomFemaleFirstName(), + email: MockDataGenerator.getRandomEmail(), + gender: 'female', + status: 'active', } } \ No newline at end of file diff --git a/infra/api/helpers/test-tags/test-tags.ts b/infra/api/helpers/test-tags/test-tags.ts index 3716f4f..53ef340 100644 --- a/infra/api/helpers/test-tags/test-tags.ts +++ b/infra/api/helpers/test-tags/test-tags.ts @@ -1,5 +1,5 @@ export enum TestTags { - GO_REST_API = '@GoRestApi', + Users = '@Users', PET_STORE = '@PetStore', POKEMON_API = '@PokemonApi', } \ No newline at end of file diff --git a/tests/api_tests/users/UsersApiTests.spec.ts b/tests/api_tests/users/UsersApiTests.spec.ts index 708797d..3ae9122 100644 --- a/tests/api_tests/users/UsersApiTests.spec.ts +++ b/tests/api_tests/users/UsersApiTests.spec.ts @@ -5,7 +5,7 @@ import { StatusCode, TestTags } from '@api-helpers'; test.describe('Api tests for GoRestApi endpoints', async () => { - test('sanity check - [GET] /users', { tag: [TestTags.GO_REST_API] }, async ({ usersApi }) => { + test('sanity check - [GET] /users', { tag: [TestTags.Users] }, async ({ usersApi }) => { await test.step('get users endpoint - validate status, body type of object properties and default length of the response', async () => { let response = await usersApi.getUsers(); expect(response?.status()).toBe(StatusCode.OK) @@ -19,7 +19,7 @@ test.describe('Api tests for GoRestApi endpoints', async () => { /** * @description there is a bug with this endpoint - it does not authorize any generated toke=n whatsoever */ - test('gender equality - [POST] /users', { tag: [TestTags.GO_REST_API] }, async ({ usersApi }) => { + test('gender equality - [POST] /users', { tag: [TestTags.Users] }, async ({ usersApi }) => { await test.step('make an api request to make both male and female genders equal', async () => { await usersApi.makeBothGendersEven(); let maleGender = await usersApi.getGender('male') @@ -28,7 +28,7 @@ test.describe('Api tests for GoRestApi endpoints', async () => { }) }) - test('replace email extension of users - [PATCH] /users/:userId', { tag: [TestTags.GO_REST_API] }, async ({ usersApi }) => { + test('replace email extension of users - [PATCH] /users/:userId', { tag: [TestTags.Users] }, async ({ usersApi }) => { await test.step('extract extension of each user email and replace each extension with co.il', async () => { let response = await usersApi.replaceEmailExtensionForUsers() expect(response?.status()).toBe(StatusCode.OK) @@ -40,7 +40,7 @@ test.describe('Api tests for GoRestApi endpoints', async () => { }) }) - test('delete inactive users - [DELETE] /users/:userId', { tag: [TestTags.GO_REST_API] }, async ({ usersApi }) => { + test('delete inactive users - [DELETE] /users/:userId', { tag: [TestTags.Users] }, async ({ usersApi }) => { await test.step('make a request to delete all users that have an inactive status', async () => { let response = await usersApi.deleteInactiveUsers() expect(response?.status()).toBe(StatusCode.UNAUTHORIZED)