043c3d5afe
- Add DELETE support to /api/stocks endpoint via _method parameter - Modify removeStock to delete db- prefixed entries from database - Add confirmation dialog on delete button click - Add test for stock deletion
40 lines
1.6 KiB
TypeScript
40 lines
1.6 KiB
TypeScript
import { test, expect } from "@playwright/test";
|
|
|
|
test.describe("Stock Database", () => {
|
|
test("should add and list stocks", async ({ page }) => {
|
|
const uniqueTicker = `TEST${Date.now()}`;
|
|
|
|
const createRes = await page.request.post("/api/stocks", {
|
|
data: new URLSearchParams({ ticker: uniqueTicker }).toString(),
|
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
});
|
|
expect(createRes.ok()).toBeTruthy();
|
|
|
|
const listRes = await page.request.get("/api/stocks");
|
|
const stocks = await listRes.json();
|
|
expect(stocks).toContainEqual(expect.objectContaining({ ticker: uniqueTicker }));
|
|
});
|
|
|
|
test("should delete stock from database", async ({ page }) => {
|
|
const uniqueTicker = `DEL${Date.now()}`;
|
|
|
|
await page.request.post("/api/stocks", {
|
|
data: new URLSearchParams({ ticker: uniqueTicker }).toString(),
|
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
});
|
|
|
|
let listRes = await page.request.get("/api/stocks");
|
|
let stocks = await listRes.json();
|
|
expect(stocks).toContainEqual(expect.objectContaining({ ticker: uniqueTicker }));
|
|
|
|
const delRes = await page.request.post("/api/stocks", {
|
|
data: new URLSearchParams({ ticker: uniqueTicker, _method: "DELETE" }).toString(),
|
|
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
});
|
|
expect(delRes.ok()).toBeTruthy();
|
|
|
|
listRes = await page.request.get("/api/stocks");
|
|
stocks = await listRes.json();
|
|
expect(stocks).not.toContainEqual(expect.objectContaining({ ticker: uniqueTicker }));
|
|
});
|
|
}); |