Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 3 additions & 17 deletions infra/api/entities/users-api/Users.ts
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down Expand Up @@ -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;
Expand Down
17 changes: 16 additions & 1 deletion infra/api/helpers/mocks/payloads.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import MockDataGenerator from "@api-helpers";

export const payloads = {

createdPet: {
id: 3193,
category: {
Expand Down Expand Up @@ -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',
}
}
2 changes: 1 addition & 1 deletion infra/api/helpers/test-tags/test-tags.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export enum TestTags {
GO_REST_API = '@GoRestApi',
Users = '@Users',
PET_STORE = '@PetStore',
POKEMON_API = '@PokemonApi',
}
8 changes: 4 additions & 4 deletions tests/api_tests/users/UsersApiTests.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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')
Expand All @@ -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)
Expand All @@ -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)
Expand Down