mirror of
https://github.com/johndoe6345789/postgres.git
synced 2026-04-25 06:15:02 +00:00
84 lines
2.3 KiB
TypeScript
84 lines
2.3 KiB
TypeScript
import { faker } from '@faker-js/faker';
|
|
import { expect, test } from '@playwright/test';
|
|
|
|
test.describe('Counter', () => {
|
|
test.describe('Basic database operations', () => {
|
|
test('shouldn\'t increment the counter with an invalid input', async ({ page }) => {
|
|
const counter = await page.request.put('/api/counter', {
|
|
data: {
|
|
increment: 'incorrect',
|
|
},
|
|
});
|
|
|
|
expect(counter.status()).toBe(422);
|
|
});
|
|
|
|
test('shouldn\'t increment the counter with a negative number', async ({ page }) => {
|
|
const counter = await page.request.put('/api/counter', {
|
|
data: {
|
|
increment: -1,
|
|
},
|
|
});
|
|
|
|
expect(counter.status()).toBe(422);
|
|
});
|
|
|
|
test('shouldn\'t increment the counter with a number greater than 3', async ({ page }) => {
|
|
const counter = await page.request.put('/api/counter', {
|
|
data: {
|
|
increment: 5,
|
|
},
|
|
});
|
|
|
|
expect(counter.status()).toBe(422);
|
|
});
|
|
|
|
test('should increment the counter and update the counter correctly', async ({ page }) => {
|
|
// `x-e2e-random-id` is used for end-to-end testing to make isolated requests
|
|
// The default value is 0 when there is no `x-e2e-random-id` header
|
|
const e2eRandomId = faker.number.int({ max: 1000000 });
|
|
|
|
let counter = await page.request.put('/api/counter', {
|
|
data: {
|
|
increment: 1,
|
|
},
|
|
headers: {
|
|
'x-e2e-random-id': e2eRandomId.toString(),
|
|
},
|
|
});
|
|
let counterJson = await counter.json();
|
|
|
|
expect(counter.status()).toBe(200);
|
|
|
|
// Save the current count
|
|
const count = counterJson.count;
|
|
|
|
counter = await page.request.put('/api/counter', {
|
|
data: {
|
|
increment: 2,
|
|
},
|
|
headers: {
|
|
'x-e2e-random-id': e2eRandomId.toString(),
|
|
},
|
|
});
|
|
counterJson = await counter.json();
|
|
|
|
expect(counter.status()).toBe(200);
|
|
expect(counterJson.count).toEqual(count + 2);
|
|
|
|
counter = await page.request.put('/api/counter', {
|
|
data: {
|
|
increment: 1,
|
|
},
|
|
headers: {
|
|
'x-e2e-random-id': e2eRandomId.toString(),
|
|
},
|
|
});
|
|
counterJson = await counter.json();
|
|
|
|
expect(counter.status()).toBe(200);
|
|
expect(counterJson.count).toEqual(count + 3);
|
|
});
|
|
});
|
|
});
|