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
3 changes: 2 additions & 1 deletion infra/api/helpers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
export * from './fixtures/test-fixtures';
export * from './mocks/payloads';
38 changes: 38 additions & 0 deletions infra/api/helpers/mocks/payloads.ts
Original file line number Diff line number Diff line change
@@ -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'
}
}
40 changes: 5 additions & 35 deletions tests/api_tests/petStore/PetStoreApiTests.spec.ts
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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');
})
})
Expand All @@ -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');
Expand Down