From 62ced04d0a3f890399fb5791c4cf7e1593f020c2 Mon Sep 17 00:00:00 2001 From: Butch Mayhew Date: Fri, 28 Feb 2025 12:35:14 -0600 Subject: [PATCH] implementing pw-plugin --- package-lock.json | 63 ++++++++++++++++++++------- package.json | 1 + tests/room/room.get.pw-plugin.spec.ts | 21 +++++++++ 3 files changed, 70 insertions(+), 15 deletions(-) create mode 100644 tests/room/room.get.pw-plugin.spec.ts diff --git a/package-lock.json b/package-lock.json index 0a757bd..b0a50eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "husky": "^8.0.3", "jest": "^29.7.0", "prettier": "3.0.3", + "pw-api-plugin": "^1.0.2", "ts-jest": "^29.1.1", "typescript": "^5.2.2" } @@ -1511,12 +1512,12 @@ } }, "node_modules/@playwright/test": { - "version": "1.47.2", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.47.2.tgz", - "integrity": "sha512-jTXRsoSPONAs8Za9QEQdyjFn+0ZQFjCiIztAIF6bi1HqhBzG9Ma7g1WotyiGqFSBRZjIEqMdT8RUlbk1QVhzCQ==", + "version": "1.50.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.50.1.tgz", + "integrity": "sha512-Jii3aBg+CEDpgnuDxEp/h7BimHcUTDlpEtce89xEumlJ5ef2hqepZ+PWp1DDpYC/VO9fmWVI1IlEaoI5fK9FXQ==", "dev": true, "dependencies": { - "playwright": "1.47.2" + "playwright": "1.50.1" }, "bin": { "playwright": "cli.js" @@ -1640,10 +1641,13 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.15.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.0.tgz", - "integrity": "sha512-z6nr0TTEOBGkzLGmbypWOGnpSpSIBorEhC4L+4HeQ2iezKCi4f77kyslRwvHeNitymGQ+oFyIWGP96l/DPSV9w==", - "dev": true + "version": "22.13.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", + "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "dev": true, + "dependencies": { + "undici-types": "~6.20.0" + } }, "node_modules/@types/semver": { "version": "7.5.5", @@ -3405,6 +3409,15 @@ "node": ">= 0.4" } }, + "node_modules/highlight.js": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -4974,12 +4987,12 @@ } }, "node_modules/playwright": { - "version": "1.47.2", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.47.2.tgz", - "integrity": "sha512-nx1cLMmQWqmA3UsnjaaokyoUpdVaaDhJhMoxX2qj3McpjnsqFHs516QAKYhqHAgOP+oCFTEOCOAaD1RgD/RQfA==", + "version": "1.50.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.50.1.tgz", + "integrity": "sha512-G8rwsOQJ63XG6BbKj2w5rHeavFjy5zynBA9zsJMMtBoe/Uf757oG12NXz6e6OirF7RCrTVAKFXbLmn1RbL7Qaw==", "dev": true, "dependencies": { - "playwright-core": "1.47.2" + "playwright-core": "1.50.1" }, "bin": { "playwright": "cli.js" @@ -4992,9 +5005,9 @@ } }, "node_modules/playwright-core": { - "version": "1.47.2", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.47.2.tgz", - "integrity": "sha512-3JvMfF+9LJfe16l7AbSmU555PaTl2tPyQsVInqm3id16pdDfvZ8TTZ/pyzmkbDrZTQefyzU7AIHlZqQnxpqHVQ==", + "version": "1.50.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.50.1.tgz", + "integrity": "sha512-ra9fsNWayuYumt+NiM069M6OkcRb1FZSK8bgi66AtpFoWkg2+y0bJSNmkFrWhMbEBbVKC/EruAHH3g0zmtwGmQ==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -5137,6 +5150,20 @@ } ] }, + "node_modules/pw-api-plugin": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pw-api-plugin/-/pw-api-plugin-1.0.2.tgz", + "integrity": "sha512-ZLmVTnZPFuGQSz2G4S4Ez25/bXSoLOGkg9KaWFWT4bcRAUCwkS3jTyIi2ELqQ6sViVyo26pf2/V1300WGKnwIQ==", + "dev": true, + "dependencies": { + "@playwright/test": "^1.50.1", + "@types/node": "^22.13.5", + "highlight.js": "^11.11.1" + }, + "peerDependencies": { + "@playwright/test": "^1.50.1" + } + }, "node_modules/queue": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", @@ -5812,6 +5839,12 @@ "node": ">=14.17" } }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", + "dev": true + }, "node_modules/update-browserslist-db": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", diff --git a/package.json b/package.json index c0686db..52858ea 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "husky": "^8.0.3", "jest": "^29.7.0", "prettier": "3.0.3", + "pw-api-plugin": "^1.0.2", "ts-jest": "^29.1.1", "typescript": "^5.2.2" }, diff --git a/tests/room/room.get.pw-plugin.spec.ts b/tests/room/room.get.pw-plugin.spec.ts new file mode 100644 index 0000000..24448a3 --- /dev/null +++ b/tests/room/room.get.pw-plugin.spec.ts @@ -0,0 +1,21 @@ +import { test, expect } from "@playwright/test"; +import { apiGet } from "pw-api-plugin"; + +test.describe("room/ GET requests with pw-plugin", () => { + test("GET all rooms", async ({ request, page }, testInfo) => { + testInfo.annotations.push({ + type: "implementation", + description: "https://www.npmjs.com/package/pw-api-plugin", + }); + + const responseGet = await apiGet({ request, page }, `https://automationintesting.online/room/`); + + expect(responseGet.status()).toBe(200); + const responseBodyGet = await responseGet.json(); + const firstRoom = responseBodyGet.rooms[0]; + expect(firstRoom.roomid).toBe(1); + expect(firstRoom.roomName).toBe("101"); + expect(firstRoom.type).toBe("single"); + expect(firstRoom.image).toBe("/images/room2.jpg"); + }); +});