From 53b56fa7285191710d660a74325fdf0bcf5ac851 Mon Sep 17 00:00:00 2001 From: Peter Makowski Date: Thu, 28 Mar 2024 15:11:03 +0100 Subject: [PATCH] chore: downgrade cypress 13.6.4 --- .github/workflows/playwright.yml | 4 +- package.json | 2 +- tests/machines.spec.ts | 84 +++++++++++++------------------- yarn.lock | 19 +++++--- 4 files changed, 48 insertions(+), 61 deletions(-) diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index db34c24a74f..b94ca2beb8c 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -1,7 +1,7 @@ name: Playwright Tests on: push: - branches: [main] + branches: [main, playwright*] jobs: test: timeout-minutes: 15 @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: - node-version-file: '.nvmrc' + node-version-file: ".nvmrc" - name: Install dependencies run: yarn - name: Install Playwright Browsers diff --git a/package.json b/package.json index dcf51872050..f5ad8877515 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "colors": "1.4.0", "concurrently": "8.2.2", "cooky-cutter": "1.5.4", - "cypress": "13.7.1", + "cypress": "13.6.4", "cypress-axe": "1.5.0", "cypress-wait-until": "3.0.1", "dotenv-flow": "3.3.0", diff --git a/tests/machines.spec.ts b/tests/machines.spec.ts index a333d411cf0..bb32e366e85 100644 --- a/tests/machines.spec.ts +++ b/tests/machines.spec.ts @@ -1,52 +1,36 @@ -import { test, expect } from "@playwright/test"; - -let machineListRequests: (string | Buffer)[] = []; -let machineCountRequests: (string | Buffer)[] = []; - -test.beforeEach(async ({ page, context }) => { - machineListRequests = []; - machineCountRequests = []; - await context.addCookies([ - { name: "skipsetupintro", value: "true", url: "http://0.0.0.0:5240/" }, - { name: "skipintro", value: "true", url: "http://0.0.0.0:5240/" }, - ]); - await page.goto("/MAAS/r/machines"); - await page.getByLabel("Username").click(); - await page.getByLabel("Username").fill("admin"); - await page.getByLabel("Username").press("Tab"); - await page.getByLabel("Password").fill("test"); - await page.getByLabel("Password").press("Enter"); -}); +import { test } from "@playwright/test"; +import { exec } from "child_process"; +import { promisify } from "util"; + +const execAsync = promisify(exec); + +export async function runMAASCommand( + action: string, + params: string +): Promise { + const apiKey = process.env.MAAS_API_KEY; + const maasURL = process.env.MAAS_URL; + + if (!apiKey || !maasURL) { + throw new Error( + "MAAS_API_KEY or MAAS_URL environment variables are not set." + ); + } + + // Login command + const loginCommand = `maas login admin ${maasURL}//MAAS/api/2.0/ ${apiKey}`; + const actionCommand = `maas admin ${action} ${params}`; + await execAsync(loginCommand); + + const { stdout, stderr } = await execAsync(actionCommand); + + if (stderr) { + throw new Error(`Error executing MAAS command: ${stderr}`); + } + + console.log(stdout); +} -test("machines list loads", async ({ page }) => { - page.on("websocket", async (ws) => { - console.log(`WebSocket opened: ${ws.url()}>`); - await ws.on("framesent", async (data) => { - console.log(data.payload); - if (data.payload.includes("machine.list")) { - machineListRequests.push(data.payload); - } - if (data.payload.includes("machine.count")) { - machineCountRequests.push(data.payload); - } - }); - ws.on("close", () => console.log("WebSocket closed")); - }); - await expect(page).toHaveTitle(/Machines/); - await expect(page.getByTestId("main-toolbar-heading")).toHaveText( - /[0-9]+ machine[s]? in [0-9]+ pool[s]?/i - ); - await expect(page.getByRole("grid", { name: /Loading/i })).toBeHidden(); - // expect a single machine.list and machine.count request - await expect(machineListRequests.length).toBe(1); - await expect(machineCountRequests.length).toBe(1); - // perform machine search - await page.getByLabel("Search").locator("visible=true").type("doesnotexist"); - await expect(page.getByRole("grid", { name: /Loading/i })).toBeHidden(); - await expect( - page.getByText(/No machines match the search criteria/) - ).toBeVisible(); - // expect an additional single machine.list request - await expect(machineListRequests.length).toBe(2); - await expect(machineCountRequests.length).toBe(1); +test("example test using runMAASCommand", async () => { + await runMAASCommand("zones create", "name=zone-1"); }); diff --git a/yarn.lock b/yarn.lock index c3803ef9891..2c5855b5b9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6128,7 +6128,7 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.5.0, buffer@^5.7.1: +buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -6786,10 +6786,10 @@ cypress-wait-until@3.0.1: resolved "https://registry.yarnpkg.com/cypress-wait-until/-/cypress-wait-until-3.0.1.tgz#6a697a600f4fb8cd2897489a15fda77c9857abec" integrity sha512-kpoa8yL6Bi/JNsThGBbrrm7g4SNzYyBUv9M5pF6/NTVm/ClY0HnJzeuWnHiAUZKIZ5l86Oedb12wQyjx7/CWPg== -cypress@13.7.1: - version "13.7.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.7.1.tgz#d1208eb04efd46ef52a30480a5da71a03373261a" - integrity sha512-4u/rpFNxOFCoFX/Z5h+uwlkBO4mWzAjveURi3vqdSu56HPvVdyGTxGw4XKGWt399Y1JwIn9E1L9uMXQpc0o55w== +cypress@13.6.4: + version "13.6.4" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.6.4.tgz#42c88d3ee0342f1681abfacabf9c1f082676bc53" + integrity sha512-pYJjCfDYB+hoOoZuhysbbYhEmNW7DEDsqn+ToCLwuVowxUXppIWRr7qk4TVRIU471ksfzyZcH+mkoF0CQUKnpw== dependencies: "@cypress/request" "^3.0.0" "@cypress/xvfb" "^1.2.4" @@ -6798,7 +6798,7 @@ cypress@13.7.1: arch "^2.2.0" blob-util "^2.0.2" bluebird "^3.7.2" - buffer "^5.7.1" + buffer "^5.6.0" cachedir "^2.3.0" chalk "^4.1.0" check-more-types "^2.24.0" @@ -6816,7 +6816,7 @@ cypress@13.7.1: figures "^3.2.0" fs-extra "^9.1.0" getos "^3.2.1" - is-ci "^3.0.1" + is-ci "^3.0.0" is-installed-globally "~0.4.0" lazy-ass "^1.6.0" listr2 "^3.8.3" @@ -9178,7 +9178,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-ci@^3.0.1: +is-ci@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== @@ -12528,6 +12528,7 @@ string-natural-compare@^3.0.1: integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.2.3: + name string-width-cjs version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -12611,6 +12612,7 @@ string_decoder@~1.1.1: safe-buffer "~5.1.0" "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.1: + name strip-ansi-cjs version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -13812,6 +13814,7 @@ wordwrap@^1.0.0: integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: + name wrap-ansi-cjs version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==