From dcc5b46b8e15a4b9192ab4b9c6dffa5525d7ad66 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Mon, 7 Oct 2024 10:33:20 -0500 Subject: [PATCH 01/33] update cypress --- .github/workflows/run-e2e-tests.yaml | 4 + cypress/package-lock.json | 524 ++++++++++++++++-- cypress/package.json | 7 +- cypress/src/actions/index.js | 2 +- cypress/src/support/index.js | 1 + .../e2eTests/verifyGuestUserCheckout.spec.js | 8 +- .../verifyLowStockInfoMessage.spec.js | 1 + 7 files changed, 488 insertions(+), 59 deletions(-) diff --git a/.github/workflows/run-e2e-tests.yaml b/.github/workflows/run-e2e-tests.yaml index 5d7ad5e26b..05743e60ec 100644 --- a/.github/workflows/run-e2e-tests.yaml +++ b/.github/workflows/run-e2e-tests.yaml @@ -17,6 +17,10 @@ jobs: browser: chrome wait-on: 'http://localhost:3000' config: baseUrl=http://localhost:3000 + command: npm run cypress:percy + env: + # pass the Percy Token + PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} - uses: actions/upload-artifact@v4 if: failure() with: diff --git a/cypress/package-lock.json b/cypress/package-lock.json index e90667df94..462d8a9cb8 100644 --- a/cypress/package-lock.json +++ b/cypress/package-lock.json @@ -11,8 +11,10 @@ "devDependencies": { "@cypress/browserify-preprocessor": "^3.0.0", "@cypress/code-coverage": "^3.9.12", + "@percy/cli": "^1.29.3", + "@percy/cypress": "^3.1.3-beta.0", "cross-env": "^7.0.0", - "cypress": "^13.0.0", + "cypress": "^13.14.2", "cypress-dotenv": "2.0.0", "cypress-grep": "~2.14.0", "cypress-log-to-output": "^1.1.2", @@ -2047,9 +2049,9 @@ } }, "node_modules/@cypress/request": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz", - "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.5.tgz", + "integrity": "sha512-v+XHd9XmWbufxF1/bTaVm2yhbxY+TB4YtWRqF2zaXBlDNMkls34KiATz0AVDLavL3iB6bQk9/7n3oY1EoLSWGA==", "dev": true, "dependencies": { "aws-sign2": "~0.7.0", @@ -2058,14 +2060,14 @@ "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "http-signature": "~1.3.6", + "form-data": "~4.0.0", + "http-signature": "~1.4.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "6.10.4", + "qs": "6.13.0", "safe-buffer": "^5.1.2", "tough-cookie": "^4.1.3", "tunnel-agent": "^0.6.0", @@ -3076,6 +3078,276 @@ "@octokit/openapi-types": "^12.11.0" } }, + "node_modules/@percy/cli": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/cli/-/cli-1.30.0.tgz", + "integrity": "sha512-d5mJQkhYJdL/fOZGuk2sBymYSYCncM+adpOrI3kINVLSXH7CAvYfrnJNLZ5Ib2xQDS85QeCFIb9noivPqXtkPw==", + "dev": true, + "dependencies": { + "@percy/cli-app": "1.30.0", + "@percy/cli-build": "1.30.0", + "@percy/cli-command": "1.30.0", + "@percy/cli-config": "1.30.0", + "@percy/cli-exec": "1.30.0", + "@percy/cli-snapshot": "1.30.0", + "@percy/cli-upload": "1.30.0", + "@percy/client": "1.30.0", + "@percy/logger": "1.30.0" + }, + "bin": { + "percy": "bin/run.cjs" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-app": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/cli-app/-/cli-app-1.30.0.tgz", + "integrity": "sha512-omBN3mwZVlOv06pIL1sHfN18iQ6fJcyJtWVtPS82idSHBm0xWe4ulcAAXAJAI31opKUIh1dM1LDxFDJBQEA1Tw==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.30.0", + "@percy/cli-exec": "1.30.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-build": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/cli-build/-/cli-build-1.30.0.tgz", + "integrity": "sha512-VEdKQQCdfdjZHLBjQMXILSeiCEwuKaGvfi9TQqE+4ZPWzOUorjf/Knpnm5+FvvpJYcB3TgNIZ7H/jQE9LokChg==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.30.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-command": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/cli-command/-/cli-command-1.30.0.tgz", + "integrity": "sha512-5gUZfUaYY4O4UdS4yAKCkVuEQov8ZmBRez2oE9wZti1kCavcRJ3cps31qMiXWyRBzAru+MdDxpoDD40KGK5m5g==", + "dev": true, + "dependencies": { + "@percy/config": "1.30.0", + "@percy/core": "1.30.0", + "@percy/logger": "1.30.0" + }, + "bin": { + "percy-cli-readme": "bin/readme.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-config": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/cli-config/-/cli-config-1.30.0.tgz", + "integrity": "sha512-LUVrQZMjswTS5bifrpbU/vL/fFCx+Pl8FG+rRA5f8tnVBnLxnMpGeOFhKf8mmkg32YJxGhmmXn//pR4aupN4oA==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.30.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-exec": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/cli-exec/-/cli-exec-1.30.0.tgz", + "integrity": "sha512-9uSrPY+VhRXmuIiPO0+XoZNJcwrfdZqmCcR8nZdSlLvgoGbm/4/gzMNnlazzgY+NHkMSVpZyE6tTiAePjweuIA==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.30.0", + "@percy/logger": "1.30.0", + "cross-spawn": "^7.0.3", + "which": "^2.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-snapshot": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/cli-snapshot/-/cli-snapshot-1.30.0.tgz", + "integrity": "sha512-EdCnZUcq7O5SDymmzzdJSuoAvWa25fZtAn7ji4W7moWDAY3r62Q4S8ZC4NfMbvihbBa1FJTzbgOHbfS3gSgbkQ==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.30.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/cli-upload": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/cli-upload/-/cli-upload-1.30.0.tgz", + "integrity": "sha512-vtgQU6JbnDUUe/+8teN2E0vfHS/NeRRe0n9Nc/e8MgMXWXhgZEWWPC8jlwwIliCFgkiWl+zWXD6OAbSlyoBtYw==", + "dev": true, + "dependencies": { + "@percy/cli-command": "1.30.0", + "fast-glob": "^3.2.11", + "image-size": "^1.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/client": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/client/-/client-1.30.0.tgz", + "integrity": "sha512-kNAoa07QtlIHvail0+vjd0xfvO4OxI97fV73pefe6PtJ1u3Cze+q4DEFPWxcJ39wjUD4C2f3TgJ2CzhEm53yiw==", + "dev": true, + "dependencies": { + "@percy/env": "1.30.0", + "@percy/logger": "1.30.0", + "pako": "^2.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/client/node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "dev": true + }, + "node_modules/@percy/config": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/config/-/config-1.30.0.tgz", + "integrity": "sha512-mOhLn9fqQTMgXA8Li1UxjZCcLQcokeQtsedlCXdzzt2QbS9DFcV3koMyooabOO6MsCNh4wI7J/zcXu08c4H9Vw==", + "dev": true, + "dependencies": { + "@percy/logger": "1.30.0", + "ajv": "^8.6.2", + "cosmiconfig": "^8.0.0", + "yaml": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/core": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/core/-/core-1.30.0.tgz", + "integrity": "sha512-MeAhFWCf97xVvx8c6XsSpC+uWRbM0RE5llXmC7U5JH2cYZXoyzul2eZacYUmQJPVzEaWduXLDCukYIa0nDo1+A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@percy/client": "1.30.0", + "@percy/config": "1.30.0", + "@percy/dom": "1.30.0", + "@percy/logger": "1.30.0", + "@percy/webdriver-utils": "1.30.0", + "content-disposition": "^0.5.4", + "cross-spawn": "^7.0.3", + "extract-zip": "^2.0.1", + "fast-glob": "^3.2.11", + "micromatch": "^4.0.8", + "mime-types": "^2.1.34", + "pako": "^2.1.0", + "path-to-regexp": "^6.3.0", + "rimraf": "^3.0.2", + "ws": "^8.17.1", + "yaml": "^2.4.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/core/node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", + "dev": true + }, + "node_modules/@percy/core/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@percy/cypress": { + "version": "3.1.3-beta.0", + "resolved": "https://registry.npmjs.org/@percy/cypress/-/cypress-3.1.3-beta.0.tgz", + "integrity": "sha512-g+NM11EWEKf/32Ov3b3Qs7j9FLNRyeiHegJ5NPmydd+/sYIryZ8oWNWAOV46hUY0ouMce1rr7Xx8YO5C+F15zA==", + "dev": true, + "dependencies": { + "@percy/sdk-utils": "^1.3.1" + }, + "peerDependencies": { + "cypress": ">=3" + } + }, + "node_modules/@percy/dom": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/dom/-/dom-1.30.0.tgz", + "integrity": "sha512-i3uHFDAzXCLAeI0oTDDWIaRq1wiGwoRknS1QfIfy7usAia+ipeWhWb+m3sXtfg/g6WyBzcg3OtG1tIB8TO7/4g==", + "dev": true + }, + "node_modules/@percy/env": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/env/-/env-1.30.0.tgz", + "integrity": "sha512-+h7c0lxB01bnymTZfM24RrjMIL28rQWeT4aQ/BJVlvAELstZaYwl0vv8RrAtBUKnSZaXUkNIOWZtgFiuer/y0g==", + "dev": true, + "dependencies": { + "@percy/logger": "1.30.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/logger": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/logger/-/logger-1.30.0.tgz", + "integrity": "sha512-p5ZxD9fFRjCiMF630xIDRv2hPH70TI20r9yIyHgjmCM4ES0Cfu+61gaRpiSaay0DWKfG6iwpmUhZsKafRMSYCw==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/sdk-utils": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/sdk-utils/-/sdk-utils-1.30.0.tgz", + "integrity": "sha512-GPEexJ0gxiFXqjFpL8EtILZo/arrwdz96oyZMsCeRu9bVSQ8ZvptFlwO8hYKtXvZcY7CJfGnUyOcza8CYPxM3g==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@percy/webdriver-utils": { + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/@percy/webdriver-utils/-/webdriver-utils-1.30.0.tgz", + "integrity": "sha512-93S0U1enM9mHR99iEjPSekrZc3/DI+GYYXicvM8nFD9FHlXuMbykHCU0hKJAZF/IvlucVnH04s3yomn/58cXAw==", + "dev": true, + "dependencies": { + "@percy/config": "1.30.0", + "@percy/sdk-utils": "1.30.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@tokenizer/token": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", @@ -3438,7 +3710,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", "dev": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", @@ -3729,9 +4000,9 @@ } }, "node_modules/aws4": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz", - "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", "dev": true }, "node_modules/babel-loader": { @@ -4224,6 +4495,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", @@ -4616,6 +4896,18 @@ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -4649,6 +4941,32 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", @@ -4762,13 +5080,13 @@ "dev": true }, "node_modules/cypress": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.13.0.tgz", - "integrity": "sha512-ou/MQUDq4tcDJI2FsPaod2FZpex4kpIK43JJlcBgWrX8WX7R/05ZxGTuxedOuZBfxjZxja+fbijZGyxiLP6CFA==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.15.0.tgz", + "integrity": "sha512-53aO7PwOfi604qzOkCSzNlWquCynLlKE/rmmpSPcziRH6LNfaDUAklQT6WJIsD8ywxlIy+uVZsnTMCCQVd2kTw==", "dev": true, "hasInstallScript": true, "dependencies": { - "@cypress/request": "^3.0.0", + "@cypress/request": "^3.0.4", "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", @@ -5448,6 +5766,15 @@ "node": ">=8.6" } }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -5728,8 +6055,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/fast-glob": { "version": "3.3.2", @@ -5950,17 +6276,17 @@ } }, "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "node_modules/franc-min": { @@ -6541,14 +6867,14 @@ "dev": true }, "node_modules/http-signature": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", - "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz", + "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==", "dev": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", - "sshpk": "^1.14.1" + "sshpk": "^1.18.0" }, "engines": { "node": ">=0.10" @@ -6650,6 +6976,46 @@ "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==", "dev": true }, + "node_modules/image-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", + "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", + "dev": true, + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6740,6 +7106,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -7277,8 +7649,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, - "peer": true + "dev": true }, "node_modules/json-schema": { "version": "0.4.0", @@ -7290,8 +7661,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "peer": true + "dev": true }, "node_modules/json-stable-stringify": { "version": "0.0.1", @@ -7492,6 +7862,12 @@ "integrity": "sha512-z34TU6GlMram52Tss5mt1m//ifRIpKH5Dqm7yUVOdHI+BQCs9qGPHFaCUTIzsWX7edN30aa2WrPwR7IO10FHaw==", "dev": true }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, "node_modules/listr2": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", @@ -7955,9 +8331,9 @@ } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "dependencies": { "braces": "^3.0.3", @@ -9299,6 +9675,18 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parents": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", @@ -9391,6 +9779,24 @@ "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", "dev": true }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse-link-header": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-link-header/-/parse-link-header-2.0.0.tgz", @@ -9457,6 +9863,12 @@ "node": ">= 0.8.0" } }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -9813,12 +10225,12 @@ "dev": true }, "node_modules/qs": { - "version": "6.10.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz", - "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -9860,6 +10272,15 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.3" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -11360,7 +11781,6 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -11370,7 +11790,6 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "peer": true, "engines": { "node": ">=6" } @@ -11395,21 +11814,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/url/node_modules/qs": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.3.tgz", - "integrity": "sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/utif2": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/utif2/-/utif2-4.1.0.tgz", @@ -12135,6 +12539,18 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "node_modules/yaml": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", + "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/cypress/package.json b/cypress/package.json index d4c3248d38..ba3da87bd1 100644 --- a/cypress/package.json +++ b/cypress/package.json @@ -4,15 +4,18 @@ "description": "Boilerplate E2E tests", "scripts": { "cypress:open": "cypress open --browser chrome --config-file cypress.config.js", - "cypress:run": "cypress run --config-file cypress.config.js" + "cypress:run": "cypress run --config-file cypress.config.js", + "cypress:percy": "percy exec -- cypress run --config-file cypress.config.js" }, "author": "Adobe Commerce", "license": "Apache License 2.0", "devDependencies": { "@cypress/browserify-preprocessor": "^3.0.0", "@cypress/code-coverage": "^3.9.12", + "@percy/cli": "^1.29.3", + "@percy/cypress": "^3.1.3-beta.0", "cross-env": "^7.0.0", - "cypress": "^13.0.0", + "cypress": "^13.14.2", "cypress-dotenv": "2.0.0", "cypress-grep": "~2.14.0", "cypress-log-to-output": "^1.1.2", diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index 9673d3dc37..3f0f4e1f2f 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -66,6 +66,6 @@ export const signUpUser = (sign_up, isValid = true) => { } else { cy.get(fields.authFormUserPassword).eq(1).clear().type(sign_up.shortPassword); } - + cy.percySnapshot('Auth Create Account'); createAccount(); }; diff --git a/cypress/src/support/index.js b/cypress/src/support/index.js index e60ceea637..99b8a0d578 100644 --- a/cypress/src/support/index.js +++ b/cypress/src/support/index.js @@ -2,3 +2,4 @@ import './deleteCustomer'; import './getUserTokenCookie'; import './waitForResource'; import './sessionStorage'; +import '@percy/cypress'; \ No newline at end of file diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index e523adfa52..c5ff76e9e7 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -49,7 +49,8 @@ describe('Verify guest user can place order', () => { '/products/crown-summit-backpack/24-MB03' )('.cart-mini-cart'); assertProductImage('/mb03-black-0.jpg')('.cart-mini-cart'); - cy.contains('View Cart').click(); + cy.percySnapshot('PDP page with Mini Cart Open'); + cy.contains('View Cart').click({force: true}); assertCartSummaryProduct( 'Crown Summit Backpack', '24-MB03', @@ -64,9 +65,10 @@ describe('Verify guest user can place order', () => { )('.commerce-cart-summary-wrapper'); assertProductImage('/mb03-black-0.jpg')('.commerce-cart-summary-wrapper'); cy.contains('Estimated Shipping').should('be.visible'); + cy.percySnapshot('Cart page'); cy.get('.dropin-button--primary') .contains('Checkout') - .click(); + .click({force: true}); assertCartSummaryMisc(2); assertCartSummaryProductsOnCheckout( 'Crown Summit Backpack', @@ -77,6 +79,7 @@ describe('Verify guest user can place order', () => { '0' ); cy.contains('Estimated Shipping').should('be.visible') + cy.percySnapshot('Checkout Page'); const apiMethod = 'setGuestEmailOnCart'; const urlTest = Cypress.env('graphqlEndPoint'); cy.intercept('POST', urlTest, (req) => { @@ -98,6 +101,7 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationShippingDetails(customerShippingAddress); assertOrderConfirmationBillingDetails(customerShippingAddress); assertOrderConfirmationShippingMethod(customerShippingAddress); + cy.percySnapshot('Order Confirmation'); /** * TODO - when /order-details page will be ready * Redirect to /order-details?orderRef={ORDER_TOKEN} diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 2d7186783f..6ad4d2decb 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -18,5 +18,6 @@ describe('Verify stock notification message', () => { cy.wait(1000); cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); + cy.percySnapshot('PDP page with Low Stock Notifiction'); }); }); \ No newline at end of file From 31b6f6f0ec9ef2deddca1fdd6f56b0a074544ab8 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Mon, 7 Oct 2024 11:08:43 -0500 Subject: [PATCH 02/33] update --- cypress/src/actions/index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index 3f0f4e1f2f..9aa7016355 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -66,6 +66,9 @@ export const signUpUser = (sign_up, isValid = true) => { } else { cy.get(fields.authFormUserPassword).eq(1).clear().type(sign_up.shortPassword); } + cy.get('.dropin-picker__select').select('Male'); + // cy.contains('Male').click(); + cy.wait(2000); cy.percySnapshot('Auth Create Account'); createAccount(); }; From bff6872adea324092d1604caccf9f15f8814f752 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Mon, 7 Oct 2024 11:32:25 -0500 Subject: [PATCH 03/33] update --- cypress/src/actions/index.js | 10 ++++++++++ .../tests/e2eTests/verifyLowStockInfoMessage.spec.js | 5 ++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index 9aa7016355..ea36fbbcfc 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -20,21 +20,31 @@ export const setGuestShippingAddress = (customerAddress, isSelectableState) => { }; export const setGuestBillingAddress = (customerAddress, isSelectableState) => { + cy.wait(1000); cy.get(fields.billingFormFirstName).should("not.be.disabled").clear().type(customerAddress.firstName, { force: true }); + cy.wait(1000); cy.get(fields.billingFormLastName).should("not.be.disabled").clear().type(customerAddress.lastName, { force: true }); + cy.wait(1000); cy.get(fields.billingFormStreet).should("not.be.disabled").clear().type(customerAddress.street, { force: true }); + cy.wait(1000); cy.get(fields.billingFormStreet1).should("not.be.disabled").clear().type(customerAddress.street1, { force: true }); if (isSelectableState) { + cy.wait(1000); cy.get(fields.billingFormState).should("not.be.disabled").select(customerAddress.region, { force: true }); } else { + cy.wait(1000); cy.get(fields.billingFormInputState).should("not.be.disabled").type(customerAddress.region, { force: true }); } + cy.wait(1000); cy.get(fields.billingFormCity).should("not.be.disabled").clear().type(customerAddress.city, { force: true }); + cy.wait(1000); cy.get(fields.billingFormPostCode).should("not.be.disabled").clear().type(customerAddress.postCode, { force: true }); + cy.wait(1000); cy.get(fields.billingFormTelephone).should("not.be.disabled").clear().type(customerAddress.telephone, { force: true }); }; export const uncheckBillToShippingAddress = () => { + cy.wait(1000); cy.get(fields.billToShippingAddress).uncheck({ force: true }); }; diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 6ad4d2decb..06f3ec233d 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -1,5 +1,8 @@ describe('Verify stock notification message', () => { it('Verify low stock and max qty allowed notification message', () => { + Cypress.on('uncaught:exception', (err, runnable) => { + return false; + }); cy.visit('/products/compete-track-tote/24-WB02'); cy.get('.dropin-incrementer__input').clear().type('1000'); cy.wait(1000) @@ -8,7 +11,7 @@ describe('Verify stock notification message', () => { // cypress fails intermittently as it takes old value 1, this is needed for tests to be stable cy.wait(1000); cy.contains('Add to Cart').click(); - cy.contains('The requested qty is not available').should('be.visible') + cy.contains('Error').should('be.visible') cy.get('.dropin-incrementer__input').clear().type('10000'); cy.wait(1000) From 0ea3671bce37f1bafc1a7740ca8f4eca93c790ee Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Mon, 7 Oct 2024 11:52:59 -0500 Subject: [PATCH 04/33] update --- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index c5ff76e9e7..557833b43b 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -25,10 +25,15 @@ import { describe('Verify guest user can place order', () => { it('Verify guest user can place order', () => { + Cypress.on('uncaught:exception', (err, runnable) => { + return false; + }); cy.visit(''); cy.get('.nav-drop') .contains('Catalog') .click(); + // Randomly empty click is triggered + cy.wait(1000); cy.contains('Crown Summit Backpack').click(); cy.get('.dropin-incrementer__increase-button').click(); cy.get('.dropin-incrementer__input').should('have.value', '2'); From b35da5397d586e1de50b52887a3de5a8a9a6a717 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Mon, 7 Oct 2024 11:57:40 -0500 Subject: [PATCH 05/33] update --- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 1 - 1 file changed, 1 deletion(-) diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 557833b43b..508f85722c 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -54,7 +54,6 @@ describe('Verify guest user can place order', () => { '/products/crown-summit-backpack/24-MB03' )('.cart-mini-cart'); assertProductImage('/mb03-black-0.jpg')('.cart-mini-cart'); - cy.percySnapshot('PDP page with Mini Cart Open'); cy.contains('View Cart').click({force: true}); assertCartSummaryProduct( 'Crown Summit Backpack', From 8c57e757291f9e343a3afee8d98fdd896acb6f0c Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Mon, 7 Oct 2024 12:44:23 -0500 Subject: [PATCH 06/33] update --- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 508f85722c..3339d9cd28 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -54,6 +54,8 @@ describe('Verify guest user can place order', () => { '/products/crown-summit-backpack/24-MB03' )('.cart-mini-cart'); assertProductImage('/mb03-black-0.jpg')('.cart-mini-cart'); + cy.wait(1000); + cy.percySnapshot('PDP page with Mini Cart Open'); cy.contains('View Cart').click({force: true}); assertCartSummaryProduct( 'Crown Summit Backpack', From 21d57cd1663a88c293230f7819d06e665a417f3e Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Mon, 7 Oct 2024 13:16:42 -0500 Subject: [PATCH 07/33] update --- cypress/src/actions/index.js | 8 +++-- .../e2eTests/verifyGuestUserCheckout.spec.js | 32 ++++++++++++++----- .../verifyLowStockInfoMessage.spec.js | 6 +++- 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index ea36fbbcfc..6c6b4755d0 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -65,7 +65,7 @@ export const signUpUser = (sign_up, isValid = true) => { cy.get(fields.authFormUserCompany).clear().type(sign_up.company); } if (sign_up.email) { - cy.get(fields.authFormUserEmail).eq(1).clear({force: true}).type(username); + cy.get(fields.authFormUserEmail).eq(1).clear({ force: true }).type(username); } cy.get(fields.authFormUserFirstName).clear().type(sign_up.firstName); cy.get(fields.authFormUserLastName).clear().type(sign_up.lastName); @@ -79,6 +79,10 @@ export const signUpUser = (sign_up, isValid = true) => { cy.get('.dropin-picker__select').select('Male'); // cy.contains('Male').click(); cy.wait(2000); - cy.percySnapshot('Auth Create Account'); + cy + .viewport('iphone-x') + .percySnapshot('Auth Create Account', { width: 375 }) + .viewport(1280, 1024) + .percySnapshot('Auth Create Account', { width: 1280 }); createAccount(); }; diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 3339d9cd28..987129be6a 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -27,13 +27,13 @@ describe('Verify guest user can place order', () => { it('Verify guest user can place order', () => { Cypress.on('uncaught:exception', (err, runnable) => { return false; - }); + }); cy.visit(''); cy.get('.nav-drop') .contains('Catalog') .click(); // Randomly empty click is triggered - cy.wait(1000); + cy.wait(1000); cy.contains('Crown Summit Backpack').click(); cy.get('.dropin-incrementer__increase-button').click(); cy.get('.dropin-incrementer__input').should('have.value', '2'); @@ -55,8 +55,12 @@ describe('Verify guest user can place order', () => { )('.cart-mini-cart'); assertProductImage('/mb03-black-0.jpg')('.cart-mini-cart'); cy.wait(1000); - cy.percySnapshot('PDP page with Mini Cart Open'); - cy.contains('View Cart').click({force: true}); + cy + .viewport('iphone-x') + .percySnapshot('PDP page with Mini Cart Open', { width: 375 }) + .viewport(1280, 1024) + .percySnapshot('PDP page with Mini Cart Open', { width: 1280 }); + cy.contains('View Cart').click({ force: true }); assertCartSummaryProduct( 'Crown Summit Backpack', '24-MB03', @@ -71,10 +75,14 @@ describe('Verify guest user can place order', () => { )('.commerce-cart-summary-wrapper'); assertProductImage('/mb03-black-0.jpg')('.commerce-cart-summary-wrapper'); cy.contains('Estimated Shipping').should('be.visible'); - cy.percySnapshot('Cart page'); + cy + .viewport('iphone-x') + .percySnapshot('Cart page', { width: 375 }) + .viewport(1280, 1024) + .percySnapshot('Cart page', { width: 1280 }); cy.get('.dropin-button--primary') .contains('Checkout') - .click({force: true}); + .click({ force: true }); assertCartSummaryMisc(2); assertCartSummaryProductsOnCheckout( 'Crown Summit Backpack', @@ -85,7 +93,11 @@ describe('Verify guest user can place order', () => { '0' ); cy.contains('Estimated Shipping').should('be.visible') - cy.percySnapshot('Checkout Page'); + cy + .viewport('iphone-x') + .percySnapshot('Checkout Page', { width: 375 }) + .viewport(1280, 1024) + .percySnapshot('Checkout Page', { width: 1280 }); const apiMethod = 'setGuestEmailOnCart'; const urlTest = Cypress.env('graphqlEndPoint'); cy.intercept('POST', urlTest, (req) => { @@ -107,7 +119,11 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationShippingDetails(customerShippingAddress); assertOrderConfirmationBillingDetails(customerShippingAddress); assertOrderConfirmationShippingMethod(customerShippingAddress); - cy.percySnapshot('Order Confirmation'); + cy + .viewport('iphone-x') + .percySnapshot('Order Confirmation', { width: 375 }) + .viewport(1280, 1024) + .percySnapshot('Order Confirmation', { width: 1280 }); /** * TODO - when /order-details page will be ready * Redirect to /order-details?orderRef={ORDER_TOKEN} diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 06f3ec233d..ac5ebec207 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -21,6 +21,10 @@ describe('Verify stock notification message', () => { cy.wait(1000); cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); - cy.percySnapshot('PDP page with Low Stock Notifiction'); + cy + .viewport('iphone-x') + .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) + .viewport(1280, 1024) + .percySnapshot('PDP page with Low Stock Notifiction', { width: 1280 }); }); }); \ No newline at end of file From 335e48cfd4161df37110e13efb315360cc0c7479 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Mon, 7 Oct 2024 14:34:38 -0500 Subject: [PATCH 08/33] update --- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 987129be6a..ef60816dc1 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -54,12 +54,6 @@ describe('Verify guest user can place order', () => { '/products/crown-summit-backpack/24-MB03' )('.cart-mini-cart'); assertProductImage('/mb03-black-0.jpg')('.cart-mini-cart'); - cy.wait(1000); - cy - .viewport('iphone-x') - .percySnapshot('PDP page with Mini Cart Open', { width: 375 }) - .viewport(1280, 1024) - .percySnapshot('PDP page with Mini Cart Open', { width: 1280 }); cy.contains('View Cart').click({ force: true }); assertCartSummaryProduct( 'Crown Summit Backpack', From bb290fc815165f6cc0c321839aa9d7602e8c387a Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Mon, 7 Oct 2024 15:03:14 -0500 Subject: [PATCH 09/33] update --- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 3 --- cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js | 3 --- 2 files changed, 6 deletions(-) diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index ef60816dc1..932bf39e67 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -25,9 +25,6 @@ import { describe('Verify guest user can place order', () => { it('Verify guest user can place order', () => { - Cypress.on('uncaught:exception', (err, runnable) => { - return false; - }); cy.visit(''); cy.get('.nav-drop') .contains('Catalog') diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index ac5ebec207..572080b267 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -1,8 +1,5 @@ describe('Verify stock notification message', () => { it('Verify low stock and max qty allowed notification message', () => { - Cypress.on('uncaught:exception', (err, runnable) => { - return false; - }); cy.visit('/products/compete-track-tote/24-WB02'); cy.get('.dropin-incrementer__input').clear().type('1000'); cy.wait(1000) From 4bb784ac223be7a28d6656961d7a4fee6d3c00e9 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 11:01:10 -0500 Subject: [PATCH 10/33] update --- cypress/src/actions/index.js | 13 +------------ .../tests/e2eTests/verifyAuthUserCheckout.spec.js | 5 ++--- .../tests/e2eTests/verifyGuestUserCheckout.spec.js | 1 + 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index 6c6b4755d0..f054e44312 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -20,32 +20,22 @@ export const setGuestShippingAddress = (customerAddress, isSelectableState) => { }; export const setGuestBillingAddress = (customerAddress, isSelectableState) => { - cy.wait(1000); cy.get(fields.billingFormFirstName).should("not.be.disabled").clear().type(customerAddress.firstName, { force: true }); - cy.wait(1000); cy.get(fields.billingFormLastName).should("not.be.disabled").clear().type(customerAddress.lastName, { force: true }); - cy.wait(1000); cy.get(fields.billingFormStreet).should("not.be.disabled").clear().type(customerAddress.street, { force: true }); - cy.wait(1000); cy.get(fields.billingFormStreet1).should("not.be.disabled").clear().type(customerAddress.street1, { force: true }); if (isSelectableState) { - cy.wait(1000); cy.get(fields.billingFormState).should("not.be.disabled").select(customerAddress.region, { force: true }); } else { - cy.wait(1000); cy.get(fields.billingFormInputState).should("not.be.disabled").type(customerAddress.region, { force: true }); } - cy.wait(1000); cy.get(fields.billingFormCity).should("not.be.disabled").clear().type(customerAddress.city, { force: true }); - cy.wait(1000); cy.get(fields.billingFormPostCode).should("not.be.disabled").clear().type(customerAddress.postCode, { force: true }); - cy.wait(1000); cy.get(fields.billingFormTelephone).should("not.be.disabled").clear().type(customerAddress.telephone, { force: true }); }; export const uncheckBillToShippingAddress = () => { - cy.wait(1000); - cy.get(fields.billToShippingAddress).uncheck({ force: true }); + cy.get(fields.billToShippingAddress).should("not.be.disabled").uncheck({ force: true }); }; export const placeOrder = () => { @@ -78,7 +68,6 @@ export const signUpUser = (sign_up, isValid = true) => { } cy.get('.dropin-picker__select').select('Male'); // cy.contains('Male').click(); - cy.wait(2000); cy .viewport('iphone-x') .percySnapshot('Auth Create Account', { width: 375 }) diff --git a/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js index 9c7f7874c6..42c2435628 100644 --- a/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js @@ -71,7 +71,6 @@ describe('Verify auth user can place order', () => { cy.fixture('userInfo').then(({ sign_up }) => { signUpUser(sign_up); assertAuthUser(sign_up); - cy.wait(5000); }); cy.get('.minicart-wrapper').click(); assertCartSummaryProduct( @@ -166,12 +165,12 @@ describe('Verify auth user can place order', () => { '$52.00', '1' ); - setGuestShippingAddress(customerShippingAddress, true); uncheckBillToShippingAddress(); - cy.wait(2000); + setGuestShippingAddress(customerShippingAddress, true); setGuestBillingAddress(customerBillingAddress, true); assertOrderSummaryMisc('$90.00', '$10.00', '$86.50'); assertSelectedPaymentMethod('checkmo', 0); + // cy.wait(5000); placeOrder(); assertOrderConfirmationCommonDetails(customerBillingAddress); diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 932bf39e67..a71fc2664d 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -66,6 +66,7 @@ describe('Verify guest user can place order', () => { )('.commerce-cart-summary-wrapper'); assertProductImage('/mb03-black-0.jpg')('.commerce-cart-summary-wrapper'); cy.contains('Estimated Shipping').should('be.visible'); + cy.get('.cart-order-summary--loading').should('not.exist'); cy .viewport('iphone-x') .percySnapshot('Cart page', { width: 375 }) From 804404e5f1a28673e1de915b57e1d91a0dd96caa Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 11:26:50 -0500 Subject: [PATCH 11/33] test --- cypress/src/actions/index.js | 2 ++ .../tests/e2eTests/verifyAuthUserCheckout.spec.js | 11 ++++++----- .../tests/e2eTests/verifyGuestUserCheckout.spec.js | 14 +++++++++++--- .../e2eTests/verifyLowStockInfoMessage.spec.js | 2 ++ 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index f054e44312..a04b6c3590 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -68,6 +68,8 @@ export const signUpUser = (sign_up, isValid = true) => { } cy.get('.dropin-picker__select').select('Male'); // cy.contains('Male').click(); + cy.get('.nav-search-button').should('be.visible'); + cy.get('[aria-label="Open navigation]').should('be.visible') cy .viewport('iphone-x') .percySnapshot('Auth Create Account', { width: 375 }) diff --git a/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js index 42c2435628..5c109ec2e4 100644 --- a/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js @@ -31,13 +31,14 @@ describe('Verify auth user can place order', () => { it('Verify auth user can place order', () => { // TODO: replace with single "test" product shared between all tests (not this vs products.configurable.urlPathWithOptions). cy.visit('/products/hollister-backyard-sweatshirt/MH05'); - cy.get('[id="Y29uZmlndXJhYmxlLzI3Ny8yMDI="]').click({ + cy.get('[aria-label="Color: White swatch"]').click({ force: true, - }); - cy.get('[id="Y29uZmlndXJhYmxlLzU1Ni81MjM="]').click({ + }); + cy.get('[aria-label="Size: XS swatch"]').click({ force: true, - }); - cy.wait(5000); + }); + cy.get('[aria-label="Color: White swatch selected"]').should('be.visible'); + cy.get('[aria-label="Size: XS swatch selected"]').should('be.visible'); cy.contains('Add to Cart').click(); cy.get('.minicart-wrapper').click(); assertCartSummaryProduct( diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index a71fc2664d..f307755142 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -29,8 +29,10 @@ describe('Verify guest user can place order', () => { cy.get('.nav-drop') .contains('Catalog') .click(); - // Randomly empty click is triggered - cy.wait(1000); + cy.contains('Crown Summit Backpack') + .find("a") + .should("have.attr", "href", "/products/crown-summit-backpack/24-MB03") + .should("have.text", "Crown Summit Backpack"); cy.contains('Crown Summit Backpack').click(); cy.get('.dropin-incrementer__increase-button').click(); cy.get('.dropin-incrementer__input').should('have.value', '2'); @@ -67,6 +69,8 @@ describe('Verify guest user can place order', () => { assertProductImage('/mb03-black-0.jpg')('.commerce-cart-summary-wrapper'); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.cart-order-summary--loading').should('not.exist'); + cy.get('.nav-search-button').should('be.visible'); + cy.get('[aria-label="Open navigation]').should('be.visible') cy .viewport('iphone-x') .percySnapshot('Cart page', { width: 375 }) @@ -84,7 +88,9 @@ describe('Verify guest user can place order', () => { '$76.00', '0' ); - cy.contains('Estimated Shipping').should('be.visible') + cy.contains('Estimated Shipping').should('be.visible'); + cy.get('.nav-search-button').should('be.visible'); + cy.get('[aria-label="Open navigation]').should('be.visible') cy .viewport('iphone-x') .percySnapshot('Checkout Page', { width: 375 }) @@ -111,6 +117,8 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationShippingDetails(customerShippingAddress); assertOrderConfirmationBillingDetails(customerShippingAddress); assertOrderConfirmationShippingMethod(customerShippingAddress); + cy.get('.nav-search-button').should('be.visible'); + cy.get('[aria-label="Open navigation]').should('be.visible') cy .viewport('iphone-x') .percySnapshot('Order Confirmation', { width: 375 }) diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 572080b267..a5bec0512d 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -18,6 +18,8 @@ describe('Verify stock notification message', () => { cy.wait(1000); cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); + cy.get('.nav-search-button').should('be.visible'); + cy.get('[aria-label="Open navigation]').should('be.visible') cy .viewport('iphone-x') .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) From bccf6267e26e27cf7ff91af42b7712860d8a9494 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 11:43:12 -0500 Subject: [PATCH 12/33] update --- cypress/src/actions/index.js | 1 - cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js | 4 ++-- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 3 --- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index a04b6c3590..3e5887a15b 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -69,7 +69,6 @@ export const signUpUser = (sign_up, isValid = true) => { cy.get('.dropin-picker__select').select('Male'); // cy.contains('Male').click(); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Open navigation]').should('be.visible') cy .viewport('iphone-x') .percySnapshot('Auth Create Account', { width: 375 }) diff --git a/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js index 5c109ec2e4..d37eaabee3 100644 --- a/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js @@ -37,8 +37,8 @@ describe('Verify auth user can place order', () => { cy.get('[aria-label="Size: XS swatch"]').click({ force: true, }); - cy.get('[aria-label="Color: White swatch selected"]').should('be.visible'); - cy.get('[aria-label="Size: XS swatch selected"]').should('be.visible'); + cy.get('[aria-label="Color: White swatch selected"]').should('exist'); + cy.get('[aria-label="Size: XS swatch selected"]').should('exist'); cy.contains('Add to Cart').click(); cy.get('.minicart-wrapper').click(); assertCartSummaryProduct( diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index f307755142..c8f83d9163 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -70,7 +70,6 @@ describe('Verify guest user can place order', () => { cy.contains('Estimated Shipping').should('be.visible'); cy.get('.cart-order-summary--loading').should('not.exist'); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Open navigation]').should('be.visible') cy .viewport('iphone-x') .percySnapshot('Cart page', { width: 375 }) @@ -90,7 +89,6 @@ describe('Verify guest user can place order', () => { ); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Open navigation]').should('be.visible') cy .viewport('iphone-x') .percySnapshot('Checkout Page', { width: 375 }) @@ -118,7 +116,6 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationBillingDetails(customerShippingAddress); assertOrderConfirmationShippingMethod(customerShippingAddress); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Open navigation]').should('be.visible') cy .viewport('iphone-x') .percySnapshot('Order Confirmation', { width: 375 }) From 0dc6d667fb3f88fb2390a7d18720abab3887bade Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 11:53:38 -0500 Subject: [PATCH 13/33] update --- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index c8f83d9163..97b4217f84 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -30,7 +30,7 @@ describe('Verify guest user can place order', () => { .contains('Catalog') .click(); cy.contains('Crown Summit Backpack') - .find("a") + .should('be.visible') .should("have.attr", "href", "/products/crown-summit-backpack/24-MB03") .should("have.text", "Crown Summit Backpack"); cy.contains('Crown Summit Backpack').click(); From 77be458df588bb6c25a9eddab6571f221dff56de Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 12:00:39 -0500 Subject: [PATCH 14/33] update --- cypress/src/actions/index.js | 1 + cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index 3e5887a15b..d5ad638445 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -20,6 +20,7 @@ export const setGuestShippingAddress = (customerAddress, isSelectableState) => { }; export const setGuestBillingAddress = (customerAddress, isSelectableState) => { + cy.scrollTo('bottom'); cy.get(fields.billingFormFirstName).should("not.be.disabled").clear().type(customerAddress.firstName, { force: true }); cy.get(fields.billingFormLastName).should("not.be.disabled").clear().type(customerAddress.lastName, { force: true }); cy.get(fields.billingFormStreet).should("not.be.disabled").clear().type(customerAddress.street, { force: true }); diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index a5bec0512d..d39ecc1af0 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -19,7 +19,6 @@ describe('Verify stock notification message', () => { cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Open navigation]').should('be.visible') cy .viewport('iphone-x') .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) From d293de015a7f07011c3b56e9215230d3d316f3c7 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 12:15:26 -0500 Subject: [PATCH 15/33] update --- cypress/src/actions/index.js | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index d5ad638445..0b055848d9 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -5,38 +5,38 @@ export const setGuestEmail = (customerEmail) => { }; export const setGuestShippingAddress = (customerAddress, isSelectableState) => { - cy.get(fields.shippingFormFirstName).clear().type(customerAddress.firstName); - cy.get(fields.shippingFormLastName).clear().type(customerAddress.lastName); - cy.get(fields.shippingFormStreet).clear().type(customerAddress.street); - cy.get(fields.shippingFormStreet1).clear().type(customerAddress.street1); + cy.get(fields.shippingFormFirstName).should('be.visible'); + cy.get(fields.shippingFormFirstName).focus().clear().type(customerAddress.firstName); + cy.get(fields.shippingFormLastName).focus().clear().type(customerAddress.lastName); + cy.get(fields.shippingFormStreet).focus().clear().type(customerAddress.street); + cy.get(fields.shippingFormStreet1).focus().clear().type(customerAddress.street1); if (isSelectableState) { cy.get(fields.shippingFormState).select(customerAddress.region); } else { cy.get(fields.shippingFormInputState).type(customerAddress.region); } - cy.get(fields.shippingFormCity).clear().type(customerAddress.city); - cy.get(fields.shippingFormPostCode).clear().type(customerAddress.postCode); - cy.get(fields.shippingFormTelephone).clear().type(customerAddress.telephone); + cy.get(fields.shippingFormCity).focus().clear().type(customerAddress.city); + cy.get(fields.shippingFormPostCode).focus().clear().type(customerAddress.postCode); + cy.get(fields.shippingFormTelephone).focus().clear().type(customerAddress.telephone); }; export const setGuestBillingAddress = (customerAddress, isSelectableState) => { - cy.scrollTo('bottom'); - cy.get(fields.billingFormFirstName).should("not.be.disabled").clear().type(customerAddress.firstName, { force: true }); - cy.get(fields.billingFormLastName).should("not.be.disabled").clear().type(customerAddress.lastName, { force: true }); - cy.get(fields.billingFormStreet).should("not.be.disabled").clear().type(customerAddress.street, { force: true }); - cy.get(fields.billingFormStreet1).should("not.be.disabled").clear().type(customerAddress.street1, { force: true }); + cy.get(fields.billingFormFirstName).focus().should("not.be.disabled").clear().type(customerAddress.firstName, { force: true }); + cy.get(fields.billingFormLastName).focus().should("not.be.disabled").clear().type(customerAddress.lastName, { force: true }); + cy.get(fields.billingFormStreet).focus().should("not.be.disabled").clear().type(customerAddress.street, { force: true }); + cy.get(fields.billingFormStreet1).focus().should("not.be.disabled").clear().type(customerAddress.street1, { force: true }); if (isSelectableState) { - cy.get(fields.billingFormState).should("not.be.disabled").select(customerAddress.region, { force: true }); + cy.get(fields.billingFormState).focus().should("not.be.disabled").select(customerAddress.region, { force: true }); } else { - cy.get(fields.billingFormInputState).should("not.be.disabled").type(customerAddress.region, { force: true }); + cy.get(fields.billingFormInputState).focus().should("not.be.disabled").type(customerAddress.region, { force: true }); } - cy.get(fields.billingFormCity).should("not.be.disabled").clear().type(customerAddress.city, { force: true }); - cy.get(fields.billingFormPostCode).should("not.be.disabled").clear().type(customerAddress.postCode, { force: true }); - cy.get(fields.billingFormTelephone).should("not.be.disabled").clear().type(customerAddress.telephone, { force: true }); + cy.get(fields.billingFormCity).focus().should("not.be.disabled").clear().type(customerAddress.city, { force: true }); + cy.get(fields.billingFormPostCode).focus().should("not.be.disabled").clear().type(customerAddress.postCode, { force: true }); + cy.get(fields.billingFormTelephone).focus().should("not.be.disabled").clear().type(customerAddress.telephone, { force: true }); }; export const uncheckBillToShippingAddress = () => { - cy.get(fields.billToShippingAddress).should("not.be.disabled").uncheck({ force: true }); + cy.get(fields.billToShippingAddress).focus().should("not.be.disabled").uncheck({ force: true }); }; export const placeOrder = () => { From 572f8f410e16bfb7dc6ee125842adea845efa987 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 13:35:56 -0500 Subject: [PATCH 16/33] fix mobile screen with percy --- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 2 ++ cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js | 1 + 2 files changed, 3 insertions(+) diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 97b4217f84..24f5ce875d 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -70,6 +70,7 @@ describe('Verify guest user can place order', () => { cy.contains('Estimated Shipping').should('be.visible'); cy.get('.cart-order-summary--loading').should('not.exist'); cy.get('.nav-search-button').should('be.visible'); + cy.get('.nav-hamburger').invoke('remove'); cy .viewport('iphone-x') .percySnapshot('Cart page', { width: 375 }) @@ -89,6 +90,7 @@ describe('Verify guest user can place order', () => { ); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); + cy.get('.nav-hamburger').invoke('remove'); cy .viewport('iphone-x') .percySnapshot('Checkout Page', { width: 375 }) diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index d39ecc1af0..1b591366de 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -19,6 +19,7 @@ describe('Verify stock notification message', () => { cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); + cy.get('.nav-hamburger').invoke('remove'); cy .viewport('iphone-x') .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) From dbd46a369e6fac7ee25151d6dafd676ffcf0d0df Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 13:57:15 -0500 Subject: [PATCH 17/33] update --- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 5 +++++ cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 24f5ce875d..823bb4781d 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -25,6 +25,11 @@ import { describe('Verify guest user can place order', () => { it('Verify guest user can place order', () => { + Cypress.on('uncaught:exception', (err, runnable) => { + if (err.message.includes("(reading 'setAttribute')")) { + return false + } + }); cy.visit(''); cy.get('.nav-drop') .contains('Catalog') diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 1b591366de..7eb9efe0d8 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -1,5 +1,10 @@ describe('Verify stock notification message', () => { it('Verify low stock and max qty allowed notification message', () => { + Cypress.on('uncaught:exception', (err, runnable) => { + if (err.message.includes("(reading 'setAttribute')")) { + return false + } + }); cy.visit('/products/compete-track-tote/24-WB02'); cy.get('.dropin-incrementer__input').clear().type('1000'); cy.wait(1000) From 7d59d233885c2223527ac969bea5953450bb021a Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 14:50:20 -0500 Subject: [PATCH 18/33] recheck --- cypress/src/actions/index.js | 6 ++--- .../e2eTests/verifyGuestUserCheckout.spec.js | 25 +++++++------------ .../verifyLowStockInfoMessage.spec.js | 12 +++------ 3 files changed, 15 insertions(+), 28 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index 0b055848d9..cddc4f204f 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -71,9 +71,9 @@ export const signUpUser = (sign_up, isValid = true) => { // cy.contains('Male').click(); cy.get('.nav-search-button').should('be.visible'); cy - .viewport('iphone-x') - .percySnapshot('Auth Create Account', { width: 375 }) + // .viewport('iphone-x') + // .percySnapshot('Auth Create Account', { width: 375 }) .viewport(1280, 1024) - .percySnapshot('Auth Create Account', { width: 1280 }); + .percySnapshot('Auth Create Account Updated', { width: 1280 }); createAccount(); }; diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 823bb4781d..046f4fb789 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -25,11 +25,6 @@ import { describe('Verify guest user can place order', () => { it('Verify guest user can place order', () => { - Cypress.on('uncaught:exception', (err, runnable) => { - if (err.message.includes("(reading 'setAttribute')")) { - return false - } - }); cy.visit(''); cy.get('.nav-drop') .contains('Catalog') @@ -75,12 +70,11 @@ describe('Verify guest user can place order', () => { cy.contains('Estimated Shipping').should('be.visible'); cy.get('.cart-order-summary--loading').should('not.exist'); cy.get('.nav-search-button').should('be.visible'); - cy.get('.nav-hamburger').invoke('remove'); cy - .viewport('iphone-x') - .percySnapshot('Cart page', { width: 375 }) + // .viewport('iphone-x') + // .percySnapshot('Cart page', { width: 375 }) .viewport(1280, 1024) - .percySnapshot('Cart page', { width: 1280 }); + .percySnapshot('Cart page Updated', { width: 1280 }); cy.get('.dropin-button--primary') .contains('Checkout') .click({ force: true }); @@ -95,12 +89,11 @@ describe('Verify guest user can place order', () => { ); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - cy.get('.nav-hamburger').invoke('remove'); cy - .viewport('iphone-x') - .percySnapshot('Checkout Page', { width: 375 }) + // .viewport('iphone-x') + // .percySnapshot('Checkout Page', { width: 375 }) .viewport(1280, 1024) - .percySnapshot('Checkout Page', { width: 1280 }); + .percySnapshot('Checkout Page Updated', { width: 1280 }); const apiMethod = 'setGuestEmailOnCart'; const urlTest = Cypress.env('graphqlEndPoint'); cy.intercept('POST', urlTest, (req) => { @@ -124,10 +117,10 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationShippingMethod(customerShippingAddress); cy.get('.nav-search-button').should('be.visible'); cy - .viewport('iphone-x') - .percySnapshot('Order Confirmation', { width: 375 }) + // .viewport('iphone-x') + // .percySnapshot('Order Confirmation', { width: 375 }) .viewport(1280, 1024) - .percySnapshot('Order Confirmation', { width: 1280 }); + .percySnapshot('Order Confirmation Updated', { width: 1280 }); /** * TODO - when /order-details page will be ready * Redirect to /order-details?orderRef={ORDER_TOKEN} diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 7eb9efe0d8..45e6bdabf5 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -1,10 +1,5 @@ describe('Verify stock notification message', () => { it('Verify low stock and max qty allowed notification message', () => { - Cypress.on('uncaught:exception', (err, runnable) => { - if (err.message.includes("(reading 'setAttribute')")) { - return false - } - }); cy.visit('/products/compete-track-tote/24-WB02'); cy.get('.dropin-incrementer__input').clear().type('1000'); cy.wait(1000) @@ -24,11 +19,10 @@ describe('Verify stock notification message', () => { cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - cy.get('.nav-hamburger').invoke('remove'); cy - .viewport('iphone-x') - .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) + // .viewport('iphone-x') + // .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) .viewport(1280, 1024) - .percySnapshot('PDP page with Low Stock Notifiction', { width: 1280 }); + .percySnapshot('PDP page with Low Stock Notifiction Updated', { width: 1280 }); }); }); \ No newline at end of file From be522712fba54ba2f586ec07ba01e7c4790013d0 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 15:07:40 -0500 Subject: [PATCH 19/33] check mobile view fix --- cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 45e6bdabf5..9ba05dc44f 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -19,9 +19,10 @@ describe('Verify stock notification message', () => { cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); + let domTransformation = "(documentElement) => documentElement.querySelector('#nav').aria-expanded = 'false'"; cy - // .viewport('iphone-x') - // .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) + .viewport('iphone-x') + .percySnapshot('PDP page with Low Stock Notifiction', { width: 375, domTransformation }) .viewport(1280, 1024) .percySnapshot('PDP page with Low Stock Notifiction Updated', { width: 1280 }); }); From 674c544f1388cd30e485c24c1bbebc6ea861834a Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 15:14:18 -0500 Subject: [PATCH 20/33] update --- cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 9ba05dc44f..f22efbe7cf 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -22,7 +22,7 @@ describe('Verify stock notification message', () => { let domTransformation = "(documentElement) => documentElement.querySelector('#nav').aria-expanded = 'false'"; cy .viewport('iphone-x') - .percySnapshot('PDP page with Low Stock Notifiction', { width: 375, domTransformation }) + .percySnapshot('PDP page with Low Stock Notifiction Updated', { width: 375, domTransformation }) .viewport(1280, 1024) .percySnapshot('PDP page with Low Stock Notifiction Updated', { width: 1280 }); }); From ae4104c333f25e88cea58511b995974ce3a16618 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 15:38:28 -0500 Subject: [PATCH 21/33] update --- cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index f22efbe7cf..fbb96fd8da 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -19,7 +19,7 @@ describe('Verify stock notification message', () => { cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - let domTransformation = "(documentElement) => documentElement.querySelector('#nav').aria-expanded = 'false'"; + let domTransformation = 'document.getElementById("nav").setAttribute("aria-expanded", false)'; cy .viewport('iphone-x') .percySnapshot('PDP page with Low Stock Notifiction Updated', { width: 375, domTransformation }) From 4f0390c352402c6d48e9f8c619cefd6eab4fd5be Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 15:53:13 -0500 Subject: [PATCH 22/33] test --- cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index fbb96fd8da..dd436da15e 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -19,10 +19,10 @@ describe('Verify stock notification message', () => { cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - let domTransformation = 'document.getElementById("nav").setAttribute("aria-expanded", false)'; + cy.get('[aria-label="Close navigation"]').click({force: true}); cy .viewport('iphone-x') - .percySnapshot('PDP page with Low Stock Notifiction Updated', { width: 375, domTransformation }) + .percySnapshot('PDP page with Low Stock Notifiction Updated', { width: 375 }) .viewport(1280, 1024) .percySnapshot('PDP page with Low Stock Notifiction Updated', { width: 1280 }); }); From 4e11e09e2f6db48e0753f40b1f7d4dbdc1a36354 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 16:40:28 -0500 Subject: [PATCH 23/33] update --- cypress/src/actions/index.js | 5 +++-- cypress/src/assertions/index.js | 6 +++--- .../e2eTests/events/initiate-checkout.spec.js | 8 +++----- .../e2eTests/verifyAuthUserCheckout.spec.js | 16 +++++++-------- .../e2eTests/verifyGuestUserCheckout.spec.js | 20 ++++++++++--------- 5 files changed, 28 insertions(+), 27 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index cddc4f204f..8f58c068cb 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -70,9 +70,10 @@ export const signUpUser = (sign_up, isValid = true) => { cy.get('.dropin-picker__select').select('Male'); // cy.contains('Male').click(); cy.get('.nav-search-button').should('be.visible'); + cy.get('[aria-label="Close navigation"]').click({force: true}); cy - // .viewport('iphone-x') - // .percySnapshot('Auth Create Account', { width: 375 }) + .viewport('iphone-x') + .percySnapshot('Auth Create Account', { width: 375}) .viewport(1280, 1024) .percySnapshot('Auth Create Account Updated', { width: 1280 }); createAccount(); diff --git a/cypress/src/assertions/index.js b/cypress/src/assertions/index.js index c9265b3b77..c8ee9fa8ec 100644 --- a/cypress/src/assertions/index.js +++ b/cypress/src/assertions/index.js @@ -7,7 +7,7 @@ export const assertCartSummaryProduct = totalPrice, productPosition ) => - (elem = '.commerce-cart-summary-wrapper') => { + (elem = '.dropin-cart-item__wrapper') => { cy.get(`${elem} .dropin-cart-item__title`) .eq(productPosition) .should('contain', productName); @@ -15,7 +15,7 @@ export const assertCartSummaryProduct = .eq(productPosition) .should('contain', productSku); - if (elem === '.commerce-cart-summary-wrapper') { + if (elem === '.dropin-cart-item__wrapper') { cy.get(`${elem} .dropin-incrementer__input`) .eq(productPosition) .should('have.value', productQty); @@ -85,7 +85,7 @@ export const assertOrderSummaryMisc = (subtotal, shipping, total) => { export const assertTitleHasLink = (productName, productHref) => (elem = '.cart-cart') => { - cy.get(`${elem} .dropin-cart-item`) + cy.get(`${elem} .dropin-cart-item__title`) .contains(productName) .should('have.attr', 'href', productHref); }; diff --git a/cypress/src/tests/e2eTests/events/initiate-checkout.spec.js b/cypress/src/tests/e2eTests/events/initiate-checkout.spec.js index ec16b9e7b3..4dbf48d2dd 100644 --- a/cypress/src/tests/e2eTests/events/initiate-checkout.spec.js +++ b/cypress/src/tests/e2eTests/events/initiate-checkout.spec.js @@ -80,11 +80,9 @@ it("is sent on cart page Checkout button click", () => { cy.window().then((win) => { cy.spy(win.adobeDataLayer, "push").as("adl"); // click the checkout button - cy.get( - "body > main:nth-child(2) > div.section.commerce-cart-order-summary-container > div > div > div > div.cart-order-summary__content > div.cart-order-summary__entry.cart-order-summary__primaryAction > a" - ) - .should("be.visible") - .click() + cy.get('.dropin-button--primary') + .contains('Checkout') + .click({ force: true }) .then(() => { cy.get("@adl", { timeout: 1000 }).should((adobeDataLayerPush) => { const targetEventIndex = adobeDataLayerPush.args.findIndex( diff --git a/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js index d37eaabee3..431e1f53f2 100644 --- a/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js @@ -62,11 +62,11 @@ describe('Verify auth user can place order', () => { '$52.00', '$52.00', '0' - )('.commerce-cart-summary-wrapper'); + )('.dropin-cart-item__wrapper'); assertTitleHasLink( 'Hollister Backyard Sweatshirt', '/products/hollister-backyard-sweatshirt/MH05' - )('.commerce-cart-summary-wrapper'); + )('.dropin-cart-item__wrapper'); cy.visit("/customer/create"); cy.get('.minicart-wrapper').should('be.visible') cy.fixture('userInfo').then(({ sign_up }) => { @@ -125,12 +125,12 @@ describe('Verify auth user can place order', () => { '$38.00', '$38.00', '0' - )('.commerce-cart-summary-wrapper'); + )('.dropin-cart-item__wrapper'); assertTitleHasLink( 'Crown Summit Backpack', '/products/crown-summit-backpack/24-MB03' - )('.commerce-cart-summary-wrapper'); - assertProductImage('/mb03-black-0.jpg')('.commerce-cart-summary-wrapper'); + )('.dropin-cart-item__wrapper'); + assertProductImage('/mb03-black-0.jpg')('.dropin-cart-item__wrapper'); assertCartSummaryProduct( 'Hollister Backyard Sweatshirt', @@ -139,12 +139,12 @@ describe('Verify auth user can place order', () => { '$52.00', '$52.00', '1' - )('.commerce-cart-summary-wrapper'); + )('.dropin-cart-item__wrapper'); assertTitleHasLink( 'Hollister Backyard Sweatshirt', '/products/hollister-backyard-sweatshirt/MH05' - )('.commerce-cart-summary-wrapper'); - assertProductImage('/mh05-white_main_1.jpg')('.commerce-cart-summary-wrapper'); + )('.dropin-cart-item__wrapper'); + assertProductImage('/mh05-white_main_1.jpg')('.dropin-cart-item__wrapper'); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.dropin-button--primary') .contains('Checkout') diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 046f4fb789..a8d041dd7a 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -61,18 +61,19 @@ describe('Verify guest user can place order', () => { '$38.00', '$76.00', '0' - )('.commerce-cart-summary-wrapper'); + )('.dropin-cart-item__wrapper'); assertTitleHasLink( 'Crown Summit Backpack', '/products/crown-summit-backpack/24-MB03' - )('.commerce-cart-summary-wrapper'); - assertProductImage('/mb03-black-0.jpg')('.commerce-cart-summary-wrapper'); + )('.dropin-cart-item__wrapper'); + assertProductImage('/mb03-black-0.jpg')('.dropin-cart-item__wrapper'); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.cart-order-summary--loading').should('not.exist'); cy.get('.nav-search-button').should('be.visible'); + cy.get('[aria-label="Close navigation"]').click({force: true}); cy - // .viewport('iphone-x') - // .percySnapshot('Cart page', { width: 375 }) + .viewport('iphone-x') + .percySnapshot('Cart page', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Cart page Updated', { width: 1280 }); cy.get('.dropin-button--primary') @@ -89,9 +90,10 @@ describe('Verify guest user can place order', () => { ); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); + cy.get('[aria-label="Close navigation"]').click({force: true}); cy - // .viewport('iphone-x') - // .percySnapshot('Checkout Page', { width: 375 }) + .viewport('iphone-x') + .percySnapshot('Checkout Page', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Checkout Page Updated', { width: 1280 }); const apiMethod = 'setGuestEmailOnCart'; @@ -117,8 +119,8 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationShippingMethod(customerShippingAddress); cy.get('.nav-search-button').should('be.visible'); cy - // .viewport('iphone-x') - // .percySnapshot('Order Confirmation', { width: 375 }) + .viewport('iphone-x') + .percySnapshot('Order Confirmation', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Order Confirmation Updated', { width: 1280 }); /** From d900c75b69b2e1072e883d3d0f7fa15948919927 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 17:18:07 -0500 Subject: [PATCH 24/33] update --- cypress/src/actions/index.js | 2 +- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 6 +++--- .../src/tests/e2eTests/verifyLowStockInfoMessage.spec.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index 8f58c068cb..7ee1851ab8 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -75,6 +75,6 @@ export const signUpUser = (sign_up, isValid = true) => { .viewport('iphone-x') .percySnapshot('Auth Create Account', { width: 375}) .viewport(1280, 1024) - .percySnapshot('Auth Create Account Updated', { width: 1280 }); + .percySnapshot('Auth Create Account', { width: 1280 }); createAccount(); }; diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index a8d041dd7a..566bb63ea1 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -75,7 +75,7 @@ describe('Verify guest user can place order', () => { .viewport('iphone-x') .percySnapshot('Cart page', { width: 375 }) .viewport(1280, 1024) - .percySnapshot('Cart page Updated', { width: 1280 }); + .percySnapshot('Cart page', { width: 1280 }); cy.get('.dropin-button--primary') .contains('Checkout') .click({ force: true }); @@ -95,7 +95,7 @@ describe('Verify guest user can place order', () => { .viewport('iphone-x') .percySnapshot('Checkout Page', { width: 375 }) .viewport(1280, 1024) - .percySnapshot('Checkout Page Updated', { width: 1280 }); + .percySnapshot('Checkout Page', { width: 1280 }); const apiMethod = 'setGuestEmailOnCart'; const urlTest = Cypress.env('graphqlEndPoint'); cy.intercept('POST', urlTest, (req) => { @@ -122,7 +122,7 @@ describe('Verify guest user can place order', () => { .viewport('iphone-x') .percySnapshot('Order Confirmation', { width: 375 }) .viewport(1280, 1024) - .percySnapshot('Order Confirmation Updated', { width: 1280 }); + .percySnapshot('Order Confirmation', { width: 1280 }); /** * TODO - when /order-details page will be ready * Redirect to /order-details?orderRef={ORDER_TOKEN} diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index dd436da15e..86ed53618b 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -22,8 +22,8 @@ describe('Verify stock notification message', () => { cy.get('[aria-label="Close navigation"]').click({force: true}); cy .viewport('iphone-x') - .percySnapshot('PDP page with Low Stock Notifiction Updated', { width: 375 }) + .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) .viewport(1280, 1024) - .percySnapshot('PDP page with Low Stock Notifiction Updated', { width: 1280 }); + .percySnapshot('PDP page with Low Stock Notifiction', { width: 1280 }); }); }); \ No newline at end of file From 9168ebd06c97114ff98f7004a746621094961d09 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Wed, 16 Oct 2024 22:53:01 -0500 Subject: [PATCH 25/33] disable mobile --- cypress/src/actions/index.js | 6 +++--- .../e2eTests/verifyGuestUserCheckout.spec.js | 18 +++++++++--------- .../e2eTests/verifyLowStockInfoMessage.spec.js | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index 7ee1851ab8..e957b48ef4 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -70,10 +70,10 @@ export const signUpUser = (sign_up, isValid = true) => { cy.get('.dropin-picker__select').select('Male'); // cy.contains('Male').click(); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Close navigation"]').click({force: true}); + // cy.get('[aria-label="Close navigation"]').click({force: true}); cy - .viewport('iphone-x') - .percySnapshot('Auth Create Account', { width: 375}) + // .viewport('iphone-x') + // .percySnapshot('Auth Create Account', { width: 375}) .viewport(1280, 1024) .percySnapshot('Auth Create Account', { width: 1280 }); createAccount(); diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 566bb63ea1..c32c0af374 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -70,10 +70,10 @@ describe('Verify guest user can place order', () => { cy.contains('Estimated Shipping').should('be.visible'); cy.get('.cart-order-summary--loading').should('not.exist'); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Close navigation"]').click({force: true}); + // cy.get('[aria-label="Close navigation"]').click({force: true}); cy - .viewport('iphone-x') - .percySnapshot('Cart page', { width: 375 }) + // .viewport('iphone-x') + // .percySnapshot('Cart page', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Cart page', { width: 1280 }); cy.get('.dropin-button--primary') @@ -90,10 +90,10 @@ describe('Verify guest user can place order', () => { ); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Close navigation"]').click({force: true}); + // cy.get('[aria-label="Close navigation"]').click({force: true}); cy - .viewport('iphone-x') - .percySnapshot('Checkout Page', { width: 375 }) + // .viewport('iphone-x') + // .percySnapshot('Checkout Page', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Checkout Page', { width: 1280 }); const apiMethod = 'setGuestEmailOnCart'; @@ -117,10 +117,10 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationShippingDetails(customerShippingAddress); assertOrderConfirmationBillingDetails(customerShippingAddress); assertOrderConfirmationShippingMethod(customerShippingAddress); - cy.get('.nav-search-button').should('be.visible'); + // cy.get('.nav-search-button').should('be.visible'); cy - .viewport('iphone-x') - .percySnapshot('Order Confirmation', { width: 375 }) + // .viewport('iphone-x') + // .percySnapshot('Order Confirmation', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Order Confirmation', { width: 1280 }); /** diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 86ed53618b..415e3ce864 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -19,10 +19,10 @@ describe('Verify stock notification message', () => { cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Close navigation"]').click({force: true}); + // cy.get('[aria-label="Close navigation"]').click({force: true}); cy - .viewport('iphone-x') - .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) + // .viewport('iphone-x') + // .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) .viewport(1280, 1024) .percySnapshot('PDP page with Low Stock Notifiction', { width: 1280 }); }); From d20bf6e959c2c7aec1790da15dd90b491a4a1e59 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Thu, 17 Oct 2024 01:01:12 -0500 Subject: [PATCH 26/33] update --- cypress/src/actions/index.js | 6 +++--- .../e2eTests/verifyGuestUserCheckout.spec.js | 18 +++++++++--------- .../e2eTests/verifyLowStockInfoMessage.spec.js | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index e957b48ef4..7ee1851ab8 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -70,10 +70,10 @@ export const signUpUser = (sign_up, isValid = true) => { cy.get('.dropin-picker__select').select('Male'); // cy.contains('Male').click(); cy.get('.nav-search-button').should('be.visible'); - // cy.get('[aria-label="Close navigation"]').click({force: true}); + cy.get('[aria-label="Close navigation"]').click({force: true}); cy - // .viewport('iphone-x') - // .percySnapshot('Auth Create Account', { width: 375}) + .viewport('iphone-x') + .percySnapshot('Auth Create Account', { width: 375}) .viewport(1280, 1024) .percySnapshot('Auth Create Account', { width: 1280 }); createAccount(); diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index c32c0af374..566bb63ea1 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -70,10 +70,10 @@ describe('Verify guest user can place order', () => { cy.contains('Estimated Shipping').should('be.visible'); cy.get('.cart-order-summary--loading').should('not.exist'); cy.get('.nav-search-button').should('be.visible'); - // cy.get('[aria-label="Close navigation"]').click({force: true}); + cy.get('[aria-label="Close navigation"]').click({force: true}); cy - // .viewport('iphone-x') - // .percySnapshot('Cart page', { width: 375 }) + .viewport('iphone-x') + .percySnapshot('Cart page', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Cart page', { width: 1280 }); cy.get('.dropin-button--primary') @@ -90,10 +90,10 @@ describe('Verify guest user can place order', () => { ); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - // cy.get('[aria-label="Close navigation"]').click({force: true}); + cy.get('[aria-label="Close navigation"]').click({force: true}); cy - // .viewport('iphone-x') - // .percySnapshot('Checkout Page', { width: 375 }) + .viewport('iphone-x') + .percySnapshot('Checkout Page', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Checkout Page', { width: 1280 }); const apiMethod = 'setGuestEmailOnCart'; @@ -117,10 +117,10 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationShippingDetails(customerShippingAddress); assertOrderConfirmationBillingDetails(customerShippingAddress); assertOrderConfirmationShippingMethod(customerShippingAddress); - // cy.get('.nav-search-button').should('be.visible'); + cy.get('.nav-search-button').should('be.visible'); cy - // .viewport('iphone-x') - // .percySnapshot('Order Confirmation', { width: 375 }) + .viewport('iphone-x') + .percySnapshot('Order Confirmation', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Order Confirmation', { width: 1280 }); /** diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 415e3ce864..86ed53618b 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -19,10 +19,10 @@ describe('Verify stock notification message', () => { cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - // cy.get('[aria-label="Close navigation"]').click({force: true}); + cy.get('[aria-label="Close navigation"]').click({force: true}); cy - // .viewport('iphone-x') - // .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) + .viewport('iphone-x') + .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) .viewport(1280, 1024) .percySnapshot('PDP page with Low Stock Notifiction', { width: 1280 }); }); From 01d182dfab50da10bec58f96f26be126563e696c Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Thu, 17 Oct 2024 01:10:35 -0500 Subject: [PATCH 27/33] avoid duplicating --- cypress/src/actions/index.js | 2 -- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 6 ------ .../src/tests/e2eTests/verifyLowStockInfoMessage.spec.js | 2 -- 3 files changed, 10 deletions(-) diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index 7ee1851ab8..0885a788dd 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -72,8 +72,6 @@ export const signUpUser = (sign_up, isValid = true) => { cy.get('.nav-search-button').should('be.visible'); cy.get('[aria-label="Close navigation"]').click({force: true}); cy - .viewport('iphone-x') - .percySnapshot('Auth Create Account', { width: 375}) .viewport(1280, 1024) .percySnapshot('Auth Create Account', { width: 1280 }); createAccount(); diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 566bb63ea1..34bf029d1c 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -72,8 +72,6 @@ describe('Verify guest user can place order', () => { cy.get('.nav-search-button').should('be.visible'); cy.get('[aria-label="Close navigation"]').click({force: true}); cy - .viewport('iphone-x') - .percySnapshot('Cart page', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Cart page', { width: 1280 }); cy.get('.dropin-button--primary') @@ -92,8 +90,6 @@ describe('Verify guest user can place order', () => { cy.get('.nav-search-button').should('be.visible'); cy.get('[aria-label="Close navigation"]').click({force: true}); cy - .viewport('iphone-x') - .percySnapshot('Checkout Page', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Checkout Page', { width: 1280 }); const apiMethod = 'setGuestEmailOnCart'; @@ -119,8 +115,6 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationShippingMethod(customerShippingAddress); cy.get('.nav-search-button').should('be.visible'); cy - .viewport('iphone-x') - .percySnapshot('Order Confirmation', { width: 375 }) .viewport(1280, 1024) .percySnapshot('Order Confirmation', { width: 1280 }); /** diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 86ed53618b..3bbc75c48f 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -21,8 +21,6 @@ describe('Verify stock notification message', () => { cy.get('.nav-search-button').should('be.visible'); cy.get('[aria-label="Close navigation"]').click({force: true}); cy - .viewport('iphone-x') - .percySnapshot('PDP page with Low Stock Notifiction', { width: 375 }) .viewport(1280, 1024) .percySnapshot('PDP page with Low Stock Notifiction', { width: 1280 }); }); From 098b084270eea67c27fffd11eba0810e69bb1ea7 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Thu, 17 Oct 2024 02:01:43 -0500 Subject: [PATCH 28/33] update --- cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index 34bf029d1c..a2e6b4f9c6 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -70,7 +70,7 @@ describe('Verify guest user can place order', () => { cy.contains('Estimated Shipping').should('be.visible'); cy.get('.cart-order-summary--loading').should('not.exist'); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Close navigation"]').click({force: true}); + cy.get('[aria-label="Close navigation"]').click({ force: true }); cy .viewport(1280, 1024) .percySnapshot('Cart page', { width: 1280 }); @@ -88,7 +88,8 @@ describe('Verify guest user can place order', () => { ); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Close navigation"]').click({force: true}); + cy.get('.cart-order-summary--loading').should('not.exist'); + cy.get('[aria-label="Close navigation"]').click({ force: true }); cy .viewport(1280, 1024) .percySnapshot('Checkout Page', { width: 1280 }); @@ -114,6 +115,7 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationBillingDetails(customerShippingAddress); assertOrderConfirmationShippingMethod(customerShippingAddress); cy.get('.nav-search-button').should('be.visible'); + cy.get('[aria-label="Open navigation"]').should('exist') cy .viewport(1280, 1024) .percySnapshot('Order Confirmation', { width: 1280 }); From 09b50577702aa840a549330a48b48cdb7698c5f1 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Thu, 17 Oct 2024 10:55:10 -0500 Subject: [PATCH 29/33] cleanup --- cypress/src/actions/index.js | 17 +++++++++----- cypress/src/assertions/index.js | 5 +++++ cypress/src/support/index.js | 3 ++- cypress/src/support/percyTakeSnapshot.js | 7 ++++++ .../e2eTests/verifyAuthUserCheckout.spec.js | 1 - .../e2eTests/verifyGuestUserCheckout.spec.js | 22 ++++++++----------- .../verifyLowStockInfoMessage.spec.js | 14 +++++++----- 7 files changed, 43 insertions(+), 26 deletions(-) create mode 100644 cypress/src/support/percyTakeSnapshot.js diff --git a/cypress/src/actions/index.js b/cypress/src/actions/index.js index 0885a788dd..33f688d866 100644 --- a/cypress/src/actions/index.js +++ b/cypress/src/actions/index.js @@ -1,4 +1,7 @@ import * as fields from '../fields/index'; +import { + assertSearchIconVisible, +} from '../assertions'; export const setGuestEmail = (customerEmail) => { cy.get(fields.shippingFormGuestEmail).clear().type(customerEmail); @@ -68,11 +71,13 @@ export const signUpUser = (sign_up, isValid = true) => { cy.get(fields.authFormUserPassword).eq(1).clear().type(sign_up.shortPassword); } cy.get('.dropin-picker__select').select('Male'); - // cy.contains('Male').click(); - cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Close navigation"]').click({force: true}); - cy - .viewport(1280, 1024) - .percySnapshot('Auth Create Account', { width: 1280 }); + assertSearchIconVisible(); + closeHamburgerMenu(); + cy.percyTakeSnapshot('Auth Create Account', 1280) createAccount(); }; + + +export const closeHamburgerMenu = () => { + cy.get('[aria-label="Close navigation"]').click({ force: true }); +}; diff --git a/cypress/src/assertions/index.js b/cypress/src/assertions/index.js index c8ee9fa8ec..37c3a7c725 100644 --- a/cypress/src/assertions/index.js +++ b/cypress/src/assertions/index.js @@ -169,3 +169,8 @@ export const assertAuthUser = (sign_up) => { // cy.contains(sign_up.lastName).should("be.visible"); // cy.contains(sign_up.email).should("be.visible"); }; + + +export const assertSearchIconVisible = () => { + cy.get('.nav-search-button').should('be.visible'); +}; diff --git a/cypress/src/support/index.js b/cypress/src/support/index.js index 99b8a0d578..3d3f3ec963 100644 --- a/cypress/src/support/index.js +++ b/cypress/src/support/index.js @@ -2,4 +2,5 @@ import './deleteCustomer'; import './getUserTokenCookie'; import './waitForResource'; import './sessionStorage'; -import '@percy/cypress'; \ No newline at end of file +import '@percy/cypress'; +import './percyTakeSnapshot' \ No newline at end of file diff --git a/cypress/src/support/percyTakeSnapshot.js b/cypress/src/support/percyTakeSnapshot.js new file mode 100644 index 0000000000..39dd24388c --- /dev/null +++ b/cypress/src/support/percyTakeSnapshot.js @@ -0,0 +1,7 @@ +const percyTakeSnapshot = ( nameOfSnapshot, screenWidth) => { + cy + .viewport(1280, 1024) + .percySnapshot(nameOfSnapshot, { width: screenWidth }); +}; + +Cypress.Commands.add('percyTakeSnapshot', percyTakeSnapshot); \ No newline at end of file diff --git a/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js index 431e1f53f2..b637db0bf5 100644 --- a/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyAuthUserCheckout.spec.js @@ -171,7 +171,6 @@ describe('Verify auth user can place order', () => { setGuestBillingAddress(customerBillingAddress, true); assertOrderSummaryMisc('$90.00', '$10.00', '$86.50'); assertSelectedPaymentMethod('checkmo', 0); - // cy.wait(5000); placeOrder(); assertOrderConfirmationCommonDetails(customerBillingAddress); diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index a2e6b4f9c6..4522ab03d2 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -2,6 +2,7 @@ import { setGuestEmail, setGuestShippingAddress, placeOrder, + closeHamburgerMenu, } from '../../actions'; import { assertCartSummaryProduct, @@ -14,6 +15,7 @@ import { assertOrderConfirmationShippingDetails, assertOrderConfirmationBillingDetails, assertOrderConfirmationShippingMethod, + assertSearchIconVisible, } from '../../assertions'; import { @@ -69,11 +71,9 @@ describe('Verify guest user can place order', () => { assertProductImage('/mb03-black-0.jpg')('.dropin-cart-item__wrapper'); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.cart-order-summary--loading').should('not.exist'); - cy.get('.nav-search-button').should('be.visible'); + assertSearchIconVisible(); cy.get('[aria-label="Close navigation"]').click({ force: true }); - cy - .viewport(1280, 1024) - .percySnapshot('Cart page', { width: 1280 }); + cy.percyTakeSnapshot('Cart page', 1280); cy.get('.dropin-button--primary') .contains('Checkout') .click({ force: true }); @@ -87,12 +87,10 @@ describe('Verify guest user can place order', () => { '0' ); cy.contains('Estimated Shipping').should('be.visible'); - cy.get('.nav-search-button').should('be.visible'); + assertSearchIconVisible(); cy.get('.cart-order-summary--loading').should('not.exist'); cy.get('[aria-label="Close navigation"]').click({ force: true }); - cy - .viewport(1280, 1024) - .percySnapshot('Checkout Page', { width: 1280 }); + cy.percyTakeSnapshot('Checkout Page', 1280); const apiMethod = 'setGuestEmailOnCart'; const urlTest = Cypress.env('graphqlEndPoint'); cy.intercept('POST', urlTest, (req) => { @@ -114,11 +112,9 @@ describe('Verify guest user can place order', () => { assertOrderConfirmationShippingDetails(customerShippingAddress); assertOrderConfirmationBillingDetails(customerShippingAddress); assertOrderConfirmationShippingMethod(customerShippingAddress); - cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Open navigation"]').should('exist') - cy - .viewport(1280, 1024) - .percySnapshot('Order Confirmation', { width: 1280 }); + assertSearchIconVisible(); + cy.get('[aria-label="Open navigation"]').should('exist'); + cy.percyTakeSnapshot('Order Confirmation', 1280); /** * TODO - when /order-details page will be ready * Redirect to /order-details?orderRef={ORDER_TOKEN} diff --git a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js index 3bbc75c48f..69db2b0abe 100644 --- a/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js +++ b/cypress/src/tests/e2eTests/verifyLowStockInfoMessage.spec.js @@ -1,3 +1,9 @@ +import { + closeHamburgerMenu, +} from '../../actions'; +import { + assertSearchIconVisible, +} from '../../assertions'; describe('Verify stock notification message', () => { it('Verify low stock and max qty allowed notification message', () => { cy.visit('/products/compete-track-tote/24-WB02'); @@ -18,10 +24,8 @@ describe('Verify stock notification message', () => { cy.wait(1000); cy.contains('Add to Cart').click(); cy.contains('The requested qty exceeds the maximum qty allowed in shopping cart').should('be.visible'); - cy.get('.nav-search-button').should('be.visible'); - cy.get('[aria-label="Close navigation"]').click({force: true}); - cy - .viewport(1280, 1024) - .percySnapshot('PDP page with Low Stock Notifiction', { width: 1280 }); + assertSearchIconVisible(); + closeHamburgerMenu(); + cy.percyTakeSnapshot('PDP page with Low Stock Notifiction', 1280); }); }); \ No newline at end of file From 220a3f02afc76a23cf18ec06cc71d50b978897a8 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Thu, 17 Oct 2024 11:05:19 -0500 Subject: [PATCH 30/33] Check stability 1 From 8af1fa25e1eeba250a0806dfdc095c45629f5c51 Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Thu, 17 Oct 2024 11:09:48 -0500 Subject: [PATCH 31/33] Check stability 2 From 4984a8be5b44467dfb89e957df84a4f60f105cfe Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Thu, 17 Oct 2024 11:56:08 -0500 Subject: [PATCH 32/33] fix missed conflict --- cypress/src/tests/e2eTests/events/initiate-checkout.spec.js | 6 ------ 1 file changed, 6 deletions(-) diff --git a/cypress/src/tests/e2eTests/events/initiate-checkout.spec.js b/cypress/src/tests/e2eTests/events/initiate-checkout.spec.js index 03d2ee9c7b..6f92aea3c3 100644 --- a/cypress/src/tests/e2eTests/events/initiate-checkout.spec.js +++ b/cypress/src/tests/e2eTests/events/initiate-checkout.spec.js @@ -80,15 +80,9 @@ it("is sent on cart page Checkout button click", () => { cy.window().then((win) => { cy.spy(win.adobeDataLayer, "push").as("adl"); // click the checkout button -<<<<<<< HEAD - cy.get('.dropin-button--primary') - .contains('Checkout') - .click({ force: true }) -======= cy.get(".cart-order-summary__primaryAction > a") .should("be.visible") .click() ->>>>>>> develop .then(() => { cy.get("@adl", { timeout: 1000 }).should((adobeDataLayerPush) => { const targetEventIndex = adobeDataLayerPush.args.findIndex( From bd435fc322ed179d96a4e474e9e7fcbeefb295bb Mon Sep 17 00:00:00 2001 From: Devagouda Patil Date: Thu, 17 Oct 2024 17:36:16 -0500 Subject: [PATCH 33/33] update --- .../src/tests/e2eTests/verifyGuestUserCheckout.spec.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js index c343dcfd38..9360d561e1 100644 --- a/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js +++ b/cypress/src/tests/e2eTests/verifyGuestUserCheckout.spec.js @@ -24,6 +24,9 @@ import { import { customerShippingAddress, } from '../../fixtures/index'; +import { + estimatedShippingCountrySelector, + } from '../../fields'; describe('Verify guest user can place order', () => { it('Verify guest user can place order', () => { @@ -71,8 +74,10 @@ describe('Verify guest user can place order', () => { assertProductImage('/mb03-black-0.jpg')('.commerce-cart-wrapper'); cy.contains('Estimated Shipping').should('be.visible'); cy.get('.cart-order-summary--loading').should('not.exist'); + cy.get('.dropin-picker__placeholder').should('not.be.visible'); + cy.get(estimatedShippingCountrySelector).should('have.value', 'US'); assertSearchIconVisible(); - cy.get('[aria-label="Close navigation"]').click({ force: true }); + closeHamburgerMenu(); cy.percyTakeSnapshot('Cart page', 1280); cy.get('.dropin-button--primary') .contains('Checkout') @@ -89,7 +94,7 @@ describe('Verify guest user can place order', () => { cy.contains('Estimated Shipping').should('be.visible'); assertSearchIconVisible(); cy.get('.cart-order-summary--loading').should('not.exist'); - cy.get('[aria-label="Close navigation"]').click({ force: true }); + closeHamburgerMenu(); cy.percyTakeSnapshot('Checkout Page', 1280); const apiMethod = 'setGuestEmailOnCart'; const urlTest = Cypress.env('graphqlEndPoint');