diff --git a/infra/api/helpers/index.ts b/infra/api/helpers/index.ts index 2072a12..787e6f8 100644 --- a/infra/api/helpers/index.ts +++ b/infra/api/helpers/index.ts @@ -3,4 +3,5 @@ export * from './urls/ApplicationUrl'; export * from './types/api-request-types'; export * from './types/api-types'; export * from './test-tags/test-tags'; -export * from './fixtures/test-fixtures'; \ No newline at end of file +export * from './fixtures/test-fixtures'; +export * from './mocks/payloads'; \ No newline at end of file diff --git a/infra/api/helpers/mocks/payloads.ts b/infra/api/helpers/mocks/payloads.ts new file mode 100644 index 0000000..97d2197 --- /dev/null +++ b/infra/api/helpers/mocks/payloads.ts @@ -0,0 +1,38 @@ +import MockDataGenerator from "@api-helpers"; + +export const payloads = { + + createdPet: { + id: 3193, + category: { + id: MockDataGenerator.getRandomLongNumber(), + name: MockDataGenerator.getRandomName() + }, + name: 'Pikachu', + photoUrls: ['https://ibb.co/wLWCrSX'], + tags: [ + { + id: MockDataGenerator.getRandomLongNumber(), + name: MockDataGenerator.getRandomName(), + } + ], + status: 'available' + }, + + updatePet: { + id: 3193, + category: { + id: MockDataGenerator.getRandomLongNumber(), + name: MockDataGenerator.getRandomName() + }, + name: 'Pokey', + photoUrls: ['https://ibb.co/0Z9v02Z'], + tags: [ + { + id: MockDataGenerator.getRandomLongNumber(), + name: MockDataGenerator.getRandomName(), + } + ], + status: 'available' + } +} \ No newline at end of file diff --git a/tests/api_tests/petStore/PetStoreApiTests.spec.ts b/tests/api_tests/petStore/PetStoreApiTests.spec.ts index 15cb922..e20a259 100644 --- a/tests/api_tests/petStore/PetStoreApiTests.spec.ts +++ b/tests/api_tests/petStore/PetStoreApiTests.spec.ts @@ -1,6 +1,7 @@ import { expect } from '@playwright/test'; import { test } from '@api-helpers'; import MockDataGenerator, { IPet, StatusCode, TestTags } from '@api-helpers'; +import { payloads } from '@api-helpers'; test.describe.serial('CRUD API tests for the Pet Store API', async () => { let id: number = 10; @@ -17,26 +18,11 @@ test.describe.serial('CRUD API tests for the Pet Store API', async () => { test('create a new pet - [POST] /pet', { tag: [TestTags.PET_STORE] }, async ({ petStoreApi }) => { await test.step('create a new pet via post request', async () => { - let petData = { - id: petId, - category: { - id: MockDataGenerator.getRandomLongNumber(), - name: MockDataGenerator.getRandomName() - }, - name: 'Pikachu', - photoUrls: ['https://ibb.co/wLWCrSX'], - tags: [ - { - id: MockDataGenerator.getRandomLongNumber(), - name: MockDataGenerator.getRandomName(), - } - ], - status: 'available' - } - let response = await petStoreApi.createNewPet(petData) + + let response = await petStoreApi.createNewPet(payloads.createdPet) let responseBody: IPet = await response?.json(); expect(response?.status()).toBe(StatusCode.OK); - expect(responseBody).toEqual(petData); + expect(responseBody).toEqual(payloads.createdPet); expect(response?.statusText()).toBe('OK'); }) }) @@ -62,23 +48,7 @@ test.describe.serial('CRUD API tests for the Pet Store API', async () => { test('update pet - [PATCH] /pet/:petId', { tag: [TestTags.PET_STORE] }, async ({ petStoreApi }) => { await test.step('update the newly created pet that was created in previous test', async () => { - let petData = { - id: petId, - category: { - id: MockDataGenerator.getRandomLongNumber(), - name: MockDataGenerator.getRandomName() - }, - name: 'Pokey', - photoUrls: ['https://ibb.co/0Z9v02Z'], - tags: [ - { - id: MockDataGenerator.getRandomLongNumber(), - name: MockDataGenerator.getRandomName(), - } - ], - status: 'available' - } - let response = await petStoreApi.updatePet(petData) + let response = await petStoreApi.updatePet(payloads.updatePet) let responseBody: IPet = await response?.json(); expect(response?.status()).toBe(StatusCode.OK) expect(responseBody.name).toEqual('Pokey');