Files
threshold-ui/e2e-tests/package.json
T
hashiccandZhihe Li b42ecbff36 Add api client for playwright e2e tests (#2901)
* chore: 🤖 add @openapitools/openapi-generator-cli

* chore: 🤖 Add @nestjs/core and @openapitools/openapi-generator-cli to ignoredBuiltDependencies

These packages use postinstall for a opencollective notice

* chore: 🤖 add package.json scripts for open-api client gen

* chore: 🤖 add openapi generated files

* chore: 🤖 add boundary api client fixture

* chore: 🤖 incorporate api client fixture with base fixture

* chore: 🤖 migrate existing test to use boundary api fixture

* refactor: 💡 remove org cleanup from test

* refactor: 💡 update sorting e2e test to use api client

* refactor: 💡 clean up api client resource clean up logging

* docs: ✏️ update jsdoc links for domain clients

* chore: 🤖 avoid adding copywright headers to generated api

* Add missing copyright headers

* chore: 🤖 remove fetch argument from api client class

The hope was to use request.fetch but playwright's fetch is a
non-standard fetch which causes the generated api client to fail when
using .clone() on the response

* chore: 🤖 add optional OPENAPI_SWAGGER_URL_OR_FILE for openapi-client
generation

The OPENAPI_SWAGGER_URL_OR_FILE env var can be used to specify the
-i flag the generate:api-client script with either:
* a relative path
* an absolute path
* a url like: https://raw.githubusercontent.com/hashicorp/boundary/refs/heads/main/internal/gen/controller.swagger.json

* refactor: 💡 clean up and refactor boundary-api-client fixture

* chore: 🤖 add extra doc links and delete methods

* test: 💍 add test to ensure that api-client fixture works

* test: 💍 update existing e2e test examples with api-client

* docs: ✏️ add comment for api-client e2e test

* docs: ✏️ add additional links to service docs for api clients

* refactor: 💡 cleanup api-client and corresponding test

* docs: ✏️ add api client fixture docs to e2e README

* fix: 🐛 fix regex

* remove unnecessary capture group
* add "-" to regex to allow for url segments like "storage-buckets" in
  "/v1/storage-buckets"

* docs: ✏️ comment potential edge case in e2e api client cleanup

* docs: ✏️ fix comment typo

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

* docs: ✏️ remove auth flag for generating e2e client

* docs: ✏️ add mention that java is required for generate:api

* chore: 🤖 implement pr feedback

* chore: 🤖 Clean up api client and add more extensive test

* chore: 🤖 fix casing in api-client test

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>

---------

Co-authored-by: Zhihe Li <zhihe.li@hashicorp.com>
2025-08-12 18:08:35 -04:00

56 lines
2.2 KiB
JSON

{
"name": "e2e-tests",
"version": "0.0.0",
"description": "End to end tests for boundary UI",
"author": "HashiCorp",
"license": "BUSL-1.1",
"private": true,
"type": "module",
"scripts": {
"doc:toc": "doctoc README.md",
"lint": "concurrently \"npm:lint:*(!fix)\" --names \"lint:\"",
"lint:fix": "concurrently \"npm:lint:*:fix\" --names \"fix:\"",
"lint:js": "eslint .",
"lint:js:fix": "eslint . --fix",
"format": "concurrently \"npm:format:*\" --names \"format:\"",
"format:js": "prettier --write './**/*.{js,mjs}'",
"generate:api-client": "pnpm clean:api-client && openapi-generator-cli generate -g typescript-fetch -o api-client -i ${OPENAPI_SWAGGER_URL_OR_FILE-https://raw.githubusercontent.com/hashicorp/boundary/main/internal/gen/controller.swagger.json}",
"clean:api-client": "rm -rf api-client || true",
"admin": "pnpm playwright test --config admin/playwright.config.js",
"admin:ce:aws": "pnpm run admin --grep \"(?=.*@ce)(?=.*@aws)\"",
"admin:ce:docker": "pnpm run admin --grep \"(?=.*@ce)(?=.*@docker)\"",
"admin:ent:aws": "pnpm run admin --grep \"(?=.*@ent)(?=.*@aws)\"",
"admin:ent:docker": "pnpm run admin --grep \"(?=.*@ent)(?=.*@docker)\"",
"admin:dev:chrome": "pnpm run admin --project=chromium --headed",
"admin:dev:firefox": "pnpm run admin --project=firefox --headed",
"admin:dev:safari": "pnpm run admin --project=webkit --headed",
"desktop": "pnpm run --filter desktop build && pnpm run desktop:dev",
"desktop:dev": "pnpm playwright test --config desktop/playwright.config.js --reporter=html"
},
"devDependencies": {
"@babel/core": "^7.26.10",
"@babel/eslint-parser": "^7.21.3",
"@openapitools/openapi-generator-cli": "^2.20.2",
"@playwright/test": "^1.49.0",
"concurrently": "^9.1.0",
"dotenv": "^16.4.5",
"eslint": "^8.54.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-n": "^16.3.1",
"eslint-plugin-playwright": "^2.2.0",
"nanoid": "^5.0.9",
"prettier": "^3.0.0",
"tesseract.js": "^5.1.1"
},
"engines": {
"node": "20.* || 22.*"
},
"lint-staged": {
"*.js": [
"eslint --fix",
"prettier --write"
],
"*.{scss,yaml}": "prettier --write"
}
}