Skip to content

Commit

Permalink
chore: downgrade cypress 13.6.4
Browse files Browse the repository at this point in the history
  • Loading branch information
petermakowski committed Mar 28, 2024
1 parent b3f5075 commit 1ff4f69
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 62 deletions.
13 changes: 10 additions & 3 deletions .github/workflows/playwright.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Playwright Tests
on:
push:
branches: [main]
branches: [main, playwright*]
jobs:
test:
timeout-minutes: 15
Expand All @@ -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
Expand All @@ -22,10 +22,17 @@ jobs:
with:
maas-url: ${{env.MAAS_URL}}/MAAS
- name: Create MAAS admin
run: sudo maas createadmin --username=admin --password=test --email=fake@example.org
run: |
sudo maas createadmin --username=admin --password=test --email=fake@example.org
export API_KEY=`sudo maas apikey --username=admin`
echo "MAAS_API_KEY=$MAAS_API_KEY" >> $GITHUB_ENV
maas login admin http://localhost:5240/MAAS $API_KEY
- name: Wait for MAAS UI to be ready
run: yarn run wait-on http-get://${{env.MAAS_URL}}/MAAS/r
- name: Run Playwright tests
env:
MAAS_API_KEY: ${{ env.MAAS_API_KEY }}
MAAS_URL: ${{ env.MAAS_URL }}
run: yarn playwright test
- uses: actions/upload-artifact@v4
if: always()
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
84 changes: 34 additions & 50 deletions tests/machines.spec.ts
Original file line number Diff line number Diff line change
@@ -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<void> {
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 http://${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");
});
19 changes: 11 additions & 8 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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==
Expand Down Expand Up @@ -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"
Expand All @@ -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"
Expand All @@ -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"
Expand Down Expand Up @@ -9166,7 +9166,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==
Expand Down Expand Up @@ -12462,6 +12462,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==
Expand Down Expand Up @@ -12545,6 +12546,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==
Expand Down Expand Up @@ -13736,6 +13738,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==
Expand Down

0 comments on commit 1ff4f69

Please sign in to comment.