diff --git a/.agents/review-rules/README.md b/.agents/review-rules/README.md index b95b5250268..99b5b115cdb 100644 --- a/.agents/review-rules/README.md +++ b/.agents/review-rules/README.md @@ -17,7 +17,7 @@ clear, when to stay silent, what never to say — lives once in | `backend/` | Backend | `cli`, `@n8n/db`, `core`, `workflow`, node packages | | `db-migrations/` | DB migrations | `@n8n/db` migrations + their tests in `cli` | | `frontend/` | Frontend | `packages/frontend` | -| `qa-dx/` | QA & DX | `.github`, `docker`, `scripts`, `patches`, `packages/testing`, the lint/test/TS config packages, baselines | +| `qa-dx/` | QA & DX | `.github`, `docker`, `scripts`, `patches`, `packages/quality`, the lint/test/TS config packages, baselines | | `testing/` | Backend + Frontend | any package with a test suite | A directory maps to one agent unless, like `testing/`, the policy is identical diff --git a/.agents/review-rules/qa-dx/ratchets-and-allowlists.md b/.agents/review-rules/qa-dx/ratchets-and-allowlists.md index 927f6fe1f2c..c8099069916 100644 --- a/.agents/review-rules/qa-dx/ratchets-and-allowlists.md +++ b/.agents/review-rules/qa-dx/ratchets-and-allowlists.md @@ -13,7 +13,7 @@ Flag a diff that **adds** entries to any of these, and ask for the fix instead: |------|---------| | `.code-health-baseline.json` | `@n8n/code-health` violations | | `.boundaries-baseline.json` | `turbo boundaries` issue count | -| `packages/testing/playwright/.janitor-baseline.json` | Playwright janitor findings | +| `packages/quality/testing/playwright/.janitor-baseline.json` | Playwright janitor findings | | `packages/cli/eslint.config.mjs` | the `misplaced-n8n-typeorm-import` and public-API allowlists, each captioned "NEVER add to this list" | | `.code-health-baseline.json` (`lint-config-layering`) | package-wide rule downgrades left in package ESLint configs | diff --git a/.agents/review-rules/qa-dx/workflow-safety.md b/.agents/review-rules/qa-dx/workflow-safety.md index 45f08ba87f7..e443586e80e 100644 --- a/.agents/review-rules/qa-dx/workflow-safety.md +++ b/.agents/review-rules/qa-dx/workflow-safety.md @@ -35,7 +35,7 @@ fed from a `needs:` list. Flag: Jobs gated on a `ci-filter` filter only run when a matching file changed, so a filter that is too narrow means the test quietly stops covering new code. When a PR adds a directory that an existing filter was meant to cover — a new package -under `packages/testing/`, a new script under `.github/scripts/` — check the +under `packages/quality/`, a new script under `.github/scripts/` — check the filter still matches it. ## Least privilege diff --git a/.agents/skills/reproduce-bug/SKILL.md b/.agents/skills/reproduce-bug/SKILL.md index 36b346006ed..ea9041ed686 100644 --- a/.agents/skills/reproduce-bug/SKILL.md +++ b/.agents/skills/reproduce-bug/SKILL.md @@ -32,7 +32,7 @@ Based on the affected area, pick the test layer and pattern: | CLI / API | Vitest integration | setupTestServer + supertest | `packages/cli/test/integration/` | | Config | Vitest unit | GlobalConfig + Container | `packages/@n8n/config/src/configs/__tests__/` | | Editor UI | Vitest | Vue Test Utils + Pinia | `packages/frontend/editor-ui/src/**/__tests__/` | -| E2E / Canvas | Playwright | Test containers + composables | `packages/testing/playwright/` | +| E2E / Canvas | Playwright | Test containers + composables | `packages/quality/testing/playwright/` | ## Step 3: Locate Source Files diff --git a/.aikido b/.aikido index 1d1b6d78b0b..4f1a1f75a23 100644 --- a/.aikido +++ b/.aikido @@ -8,7 +8,7 @@ exclude: # Machine-generated instance-AI expectation traces. Contain ephemeral # credential reference IDs (nanoids) that re-trip the secrets scanner # on every regeneration. No secret material. - - packages/testing/playwright/expectations + - packages/quality/testing/playwright/expectations # Test code repo-wide. Fixtures routinely contain synthetic PEM blocks, # basic-auth strings, and deliberately fake keys (including the secret diff --git a/.code-health-baseline.json b/.code-health-baseline.json index 9a9cd80206a..7d4d52c482c 100644 --- a/.code-health-baseline.json +++ b/.code-health-baseline.json @@ -435,12 +435,12 @@ "hash": "4a6882cb8d62" } ], - "packages/@n8n/benchmark/package.json": [ + "packages/quality/efficiency/scale/benchmark/package.json": [ { "rule": "catalog-violations", "line": 38, "message": "@oclif/core appears in 4 packages with 2 different versions — add to pnpm-workspace.yaml catalog", - "hash": "67f9d81d9528" + "hash": "e07bb1da47d7" } ], "packages/@n8n/cli/package.json": [ @@ -2043,48 +2043,48 @@ "hash": "0f94a71d5ae8" } ], - "packages/testing/playwright/eslint.config.mjs": [ + "packages/quality/testing/playwright/eslint.config.mjs": [ { "rule": "lint-config-layering", "line": 21, - "message": "packages/testing/playwright turns '@typescript-eslint/no-unused-expressions' down to 'off' for the whole package.", - "hash": "e2f93b5b591a" + "message": "packages/quality/testing/playwright turns '@typescript-eslint/no-unused-expressions' down to 'off' for the whole package.", + "hash": "c789a142996b" }, { "rule": "lint-config-layering", "line": 22, - "message": "packages/testing/playwright turns '@typescript-eslint/no-use-before-define' down to 'off' for the whole package.", - "hash": "75d3ec1677ba" + "message": "packages/quality/testing/playwright turns '@typescript-eslint/no-use-before-define' down to 'off' for the whole package.", + "hash": "fcc3a69d8a2e" }, { "rule": "lint-config-layering", "line": 23, - "message": "packages/testing/playwright turns '@typescript-eslint/promise-function-async' down to 'off' for the whole package.", - "hash": "35dbe9e44ada" + "message": "packages/quality/testing/playwright turns '@typescript-eslint/promise-function-async' down to 'off' for the whole package.", + "hash": "5ab4c080de15" }, { "rule": "lint-config-layering", "line": 24, - "message": "packages/testing/playwright turns 'playwright/expect-expect' down to 'warn' for the whole package.", - "hash": "e8b5f4b0f0dd" + "message": "packages/quality/testing/playwright turns 'playwright/expect-expect' down to 'warn' for the whole package.", + "hash": "3a584940f6c7" }, { "rule": "lint-config-layering", "line": 25, - "message": "packages/testing/playwright turns 'playwright/max-nested-describe' down to 'warn' for the whole package.", - "hash": "77d82ee8a802" + "message": "packages/quality/testing/playwright turns 'playwright/max-nested-describe' down to 'warn' for the whole package.", + "hash": "8ea7fd515ed8" }, { "rule": "lint-config-layering", "line": 27, - "message": "packages/testing/playwright turns 'playwright/no-skipped-test' down to 'warn' for the whole package.", - "hash": "14eb9eecd1b4" + "message": "packages/quality/testing/playwright turns 'playwright/no-skipped-test' down to 'warn' for the whole package.", + "hash": "6ce1d38312f9" }, { "rule": "lint-config-layering", "line": 78, - "message": "packages/testing/playwright turns 'unicorn/filename-case' down to 'off' for the whole package.", - "hash": "de86b9645930" + "message": "packages/quality/testing/playwright turns 'unicorn/filename-case' down to 'off' for the whole package.", + "hash": "949214800425" } ], "packages/frontend/@n8n/design-system/eslint.config.mjs": [ diff --git a/.dockerignore b/.dockerignore index ca895123698..9f2d2794c3f 100644 --- a/.dockerignore +++ b/.dockerignore @@ -26,7 +26,7 @@ !docker/images/runners !docker/images/runners/n8n-task-runners.json -# === benchmark image (packages/@n8n/benchmark/Dockerfile) === +# === benchmark image (packages/quality/efficiency/scale/benchmark/Dockerfile) === !package.json !pnpm-lock.yaml !pnpm-workspace.yaml @@ -34,8 +34,10 @@ !patches/** !scripts !scripts/** -!packages/@n8n/benchmark -!packages/@n8n/benchmark/** +!packages/quality +!packages/quality/efficiency +!packages/quality/efficiency/scale +!packages/quality/efficiency/scale/benchmark +!packages/quality/efficiency/scale/benchmark/** !packages/@n8n/typescript-config !packages/@n8n/typescript-config/** - diff --git a/.github/CI-TELEMETRY.md b/.github/CI-TELEMETRY.md index 60f97aad4ee..ed8379b27bb 100644 --- a/.github/CI-TELEMETRY.md +++ b/.github/CI-TELEMETRY.md @@ -81,11 +81,11 @@ return 'blacksmith'; | Telemetry | Source | Metrics | |-----------|--------|---------| -| Playwright perf/benchmark | `packages/testing/playwright/reporters/metrics-reporter.ts` | Any metric attached via `attachMetric()` | -| Accessibility buckets | `packages/testing/playwright/reporters/a11y-reporter.ts` | Per-bucket axe score, violated rules, violating elements | +| Playwright perf/benchmark | `packages/quality/testing/playwright/reporters/metrics-reporter.ts` | Any metric attached via `attachMetric()` | +| Accessibility buckets | `packages/quality/testing/playwright/reporters/a11y-reporter.ts` | Per-bucket axe score, violated rules, violating elements | | Build stats | `.github/scripts/send-build-stats.mjs` | Per-package build duration, cache hit/miss, run total | | Docker stats | `.github/scripts/send-docker-stats.mjs` | Image size per platform, docker build duration | -| Container stack | `packages/testing/containers/telemetry.ts` | E2E stack startup times per service | +| Container stack | `packages/quality/environments/containers/telemetry.ts` | E2E stack startup times per service | ## Secrets diff --git a/.github/WORKFLOWS.md b/.github/WORKFLOWS.md index 38288098ecf..68003bcd501 100644 --- a/.github/WORKFLOWS.md +++ b/.github/WORKFLOWS.md @@ -178,7 +178,7 @@ These only run if specific files changed: | `docker/images/n8n-base/Dockerfile` | `build-base-image.yml` | any | | `**/package.json`, `**/turbo.json` | `build-windows.yml` | master | | `packages/@n8n/ai-workflow-builder.ee/evaluations/programmatic/python/**` | `test-evals-python.yml` | any | -| `packages/@n8n/benchmark/**` | `build-benchmark-image.yml` | master | +| `packages/quality/efficiency/scale/benchmark/**` | `build-benchmark-image.yml` | master | | `packages/cli/src/public-api/**/*.yml`, `packages/cli/src/public-api/**/*.yaml`, `packages/cli/src/public-api/**/*.css`, `packages/cli/src/public-api/v1/openapi-gen/**/*.ts`, `packages/cli/scripts/build.mjs`, `packages/cli/package.json` | `util-publish-api-schema.yml` | master | | `packages/@n8n/instance-ai/src/**`, `packages/@n8n/instance-ai/skills/**`, `packages/@n8n/instance-ai/knowledge-base/**`, `packages/@n8n/instance-ai/evaluations/**`, `packages/cli/src/modules/instance-ai/**`, `packages/core/src/execution-engine/eval-mock-helpers.ts`, `packages/@n8n/agents/src/**` | `ci-instance-ai-evals.yml` | on PR `opened` / `reopened` / `ready_for_review` | | `docker/get-n8n.sh`, `docker/get-n8n-compose.yml`, `docker/test-get-n8n.sh` | `test-get-n8n.yml` | any | diff --git a/.github/actions/ci-filter/__tests__/ci-filter.test.ts b/.github/actions/ci-filter/__tests__/ci-filter.test.ts index 39da5245e2b..a976a3f31e3 100644 --- a/.github/actions/ci-filter/__tests__/ci-filter.test.ts +++ b/.github/actions/ci-filter/__tests__/ci-filter.test.ts @@ -242,7 +242,7 @@ describe('runtime filter', () => { '!**/CHANGELOG.md', '!**/*.test.ts', '!**/*.spec.ts', - '!packages/testing/playwright/**', + '!packages/quality/testing/playwright/**', '!packages/frontend/@n8n/storybook/**', '!scripts/agent-setup.mjs', '!scripts/backend-module/**', @@ -265,7 +265,7 @@ describe('runtime filter', () => { it('does not trigger on playwright tests', () => { assert.equal( - evaluateFilter(['packages/testing/playwright/tests/x.spec.ts'], runtimePatterns), + evaluateFilter(['packages/quality/testing/playwright/tests/x.spec.ts'], runtimePatterns), false, ); }); diff --git a/.github/docker-compose.yml b/.github/docker-compose.yml index 48cac0a073f..fdf9ecb653a 100644 --- a/.github/docker-compose.yml +++ b/.github/docker-compose.yml @@ -1,6 +1,6 @@ services: postgres: - image: ${TEST_IMAGE_POSTGRES:?set it from packages/testing/containers/postgres-versions.json} + image: ${TEST_IMAGE_POSTGRES:?set it from packages/quality/environments/containers/postgres-versions.json} restart: always environment: - POSTGRES_DB=n8n diff --git a/.github/scripts/db-test-matrix.mjs b/.github/scripts/db-test-matrix.mjs index 8e7869254a5..9c578fe5c1d 100644 --- a/.github/scripts/db-test-matrix.mjs +++ b/.github/scripts/db-test-matrix.mjs @@ -7,7 +7,7 @@ import { fileURLToPath } from 'node:url'; const REPO_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../..'); -export const POSTGRES_VERSIONS_PATH = 'packages/testing/containers/postgres-versions.json'; +export const POSTGRES_VERSIONS_PATH = 'packages/quality/environments/containers/postgres-versions.json'; /** The matrix wall is bounded by its slowest leg, so a larger runner buys nothing. */ const RUNNER = 'blacksmith-4vcpu-ubuntu-2204'; diff --git a/.github/scripts/glob.test.mjs b/.github/scripts/glob.test.mjs index b58dcfcb6c3..88022673f2d 100644 --- a/.github/scripts/glob.test.mjs +++ b/.github/scripts/glob.test.mjs @@ -30,9 +30,9 @@ describe('matchesGlob', () => { }); it('matches a prefix pattern', () => { - assert.equal(matchesGlob('packages/testing/playwright/a.ts', 'packages/testing/**'), true); - assert.equal(matchesGlob('packages/testing', 'packages/testing/**'), false); - assert.equal(matchesGlob('packages/cli/a.ts', 'packages/testing/**'), false); + assert.equal(matchesGlob('packages/quality/testing/playwright/a.ts', 'packages/quality/**'), true); + assert.equal(matchesGlob('packages/quality', 'packages/quality/**'), false); + assert.equal(matchesGlob('packages/cli/a.ts', 'packages/quality/**'), false); }); it('matches a literal path only exactly', () => { @@ -55,8 +55,8 @@ describe('matchesGlob', () => { 'packages/cli/__snapshots__/a.ts.snap', 'packages/nodes-base/nodes/Foo/test/fixtures/a.json', 'packages/frontend/editor-ui/src/__mocks__/a.ts', - 'packages/testing/playwright/a.ts', - 'packages/testing', + 'packages/quality/testing/playwright/a.ts', + 'packages/quality', '.github/scripts/glob.test.mjs', '.github/workflows/ci.yml', 'a/.hidden/b.spec.js', diff --git a/.github/scripts/owners/review-recommendations.test.mjs b/.github/scripts/owners/review-recommendations.test.mjs index 5f822ef9b79..5f9b4aa3182 100644 --- a/.github/scripts/owners/review-recommendations.test.mjs +++ b/.github/scripts/owners/review-recommendations.test.mjs @@ -217,7 +217,7 @@ describe('computeLineStats', () => { ['*.snap extension', 'src/foo.snap'], ['fixtures/ directory', 'src/fixtures/data.json'], ['__mocks__/ directory', 'src/__mocks__/axios.ts'], - ['packages/testing/**', 'packages/testing/playwright/spec.ts'], + ['packages/quality/**', 'packages/quality/testing/playwright/spec.ts'], ['dot-directory *.test.mjs', '.github/scripts/owners/owners.test.mjs'], ]) { it(`classifies ${label} as testFiles`, () => { diff --git a/.github/scripts/quality/check-pr-size.mjs b/.github/scripts/quality/check-pr-size.mjs index 598e0fa222a..89cb6dd6a51 100644 --- a/.github/scripts/quality/check-pr-size.mjs +++ b/.github/scripts/quality/check-pr-size.mjs @@ -36,8 +36,11 @@ export const TEST_PATTERNS = [ // Fixtures and mocks '**/fixtures/**', '**/__mocks__/**', - // Dedicated testing package - 'packages/testing/**', + // Former packages/testing workspaces + 'packages/quality/policy/**', + 'packages/quality/testing/**', + 'packages/quality/environments/**', + 'packages/quality/efficiency/microbenchmarks/**', ]; export const MISC_PATTERNS = [ diff --git a/.github/scripts/quality/check-pr-size.test.mjs b/.github/scripts/quality/check-pr-size.test.mjs index 7a109a5b50a..9003ce03db2 100644 --- a/.github/scripts/quality/check-pr-size.test.mjs +++ b/.github/scripts/quality/check-pr-size.test.mjs @@ -203,14 +203,21 @@ describe('countFilteredAdditions', () => { assert.equal(countFilteredAdditions(files, EXCLUDE_PATTERNS), 50); }); - it('applies EXCLUDE_PATTERNS to packages/testing and pnpm-lock.yaml', () => { + it('excludes former testing workspaces but counts benchmark CLI source', () => { const files = [ { filename: 'packages/cli/src/service.ts', additions: 50 }, - { filename: 'packages/testing/playwright/tests/workflow.spec.ts', additions: 100 }, - { filename: 'packages/testing/playwright/pages/CanvasPage.ts', additions: 100 }, + { filename: 'packages/quality/testing/playwright/tests/workflow.spec.ts', additions: 100 }, + { filename: 'packages/quality/testing/playwright/pages/CanvasPage.ts', additions: 100 }, + { filename: 'packages/quality/policy/code-health/src/cli.ts', additions: 100 }, + { filename: 'packages/quality/environments/containers/service-stack.ts', additions: 100 }, + { + filename: 'packages/quality/efficiency/microbenchmarks/benchmarks/bench-options.ts', + additions: 100, + }, + { filename: 'packages/quality/efficiency/scale/benchmark/src/commands/list.ts', additions: 100 }, { filename: 'pnpm-lock.yaml', additions: 500 }, ]; - assert.equal(countFilteredAdditions(files, EXCLUDE_PATTERNS), 50); + assert.equal(countFilteredAdditions(files, EXCLUDE_PATTERNS), 150); }); it('applies EXCLUDE_PATTERNS to markdown files', () => { diff --git a/.github/workflows/build-benchmark-image.yml b/.github/workflows/build-benchmark-image.yml index 1239979e65f..7e23b0130d8 100644 --- a/.github/workflows/build-benchmark-image.yml +++ b/.github/workflows/build-benchmark-image.yml @@ -6,7 +6,7 @@ on: branches: - master paths: - - 'packages/@n8n/benchmark/**' + - 'packages/quality/efficiency/scale/benchmark/**' - 'pnpm-lock.yaml' - 'pnpm-workspace.yaml' - '.github/workflows/build-benchmark-image.yml' @@ -33,7 +33,7 @@ jobs: DOCKER_BUILD_SUMMARY: false with: context: . - file: ./packages/@n8n/benchmark/Dockerfile + file: ./packages/quality/efficiency/scale/benchmark/Dockerfile platforms: linux/amd64 provenance: false push: true diff --git a/.github/workflows/ci-pr-quality.yml b/.github/workflows/ci-pr-quality.yml index 24d64250f8d..3a3780c1373 100644 --- a/.github/workflows/ci-pr-quality.yml +++ b/.github/workflows/ci-pr-quality.yml @@ -99,8 +99,8 @@ jobs: mode: filter filters: | janitor: - packages/testing/playwright/** - packages/testing/janitor/** + packages/quality/testing/playwright/** + packages/quality/testing/janitor/** check-static-analysis: name: Static Analysis diff --git a/.github/workflows/ci-pull-requests.yml b/.github/workflows/ci-pull-requests.yml index 8b100f308e0..d93bd7aa947 100644 --- a/.github/workflows/ci-pull-requests.yml +++ b/.github/workflows/ci-pull-requests.yml @@ -79,7 +79,7 @@ jobs: !**/CHANGELOG.md !**/*.test.ts !**/*.spec.ts - !packages/testing/playwright/** + !packages/quality/testing/playwright/** !packages/frontend/@n8n/storybook/** !.devcontainer/** !scripts/agent-setup.mjs @@ -92,7 +92,7 @@ jobs: unit: ** !packages/@n8n/task-runner-python/** - !packages/testing/playwright/** + !packages/quality/testing/playwright/** !.github/** .github/workflows/test-unit-reusable.yml !**/*.md @@ -111,8 +111,8 @@ jobs: .github/workflows/prepare-docker-reusable.yml .github/actions/build-n8n-docker/** .github/actions/load-n8n-docker/** - packages/testing/playwright/** - packages/testing/containers/** + packages/quality/testing/playwright/** + packages/quality/environments/containers/** dev-server-smoke: packages/frontend/editor-ui/vite.config.mts # If this job becomes too slow, use a smaller glob. Do not delete the assertion. @@ -120,10 +120,10 @@ jobs: pnpm-workspace.yaml packages/@n8n/*/package.json packages/frontend/@n8n/frontend-vite-config/** - packages/testing/playwright/tests/dev-server-smoke/** - packages/testing/playwright/playwright.config.ts - packages/testing/playwright/playwright-projects.ts - packages/testing/playwright/package.json + packages/quality/testing/playwright/tests/dev-server-smoke/** + packages/quality/testing/playwright/playwright.config.ts + packages/quality/testing/playwright/playwright-projects.ts + packages/quality/testing/playwright/package.json .github/workflows/test-dev-server-smoke-reusable.yml frontend-declarations: packages/frontend/@n8n/design-system/** @@ -146,9 +146,9 @@ jobs: cubic.yaml .agents/review-rules/** e2e-performance: - packages/testing/playwright/tests/performance/** - packages/testing/playwright/utils/performance-helper.ts - packages/testing/containers/** + packages/quality/testing/playwright/tests/performance/** + packages/quality/testing/playwright/utils/performance-helper.ts + packages/quality/environments/containers/** .github/workflows/test-e2e-performance-reusable.yml # Whole directories, not the `engine-*` files alone. Engine v2 # routing lives in ordinary control plane code: `workflow-runner.ts` @@ -169,8 +169,8 @@ jobs: packages/cli/src/webhooks/** packages/cli/src/workflows/triggers/** packages/cli/src/workflow-runner.ts - packages/testing/containers/** - packages/testing/playwright/** + packages/quality/environments/containers/** + packages/quality/testing/playwright/** instance-ai-workflow-eval: packages/@n8n/instance-ai/src/** packages/@n8n/instance-ai/evaluations/** @@ -193,10 +193,10 @@ jobs: packages/cli/src/**/*.integration.test.ts packages/cli/src/modules/instance-registry/** packages/cli/vitest.* - packages/testing/containers/services/postgres.ts - packages/testing/containers/services/redis.ts - packages/testing/containers/postgres-versions.json - packages/testing/containers/test-containers.ts + packages/quality/environments/containers/services/postgres.ts + packages/quality/environments/containers/services/redis.ts + packages/quality/environments/containers/postgres-versions.json + packages/quality/environments/containers/test-containers.ts .github/workflows/test-db-reusable.yml .github/scripts/db-test-matrix.mjs docs/generated/** @@ -214,10 +214,10 @@ jobs: packages/cli/vitest.config.base.ts packages/cli/vitest.config.migration.ts packages/cli/vitest.config.migration.testcontainers.ts - packages/testing/containers/services/postgres.ts - packages/testing/containers/services/redis.ts - packages/testing/containers/postgres-versions.json - packages/testing/containers/test-containers.ts + packages/quality/environments/containers/services/postgres.ts + packages/quality/environments/containers/services/redis.ts + packages/quality/environments/containers/postgres-versions.json + packages/quality/environments/containers/test-containers.ts .github/workflows/test-db-reusable.yml .github/scripts/db-test-matrix.mjs @@ -247,7 +247,7 @@ jobs: env: CHANGED_FILES: ${{ steps.ci-filter.outputs.changed-files }} run: | - PACKAGES=$(node packages/testing/janitor/dist/cli.js affected-packages | tr '\n' ' ' | sed 's/ *$//') + PACKAGES=$(node packages/quality/testing/janitor/dist/cli.js affected-packages | tr '\n' ' ' | sed 's/ *$//') echo "Affected packages: $PACKAGES" echo "list=$PACKAGES" >> "$GITHUB_OUTPUT" @@ -393,7 +393,7 @@ jobs: PLAYWRIGHT_PROJECT: ${{ github.event.pull_request.head.repo.fork == true && 'sqlite:e2e' || 'multi-main:e2e' }} run: | FILES_CSV=$(echo "$CHANGED_FILES" | tr '\n' ',' | sed 's/,$//') - MATRIX=$(node packages/testing/playwright/scripts/distribute-tests.mjs --matrix 20 --orchestrate --impact "--project=$PLAYWRIGHT_PROJECT" "--files=$FILES_CSV" "--base=$MERGE_BASE") + MATRIX=$(node packages/quality/testing/playwright/scripts/distribute-tests.mjs --matrix 20 --orchestrate --impact "--project=$PLAYWRIGHT_PROJECT" "--files=$FILES_CSV" "--base=$MERGE_BASE") echo "matrix=$MATRIX" >> "$GITHUB_OUTPUT" echo "skip-tests=$(node -e "process.stdout.write(JSON.parse(process.argv[1])[0]?.skip === true ? 'true' : 'false')" "$MATRIX")" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/ci-terraform.yml b/.github/workflows/ci-terraform.yml index 0d9bfea15d8..85841e82bb3 100644 --- a/.github/workflows/ci-terraform.yml +++ b/.github/workflows/ci-terraform.yml @@ -3,7 +3,7 @@ name: 'CI: Terraform' on: pull_request: paths: - - packages/@n8n/benchmark/infra/** + - packages/quality/efficiency/scale/benchmark/infra/** - .github/workflows/ci-terraform.yml # The job only reads the repo and runs terraform. It writes nothing. @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest defaults: run: - working-directory: packages/@n8n/benchmark/infra + working-directory: packages/quality/efficiency/scale/benchmark/infra steps: - name: Check out project uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 diff --git a/.github/workflows/encryption-upgrade-test.yml b/.github/workflows/encryption-upgrade-test.yml index aa089c50c53..0f1a439e10c 100644 --- a/.github/workflows/encryption-upgrade-test.yml +++ b/.github/workflows/encryption-upgrade-test.yml @@ -29,10 +29,10 @@ on: # verify themselves (both modes) before the merge. pull_request: paths: - - 'packages/testing/playwright/tests/infrastructure/encryption/**' - - 'packages/testing/containers/services/n8n.ts' - - 'packages/testing/containers/services/types.ts' - - 'packages/testing/containers/stack.ts' + - 'packages/quality/testing/playwright/tests/infrastructure/encryption/**' + - 'packages/quality/environments/containers/services/n8n.ts' + - 'packages/quality/environments/containers/services/types.ts' + - 'packages/quality/environments/containers/stack.ts' - '.github/workflows/encryption-upgrade-test.yml' permissions: diff --git a/.github/workflows/test-benchmark-destroy-nightly.yml b/.github/workflows/test-benchmark-destroy-nightly.yml index 6ecb1d86856..31a81e49984 100644 --- a/.github/workflows/test-benchmark-destroy-nightly.yml +++ b/.github/workflows/test-benchmark-destroy-nightly.yml @@ -36,4 +36,4 @@ jobs: - name: Destroy cloud env run: pnpm destroy-cloud-env - working-directory: packages/@n8n/benchmark + working-directory: packages/quality/efficiency/scale/benchmark diff --git a/.github/workflows/test-benchmark-nightly.yml b/.github/workflows/test-benchmark-nightly.yml index 91e7a1b1f24..0c13fd645ba 100644 --- a/.github/workflows/test-benchmark-nightly.yml +++ b/.github/workflows/test-benchmark-nightly.yml @@ -62,11 +62,11 @@ jobs: - name: Destroy any existing environment run: pnpm destroy-cloud-env - working-directory: packages/@n8n/benchmark + working-directory: packages/quality/efficiency/scale/benchmark - name: Provision the environment run: pnpm provision-cloud-env ${{ env.DEBUG }} - working-directory: packages/@n8n/benchmark + working-directory: packages/quality/efficiency/scale/benchmark - name: Run the benchmark id: benchmark @@ -81,7 +81,7 @@ jobs: --n8nTag ${{ env.N8N_TAG }} \ --benchmarkTag ${{ env.N8N_BENCHMARK_TAG }} \ ${{ env.DEBUG }} - working-directory: packages/@n8n/benchmark + working-directory: packages/quality/efficiency/scale/benchmark # We need to login again because the access token expires - name: Azure login @@ -95,7 +95,7 @@ jobs: - name: Destroy the environment if: always() run: pnpm destroy-cloud-env ${{ env.DEBUG }} - working-directory: packages/@n8n/benchmark + working-directory: packages/quality/efficiency/scale/benchmark - name: Fail `build` job if `benchmark` step failed if: steps.benchmark.outcome == 'failure' diff --git a/.github/workflows/test-dev-server-smoke-reusable.yml b/.github/workflows/test-dev-server-smoke-reusable.yml index b84927c43e9..87eae3570b7 100644 --- a/.github/workflows/test-dev-server-smoke-reusable.yml +++ b/.github/workflows/test-dev-server-smoke-reusable.yml @@ -10,7 +10,7 @@ on: env: NODE_OPTIONS: '--max-old-space-size=6144' - PLAYWRIGHT_BROWSERS_PATH: packages/testing/playwright/.playwright-browsers + PLAYWRIGHT_BROWSERS_PATH: packages/quality/testing/playwright/.playwright-browsers jobs: smoke: @@ -53,6 +53,6 @@ jobs: with: name: dev-server-smoke-report path: | - packages/testing/playwright/test-results/ - packages/testing/playwright/playwright-report/ + packages/quality/testing/playwright/test-results/ + packages/quality/testing/playwright/playwright-report/ retention-days: 7 diff --git a/.github/workflows/test-e2e-coverage-nightly.yml b/.github/workflows/test-e2e-coverage-nightly.yml index 4eb16606b52..c64c0f5f50e 100644 --- a/.github/workflows/test-e2e-coverage-nightly.yml +++ b/.github/workflows/test-e2e-coverage-nightly.yml @@ -53,7 +53,7 @@ jobs: - name: Generate matrix (up to 20 shards, duration-weighted) id: gen run: | - MATRIX=$(node packages/testing/playwright/scripts/distribute-tests.mjs --matrix 20 --orchestrate --project=coverage) + MATRIX=$(node packages/quality/testing/playwright/scripts/distribute-tests.mjs --matrix 20 --orchestrate --project=coverage) echo "matrix=$MATRIX" >> "$GITHUB_OUTPUT" e2e: @@ -215,7 +215,7 @@ jobs: # Merges all lcovs into one lcov.info (SF: paths normalised to repo-root- # relative) and builds the per-spec E2E impact map for PR selection. - name: Aggregate coverage + build impact map - working-directory: packages/testing/playwright + working-directory: packages/quality/testing/playwright run: | node scripts/aggregate-coverage.mjs \ --shards=/tmp/shards \ @@ -227,7 +227,7 @@ jobs: uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: coverage-report - path: packages/testing/playwright/coverage/ + path: packages/quality/testing/playwright/coverage/ retention-days: 14 - name: Upload Combined Coverage to Codecov @@ -235,7 +235,7 @@ jobs: uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2 with: token: ${{ secrets.CODECOV_TOKEN }} - files: packages/testing/playwright/coverage/lcov.info + files: packages/quality/testing/playwright/coverage/lcov.info flags: nightly-full name: nightly-full-coverage fail_ci_if_error: false @@ -256,7 +256,7 @@ jobs: env: CODECOV_API_TOKEN: ${{ secrets.CODECOV_API_TOKEN }} run: | - node packages/testing/playwright/scripts/coverage-analysis.mjs \ + node packages/quality/testing/playwright/scripts/coverage-analysis.mjs \ --md --top=15 --out-json=coverage-gaps.json >> "$GITHUB_STEP_SUMMARY" - name: Upload Coverage Gap Report diff --git a/.github/workflows/test-e2e-helm.yml b/.github/workflows/test-e2e-helm.yml index e53659dccef..3ed83ce0e82 100644 --- a/.github/workflows/test-e2e-helm.yml +++ b/.github/workflows/test-e2e-helm.yml @@ -5,8 +5,8 @@ on: pull_request: paths: - '.github/workflows/test-e2e-helm.yml' - - 'packages/testing/containers/helm-stack.ts' - - 'packages/testing/containers/helm-start-stack.ts' + - 'packages/quality/environments/containers/helm-stack.ts' + - 'packages/quality/environments/containers/helm-start-stack.ts' workflow_dispatch: inputs: branch: @@ -83,7 +83,7 @@ jobs: build-command: 'pnpm build' - name: Install Browsers - working-directory: packages/testing/playwright + working-directory: packages/quality/testing/playwright run: pnpm exec playwright install chromium - name: Install Helm @@ -115,7 +115,7 @@ jobs: echo "KUBECONFIG=${KUBECONFIG_PATH}" >> "$GITHUB_ENV" - name: Run Building Blocks E2E Tests - working-directory: packages/testing/playwright + working-directory: packages/quality/testing/playwright run: | N8N_BASE_URL="${{ env.N8N_BASE_URL }}" \ RESET_E2E_DB=true \ @@ -150,8 +150,8 @@ jobs: with: name: helm-e2e-report-${{ inputs.mode || 'queue' }} path: | - packages/testing/playwright/test-results/ - packages/testing/playwright/playwright-report/ + packages/quality/testing/playwright/test-results/ + packages/quality/testing/playwright/playwright-report/ retention-days: 7 cleanup-ghcr: diff --git a/.github/workflows/test-e2e-infrastructure-reusable.yml b/.github/workflows/test-e2e-infrastructure-reusable.yml index da6393ce68c..828d3939ce7 100644 --- a/.github/workflows/test-e2e-infrastructure-reusable.yml +++ b/.github/workflows/test-e2e-infrastructure-reusable.yml @@ -74,7 +74,7 @@ jobs: # The aggregator auto-detects n8n version and commit SHA from the repo # (anchored to its own file location), so no path/version glue is needed. - name: Aggregate sizing matrix - working-directory: packages/testing/playwright + working-directory: packages/quality/testing/playwright run: | pnpm exec tsx scripts/sizing-matrix-aggregate.ts \ --input /tmp/benchmark-reports \ @@ -86,8 +86,8 @@ jobs: with: name: sizing-matrix path: | - packages/testing/playwright/sizing-matrix.json - packages/testing/playwright/sizing-matrix.md + packages/quality/testing/playwright/sizing-matrix.json + packages/quality/testing/playwright/sizing-matrix.md retention-days: 14 if-no-files-found: error diff --git a/.github/workflows/test-e2e-pc-nightly.yml b/.github/workflows/test-e2e-pc-nightly.yml index ff85f206328..ae818847c39 100644 --- a/.github/workflows/test-e2e-pc-nightly.yml +++ b/.github/workflows/test-e2e-pc-nightly.yml @@ -77,7 +77,7 @@ jobs: - name: Generate matrix (up to 20 shards, duration-weighted) id: gen run: | - MATRIX=$(node packages/testing/playwright/scripts/distribute-tests.mjs --matrix 20 --orchestrate --project=sqlite:e2e) + MATRIX=$(node packages/quality/testing/playwright/scripts/distribute-tests.mjs --matrix 20 --orchestrate --project=sqlite:e2e) echo "matrix=$MATRIX" >> "$GITHUB_OUTPUT" e2e: diff --git a/.github/workflows/test-e2e-performance-reusable.yml b/.github/workflows/test-e2e-performance-reusable.yml index 2e27e099ba3..afa265e949e 100644 --- a/.github/workflows/test-e2e-performance-reusable.yml +++ b/.github/workflows/test-e2e-performance-reusable.yml @@ -37,7 +37,7 @@ jobs: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: - sparse-checkout: packages/testing/playwright/scripts/canvas-perf-sentinels.mjs + sparse-checkout: packages/quality/testing/playwright/scripts/canvas-perf-sentinels.mjs sparse-checkout-cone-mode: false - name: Download performance shard artifacts @@ -54,4 +54,4 @@ jobs: echo "::warning::No test-results.json found in performance artifacts — sentinel skipped." exit 0 fi - node packages/testing/playwright/scripts/canvas-perf-sentinels.mjs "${RESULTS_PATHS[@]}" + node packages/quality/testing/playwright/scripts/canvas-perf-sentinels.mjs "${RESULTS_PATHS[@]}" diff --git a/.github/workflows/test-e2e-reusable.yml b/.github/workflows/test-e2e-reusable.yml index 8374540360f..cc744bf2371 100644 --- a/.github/workflows/test-e2e-reusable.yml +++ b/.github/workflows/test-e2e-reusable.yml @@ -69,7 +69,7 @@ env: # Browser cache location - must match install-browsers script. # Absolute so nested pnpm invocations (e.g. coverage shard runner) don't # re-resolve a relative path against the package's INIT_CWD and double it. - PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/packages/testing/playwright/.playwright-browsers + PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/packages/quality/testing/playwright/.playwright-browsers # docker-artifact loads the image locally as n8nio/n8n:local; unused in local mode. TEST_IMAGE_N8N: 'n8nio/n8n:local' N8N_SKIP_LICENSES: 'true' @@ -123,7 +123,7 @@ jobs: GITHUB_RUN_ID: ${{ github.run_id }} GITHUB_RUN_ATTEMPT: ${{ github.run_attempt }} run: | - FILTERED=$(echo "$CANDIDATES" | node packages/testing/janitor/dist/cli.js filter-shard | tr '\n' ' ' | sed 's/ *$//') + FILTERED=$(echo "$CANDIDATES" | node packages/quality/testing/janitor/dist/cli.js filter-shard | tr '\n' ' ' | sed 's/ *$//') echo "specs=$FILTERED" >> "$GITHUB_OUTPUT" - name: Resolve shard args @@ -195,13 +195,13 @@ jobs: with: name: ${{ inputs.artifact-prefix }}-shard-${{ matrix.shard }} path: | - packages/testing/playwright/test-results/ - packages/testing/playwright/test-results.json - packages/testing/playwright/playwright-report/ - packages/testing/playwright/coverage/lcov.info - packages/testing/playwright/coverage/by-spec/ - packages/testing/playwright/coverage/index.html - packages/testing/playwright/coverage/assets/ + packages/quality/testing/playwright/test-results/ + packages/quality/testing/playwright/test-results.json + packages/quality/testing/playwright/playwright-report/ + packages/quality/testing/playwright/coverage/lcov.info + packages/quality/testing/playwright/coverage/by-spec/ + packages/quality/testing/playwright/coverage/index.html + packages/quality/testing/playwright/coverage/assets/ retention-days: 1 if-no-files-found: ignore @@ -214,7 +214,7 @@ jobs: uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 with: name: ${{ inputs.artifact-prefix }}-a11y-report-shard-${{ matrix.shard }} - path: packages/testing/playwright/a11y-report/ + path: packages/quality/testing/playwright/a11y-report/ retention-days: 7 if-no-files-found: ignore diff --git a/.github/workflows/test-single-instance-npm.yml b/.github/workflows/test-single-instance-npm.yml index 1dc70da7398..9b7cd761ec5 100644 --- a/.github/workflows/test-single-instance-npm.yml +++ b/.github/workflows/test-single-instance-npm.yml @@ -90,13 +90,13 @@ jobs: env: BASE_BRANCH: ${{ inputs.base-branch }} run: | - if [ -f packages/testing/code-health/package.json ]; then + if [ -f packages/quality/policy/code-health/package.json ]; then echo 'present=true' >> "$GITHUB_OUTPUT" elif [ -n "$BASE_BRANCH" ]; then echo 'present=false' >> "$GITHUB_OUTPUT" - echo "::notice::packages/testing/code-health is absent on \"$BASE_BRANCH\"; nothing to verify." + echo "::notice::packages/quality/policy/code-health is absent on \"$BASE_BRANCH\"; nothing to verify." else - echo '::error::packages/testing/code-health is missing (moved or renamed?).' + echo '::error::packages/quality/policy/code-health is missing (moved or renamed?).' exit 1 fi @@ -119,10 +119,10 @@ jobs: # REPORT_ONLY is a single flag or empty. Quoting it would pass an empty argument, which # the CLI reads as an (unknown) package name and rejects. # shellcheck disable=SC2086 - pnpm --dir packages/testing/code-health exec tsx src/cli.ts verify-npm-install --changed="$BASE_REF" $REPORT_ONLY + pnpm --dir packages/quality/policy/code-health exec tsx src/cli.ts verify-npm-install --changed="$BASE_REF" $REPORT_ONLY - name: Verify npm-install closure (all packages) if: steps.verifier.outputs.present == 'true' && inputs.scope == 'all' run: | # shellcheck disable=SC2086 # see the scoped step above - pnpm --dir packages/testing/code-health exec tsx src/cli.ts verify-npm-install --all $REPORT_ONLY + pnpm --dir packages/quality/policy/code-health exec tsx src/cli.ts verify-npm-install --all $REPORT_ONLY diff --git a/.github/workflows/util-data-tooling.yml b/.github/workflows/util-data-tooling.yml index 90a207fce74..16521f1fb9e 100644 --- a/.github/workflows/util-data-tooling.yml +++ b/.github/workflows/util-data-tooling.yml @@ -71,7 +71,7 @@ jobs: - name: Resolve Postgres image if: fromJSON(steps.paths-filter.outputs.results).db run: | - IMAGE=$(node -p "require('./packages/testing/containers/postgres-versions.json').primary") + IMAGE=$(node -p "require('./packages/quality/environments/containers/postgres-versions.json').primary") echo "TEST_IMAGE_POSTGRES=$IMAGE" >> "$GITHUB_ENV" - name: Start Postgres diff --git a/.gitignore b/.gitignore index fd52b15ee3e..9da602780e3 100644 --- a/.gitignore +++ b/.gitignore @@ -46,17 +46,17 @@ sbom-source.cdx.json junit.xml test-results.json *.0x -packages/testing/playwright/playwright-report -packages/testing/playwright/eval-report -packages/testing/playwright/a11y-report -packages/testing/playwright/test-results -packages/testing/playwright/results.xml -packages/testing/playwright/eval-results.json +packages/quality/testing/playwright/playwright-report +packages/quality/testing/playwright/eval-report +packages/quality/testing/playwright/a11y-report +packages/quality/testing/playwright/test-results +packages/quality/testing/playwright/results.xml +packages/quality/testing/playwright/eval-results.json packages/@n8n/instance-ai/eval-results.json packages/@n8n/instance-ai/.eval-output/ packages/@n8n/instance-ai/eval-pr-comment.md -packages/testing/playwright/.playwright-browsers -packages/testing/playwright/.playwright-cli +packages/quality/testing/playwright/.playwright-browsers +packages/quality/testing/playwright/.playwright-cli test-results/ compiled_app_output trivy_report* @@ -65,7 +65,7 @@ docker-build-manifest.json packages/cli/src/modules/my-feature .secrets act-event.json -packages/testing/**/.cursor/rules/ +packages/quality/**/.cursor/rules/ .venv .ruff_cache __pycache__ diff --git a/AGENTS.md b/AGENTS.md index fdd408d8fd3..6bae8bcc6c0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -310,14 +310,14 @@ extends one of those layers): - Run that package's `pnpm lint` and `pnpm typecheck` before committing code. Build first when shared types or cross-package dependencies change. - Use Vitest for unit tests. Use - [Playwright](packages/testing/playwright/AGENTS.md) when a test needs its + [Playwright](packages/quality/testing/playwright/AGENTS.md) when a test needs its browser, fixtures, or managed containers. - For Vitest packages with `@n8n/di` decorators, use `createVitestConfigWithDecorators` from `@n8n/vitest-config/node-decorators`. - Check import and mock side effects before running tests. Keep tests out of user-owned directories. Set `N8N_USER_FOLDER` to a test-owned directory before importing n8n settings. Clean up only paths that the test created. -- CI runs [`@n8n/code-health`](packages/testing/code-health/README.md) static +- CI runs [`@n8n/code-health`](packages/quality/policy/code-health/README.md) static analysis on PRs. It checks monorepo rules, including dependency hygiene and encryption-boundary coverage. @@ -331,7 +331,7 @@ extends one of those layers): | Start a Codespace backend and share its port | `pnpm dev:up` | The root `pnpm dev` command does not start a server. See the -[Playwright guide](packages/testing/playwright/README.md) and the +[Playwright guide](packages/quality/testing/playwright/README.md) and the [Codespaces guide](.devcontainer/codespaces/README.md) for details. ### Common Development Tasks diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2e55508e4a9..df6e8c6c726 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -432,7 +432,7 @@ Each instance gets its own port, and the webhook URL matches the main URL. Multi >- This does not work with Podman out of the box. You need to [configure Testcontainers for Podman](https://podman-desktop.io/tutorial/testcontainers-with-podman) first. >- Alternatively, you can use colima and set DOCKER_HOST and TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE environment variables as described [here](https://node.testcontainers.org/supported-container-runtimes/#colima) -Refer to [packages/testing/containers/README.md](packages/testing/containers/README.md) for more information. +Refer to [packages/quality/environments/containers/README.md](packages/quality/environments/containers/README.md) for more information. ### Work locally with syslog @@ -661,7 +661,7 @@ E2E tests can be started via one of the following commands: - `pnpm --filter=n8n-playwright test:local --ui` - Run tests in interactive UI mode (useful for debugging) - `pnpm --filter=n8n-playwright test:local --grep="test-name"` - Run specific tests matching pattern -See `packages/testing/playwright/README.md` for more test commands and `packages/testing/playwright/CONTRIBUTING.md` for writing guidelines. +See `packages/quality/testing/playwright/README.md` for more test commands and `packages/quality/testing/playwright/CONTRIBUTING.md` for writing guidelines. ## Create custom nodes diff --git a/OWNERS b/OWNERS index db61f874338..6f4c97c95bb 100644 --- a/OWNERS +++ b/OWNERS @@ -254,8 +254,7 @@ docker/get-n8n.sh @n8n-io/qa-dx required # QA -packages/testing/ @n8n-io/qa-dx -packages/@n8n/benchmark/ @n8n-io/qa-dx +packages/quality/ @n8n-io/qa-dx packages/@n8n/vitest-config/ @n8n-io/qa-dx # Encryption boundary (IAM) — the encryption area and its guardrail rules. diff --git a/biome.jsonc b/biome.jsonc index e09bc4a3683..babcd3f852b 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -18,6 +18,7 @@ "**/cl100k_base.json", "**/o200k_base.json", "**/*.generated.ts", + "**/benchmark/scripts/mock-api/**", "**/expectations/**" ] }, diff --git a/codecov.yml b/codecov.yml index ce45fc5a93c..cd23a197204 100644 --- a/codecov.yml +++ b/codecov.yml @@ -150,5 +150,5 @@ ignore: - (?s:.*/migrations/(postgresdb|sqlite|mysqldb)/.*\.ts.*)\Z - (?s:.*/scripts/.*)\Z # Test/build infrastructure packages - - (?s:.*/packages/testing/.*)\Z + - (?s:.*/packages/quality/.*)\Z - (?s:.*/packages/@n8n/(benchmark|eslint-config|eslint-plugin-community-nodes|stylelint-config|typescript-config|vitest-config)/.*)\Z diff --git a/cubic.yaml b/cubic.yaml index 28d626ce4cb..dd3d7aea371 100644 --- a/cubic.yaml +++ b/cubic.yaml @@ -202,7 +202,7 @@ reviews: - docker/** - scripts/** - patches/** - - packages/testing/** + - packages/quality/** - packages/@n8n/eslint-config/** - packages/@n8n/stylelint-config/** - packages/@n8n/vitest-config/** diff --git a/knip.ts b/knip.ts index df6e7b37c2d..c3d05ba9b27 100644 --- a/knip.ts +++ b/knip.ts @@ -147,7 +147,7 @@ const config: KnipConfig = { // Only named in JSDoc type imports; @stryker-mutator/core provides it. ignoreDependencies: ['@stryker-mutator/api'], }), - 'packages/@n8n/benchmark': pkg({ + 'packages/quality/efficiency/scale/benchmark': pkg({ // The k6 runtime provides its own modules; only @types/k6 is installed. ignoreDependencies: ['k6'], }), @@ -204,7 +204,7 @@ const config: KnipConfig = { // Spawned as a binary through execFile. ignoreDependencies: ['agent-browser'], }), - 'packages/testing/playwright': pkg({ + 'packages/quality/testing/playwright': pkg({ ignoreDependencies: [ // The e2e suite runs against the built app; the edge orders the turbo build. 'n8n', diff --git a/lefthook.yml b/lefthook.yml index 2ed0c68610f..ae7f2467ba3 100644 --- a/lefthook.yml +++ b/lefthook.yml @@ -87,7 +87,7 @@ pre-commit: - merge - rebase playwright_janitor: - glob: 'packages/testing/playwright/**/*.ts' + glob: 'packages/quality/testing/playwright/**/*.ts' run: | files=$(echo {staged_files} | tr ' ' ',') pnpm --filter=n8n-playwright janitor --files="$files" diff --git a/packages/@n8n/benchmark/biome.jsonc b/packages/@n8n/benchmark/biome.jsonc deleted file mode 100644 index 3db16975c6d..00000000000 --- a/packages/@n8n/benchmark/biome.jsonc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "../node_modules/@biomejs/biome/configuration_schema.json", - "extends": ["../../../biome.jsonc"], - "files": { - "ignore": ["scripts/mock-api/**"] - } -} diff --git a/packages/@n8n/db/scripts/schema-docs.mjs b/packages/@n8n/db/scripts/schema-docs.mjs index 6b3a2741ec8..c8de5d0bfb8 100644 --- a/packages/@n8n/db/scripts/schema-docs.mjs +++ b/packages/@n8n/db/scripts/schema-docs.mjs @@ -33,7 +33,7 @@ const TBLS_IMAGE = const POSTGRES_VERSIONS_PATH = resolve( REPO_ROOT, - 'packages/testing/containers/postgres-versions.json', + 'packages/quality/environments/containers/postgres-versions.json', ); function primaryPostgresImage() { diff --git a/packages/@n8n/eslint-config/src/configs/backend-network-boundary.ts b/packages/@n8n/eslint-config/src/configs/backend-network-boundary.ts index 3c70ad443e4..630e91771f9 100644 --- a/packages/@n8n/eslint-config/src/configs/backend-network-boundary.ts +++ b/packages/@n8n/eslint-config/src/configs/backend-network-boundary.ts @@ -26,7 +26,7 @@ export const backendNetworkBoundaryConfig = tseslint.config({ allow: [ // The factory itself: this is where the guarded client is built. 'packages/@n8n/backend-network/', - 'packages/@n8n/benchmark/', + 'packages/quality/efficiency/scale/benchmark/', ], }, ], diff --git a/packages/@n8n/eslint-config/src/rules/no-encryption-guardrail-disable.ts b/packages/@n8n/eslint-config/src/rules/no-encryption-guardrail-disable.ts index 284491851c8..af610f68000 100644 --- a/packages/@n8n/eslint-config/src/rules/no-encryption-guardrail-disable.ts +++ b/packages/@n8n/eslint-config/src/rules/no-encryption-guardrail-disable.ts @@ -25,7 +25,7 @@ const TEST_FILE_PATTERN = /(\.(test|spec)\.ts$)|([\\/]__tests__[\\/])|([\\/]test * so bare or self-naming directives of those forms swallow this rule's report, * and a package-level `'off'` override is invisible to lint altogether. The * authoritative check is the code-health rule `encryption-boundary` - * (packages/testing/code-health): it scans the source out of band for every + * (packages/quality/policy/code-health): it scans the source out of band for every * directive form and verifies that each package that can reach the primitives * composes the boundary config at error severity. */ diff --git a/packages/@n8n/expression-runtime/src/__tests__/lazy-sync-cold-start.test.ts b/packages/@n8n/expression-runtime/src/__tests__/lazy-sync-cold-start.test.ts index 54bbfafd7f2..81ecb9bfd18 100644 --- a/packages/@n8n/expression-runtime/src/__tests__/lazy-sync-cold-start.test.ts +++ b/packages/@n8n/expression-runtime/src/__tests__/lazy-sync-cold-start.test.ts @@ -7,7 +7,7 @@ import { ExpressionEvaluator } from '../evaluator/expression-evaluator'; // can a real bridge be built from inside the synchronous evaluate() path? // isolated-vm uses its sync APIs directly; QuickJS relies on the WASM module // cached by pool warmup (an earlier async initialize). The cold start's cost -// is tracked in packages/testing/performance (cold-start.bench.ts). +// is tracked in packages/quality/efficiency/microbenchmarks (cold-start.bench.ts). describe(`Lazy acquisition: synchronous cold start (${engineName})`, () => { it('builds a working bridge synchronously when the pool is exhausted', async () => { diff --git a/packages/@n8n/instance-ai/CLAUDE.md b/packages/@n8n/instance-ai/CLAUDE.md index 0f028c96343..6c34e31027e 100644 --- a/packages/@n8n/instance-ai/CLAUDE.md +++ b/packages/@n8n/instance-ai/CLAUDE.md @@ -29,12 +29,12 @@ Read these docs before starting any implementation: ## E2E Testing -Tests live in `packages/testing/playwright/tests/e2e/instance-ai/`. +Tests live in `packages/quality/testing/playwright/tests/e2e/instance-ai/`. ### Local-build mode (no docker, no recording — hits real Anthropic API) ```bash -cd packages/testing/playwright +cd packages/quality/testing/playwright export ANTHROPIC_API_KEY=sk-ant-... pnpm test:local:instance-ai # full suite pnpm test:local:instance-ai --grep "preview" # single test @@ -52,7 +52,7 @@ mode with a real key. This captures LLM traffic + tool traces into ```bash pnpm build:docker # from repo root — build the local n8n image first -cd packages/testing/playwright +cd packages/quality/testing/playwright ANTHROPIC_API_KEY=sk-ant-... pnpm test:container:sqlite tests/e2e/instance-ai --workers 1 ``` diff --git a/packages/@n8n/instance-ai/docs/configuration.md b/packages/@n8n/instance-ai/docs/configuration.md index 99010a818d6..dc2be509889 100644 --- a/packages/@n8n/instance-ai/docs/configuration.md +++ b/packages/@n8n/instance-ai/docs/configuration.md @@ -263,8 +263,8 @@ N8N_INSTANCE_AI_SEARXNG_URL=http://searxng:8080 INSTANCE_AI_BRAVE_SEARCH_API_KEY=BSA-xxx # With sandbox (n8n sandbox service) -# CI can start it with: -# pnpm tsx packages/testing/containers/start-sandbox.ts --network n8n-eval-net +# For local development, start it with: +# pnpm --filter n8n-containers services --services sandbox --network n8n-eval-net N8N_INSTANCE_AI_SANDBOX_ENABLED=true N8N_INSTANCE_AI_SANDBOX_PROVIDER=n8n-sandbox N8N_SANDBOX_SERVICE_URL=https://sandbox.example.com diff --git a/packages/@n8n/instance-ai/docs/e2e-tests.md b/packages/@n8n/instance-ai/docs/e2e-tests.md index b836d47f735..a0cd2688e64 100644 --- a/packages/@n8n/instance-ai/docs/e2e-tests.md +++ b/packages/@n8n/instance-ai/docs/e2e-tests.md @@ -255,13 +255,13 @@ volatile request body. | File | Purpose | |------|---------| -| `packages/testing/playwright/tests/e2e/instance-ai/fixtures.ts` | Test fixtures — proxy setup, recording/replay orchestration | +| `packages/quality/testing/playwright/tests/e2e/instance-ai/fixtures.ts` | Test fixtures — proxy setup, recording/replay orchestration | | `packages/@n8n/instance-ai/src/tracing/trace-replay.ts` | `TraceIndex`, `IdRemapper`, `TraceWriter`, JSONL parsing | | `packages/@n8n/instance-ai/src/tracing/langsmith-tracing.ts` | Tool wrapping — `replayWrapTools`, `recordWrapTools` | | `packages/@n8n/instance-ai/src/types.ts` | `InstanceAiTraceContext`, `TraceReplayMode` | | `packages/cli/src/modules/instance-ai/instance-ai.service.ts` | Trace mode initialization, shared state management | | `packages/cli/src/modules/instance-ai/instance-ai.controller.ts` | Test-only REST endpoints for trace delivery | -| `packages/testing/containers/services/proxy.ts` | `ProxyServer` class (MockServer client) | +| `packages/quality/environments/containers/services/proxy.ts` | `ProxyServer` class (MockServer client) | ### Test-Only Endpoints @@ -323,7 +323,7 @@ stack entirely. Tests hit the real Anthropic API directly. This mode does **not** record proxy expectations. ```bash -cd packages/testing/playwright +cd packages/quality/testing/playwright export ANTHROPIC_API_KEY=sk-ant-... pnpm test:local:instance-ai # full suite pnpm test:local:instance-ai --grep "preview" # single test @@ -351,7 +351,7 @@ pnpm test:local:instance-ai --grep "preview" --headed vars over the generic `test:local:isolated` runner, which provides random free ports, a throwaway `N8N_USER_FOLDER` (so `~/.n8n` is never touched), and process-group cleanup. See the -[Playwright README](../../../testing/playwright/README.md) for full details on +[Playwright README](../../../quality/testing/playwright/README.md) for full details on `test:local:isolated`. > **Cost note:** Each run makes real Anthropic calls. Scope with `--grep` or diff --git a/packages/@n8n/oxlint-config/src/configs/backend-network-boundary.ts b/packages/@n8n/oxlint-config/src/configs/backend-network-boundary.ts index 27cf442cf68..57471c272ec 100644 --- a/packages/@n8n/oxlint-config/src/configs/backend-network-boundary.ts +++ b/packages/@n8n/oxlint-config/src/configs/backend-network-boundary.ts @@ -5,7 +5,7 @@ export const backendNetworkBoundaryConfig = defineConfig({ 'n8n-local-rules/no-uncentralized-http': [ 'error', { - allow: ['packages/@n8n/backend-network/', 'packages/@n8n/benchmark/'], + allow: ['packages/@n8n/backend-network/', 'packages/quality/efficiency/scale/benchmark/'], }, ], }, diff --git a/packages/frontend/editor-ui/src/app/dev/render-tracker.ts b/packages/frontend/editor-ui/src/app/dev/render-tracker.ts index 277f972daf1..0c52adf2453 100644 --- a/packages/frontend/editor-ui/src/app/dev/render-tracker.ts +++ b/packages/frontend/editor-ui/src/app/dev/render-tracker.ts @@ -3,7 +3,7 @@ import type { App, ComponentPublicInstance } from 'vue'; /** * localStorage key that switches on app-wide component re-render counting. * - * Set by the canvas performance benchmark (packages/testing/playwright) before + * Set by the canvas performance benchmark (packages/quality/testing/playwright) before * the SPA boots. Real users never set it, so the global mixin below is never * installed in normal use and the feature carries no runtime cost for them. */ diff --git a/packages/quality/AGENTS.md b/packages/quality/AGENTS.md new file mode 100644 index 00000000000..dec5c9a6b8f --- /dev/null +++ b/packages/quality/AGENTS.md @@ -0,0 +1,19 @@ +# Quality engineering instructions + +Read the repository [AGENTS.md](../../AGENTS.md) first. Use the [quality engineering index](README.md) to find the tool for your task. + +| Area | Responsibility | Current location | +| --- | --- | --- | +| Policy | Repository rules and static analysis | [`rules-engine`](policy/rules-engine/), [`code-health`](policy/code-health/) | +| Testing | Test selection, architecture checks, and test orchestration | [`test-impact`](testing/test-impact/), [`janitor`](testing/janitor/), [`playwright`](testing/playwright/) | +| Environments | Test services and deployment stacks | [`containers`](environments/containers/) | +| Efficiency | Speed, memory, load, latency, throughput, capacity, and resource use | [Microbenchmarks](efficiency/microbenchmarks/), [Playwright performance tests](testing/playwright/tests/performance/), [infrastructure benchmarks](testing/playwright/tests/infrastructure/benchmarks/), [benchmark CLI](efficiency/scale/benchmark/) | + +## Working rules + +- Read the instructions in the owning package before you change its files. +- Keep benchmark methods and results comparable when you move files. Do not change behavior during a path migration. +- Keep existing package names and `pnpm --filter` commands when you move workspaces. +- Update workspace discovery, CI paths, test-impact rules, ownership, documentation, and the lockfile when you move a package. Verify that each moved workspace still runs its intended checks. +- Prefer local efficiency measurements that do not require an n8n Docker image rebuild. State clearly when a benchmark does require an image. +- Put task instructions in focused README files. Keep inherited `AGENTS.md` files short and limited to rules for their area. diff --git a/packages/quality/README.md b/packages/quality/README.md new file mode 100644 index 00000000000..7d0ad2dc469 --- /dev/null +++ b/packages/quality/README.md @@ -0,0 +1,12 @@ +# Quality engineering + +Each area owns workspaces. A test stays with its runner, even when it measures another quality concern. + +| Area | Owns | Start here | +| --- | --- | --- | +| Policy | Repository rules and static checks | [Policy](policy/README.md) | +| Testing | Test selection, architecture checks, and the Playwright runner | [Testing](testing/README.md) | +| Environments | Services and deployment stacks for tests | [Environments](environments/README.md) | +| Efficiency | Standalone microbenchmark and load-test tools | [Efficiency](efficiency/README.md) | + +Use the [Playwright suite map](testing/playwright/README.md#choose-a-suite) to find browser, accessibility, memory, and infrastructure tests. Their specs remain in Playwright because they use its fixtures and projects. diff --git a/packages/quality/efficiency/AGENTS.md b/packages/quality/efficiency/AGENTS.md new file mode 100644 index 00000000000..8f67508ca3d --- /dev/null +++ b/packages/quality/efficiency/AGENTS.md @@ -0,0 +1,8 @@ +# Efficiency instructions + +Read the parent [quality instructions](../AGENTS.md) before you change a benchmark. + +- Compare results with the same machine, workload, and process profile. +- Do not change benchmark methods during a path migration. +- Keep local measurements possible without an n8n Docker image rebuild. State when a benchmark needs an image. +- Put task steps and result interpretation in the owning benchmark's README. diff --git a/packages/quality/efficiency/README.md b/packages/quality/efficiency/README.md new file mode 100644 index 00000000000..e16948783f9 --- /dev/null +++ b/packages/quality/efficiency/README.md @@ -0,0 +1,10 @@ +# Efficiency tooling + +This area owns tools that measure speed and scale outside the Playwright runner. + +| Tool | Use it to | Guide | +| --- | --- | --- | +| `@n8n/performance` | Compare code paths without building an n8n Docker image | [Microbenchmarks](microbenchmarks/README.md) | +| `@n8n/n8n-benchmark` | Run load scenarios against an n8n instance | [Benchmark CLI](scale/benchmark/README.md) | + +For idle memory, canvas performance, throughput, and local soak tests, use the [Playwright suite map](../testing/playwright/README.md#choose-a-suite). These specs need Playwright fixtures, projects, metrics, or managed containers. diff --git a/packages/testing/performance/README.md b/packages/quality/efficiency/microbenchmarks/README.md similarity index 100% rename from packages/testing/performance/README.md rename to packages/quality/efficiency/microbenchmarks/README.md diff --git a/packages/testing/performance/benchmarks/bench-options.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/bench-options.ts similarity index 100% rename from packages/testing/performance/benchmarks/bench-options.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/bench-options.ts diff --git a/packages/testing/performance/benchmarks/expression-engine/cold-start.bench.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/cold-start.bench.ts similarity index 100% rename from packages/testing/performance/benchmarks/expression-engine/cold-start.bench.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/cold-start.bench.ts diff --git a/packages/testing/performance/benchmarks/expression-engine/fixtures/data.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/fixtures/data.ts similarity index 100% rename from packages/testing/performance/benchmarks/expression-engine/fixtures/data.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/fixtures/data.ts diff --git a/packages/testing/performance/benchmarks/expression-engine/fixtures/expressions.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/fixtures/expressions.ts similarity index 100% rename from packages/testing/performance/benchmarks/expression-engine/fixtures/expressions.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/fixtures/expressions.ts diff --git a/packages/testing/performance/benchmarks/expression-engine/fixtures/pattern-benchmarks.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/fixtures/pattern-benchmarks.ts similarity index 100% rename from packages/testing/performance/benchmarks/expression-engine/fixtures/pattern-benchmarks.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/fixtures/pattern-benchmarks.ts diff --git a/packages/testing/performance/benchmarks/expression-engine/micro-quickjs.bench.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/micro-quickjs.bench.ts similarity index 100% rename from packages/testing/performance/benchmarks/expression-engine/micro-quickjs.bench.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/micro-quickjs.bench.ts diff --git a/packages/testing/performance/benchmarks/expression-engine/micro.bench.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/micro.bench.ts similarity index 100% rename from packages/testing/performance/benchmarks/expression-engine/micro.bench.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/micro.bench.ts diff --git a/packages/testing/performance/benchmarks/expression-engine/patterns-legacy.bench.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/patterns-legacy.bench.ts similarity index 100% rename from packages/testing/performance/benchmarks/expression-engine/patterns-legacy.bench.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/patterns-legacy.bench.ts diff --git a/packages/testing/performance/benchmarks/expression-engine/patterns-quickjs.bench.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/patterns-quickjs.bench.ts similarity index 100% rename from packages/testing/performance/benchmarks/expression-engine/patterns-quickjs.bench.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/patterns-quickjs.bench.ts diff --git a/packages/testing/performance/benchmarks/expression-engine/patterns-vm.bench.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/patterns-vm.bench.ts similarity index 100% rename from packages/testing/performance/benchmarks/expression-engine/patterns-vm.bench.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/expression-engine/patterns-vm.bench.ts diff --git a/packages/testing/performance/benchmarks/paired-item/traversal.bench.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/paired-item/traversal.bench.ts similarity index 100% rename from packages/testing/performance/benchmarks/paired-item/traversal.bench.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/paired-item/traversal.bench.ts diff --git a/packages/testing/performance/benchmarks/workflow-graph/traversal.bench.ts b/packages/quality/efficiency/microbenchmarks/benchmarks/workflow-graph/traversal.bench.ts similarity index 100% rename from packages/testing/performance/benchmarks/workflow-graph/traversal.bench.ts rename to packages/quality/efficiency/microbenchmarks/benchmarks/workflow-graph/traversal.bench.ts diff --git a/packages/testing/performance/package.json b/packages/quality/efficiency/microbenchmarks/package.json similarity index 100% rename from packages/testing/performance/package.json rename to packages/quality/efficiency/microbenchmarks/package.json diff --git a/packages/testing/performance/profiles/.gitignore b/packages/quality/efficiency/microbenchmarks/profiles/.gitignore similarity index 100% rename from packages/testing/performance/profiles/.gitignore rename to packages/quality/efficiency/microbenchmarks/profiles/.gitignore diff --git a/packages/testing/performance/scripts/check-regression.mjs b/packages/quality/efficiency/microbenchmarks/scripts/check-regression.mjs similarity index 100% rename from packages/testing/performance/scripts/check-regression.mjs rename to packages/quality/efficiency/microbenchmarks/scripts/check-regression.mjs diff --git a/packages/testing/performance/scripts/extract-expressions.mjs b/packages/quality/efficiency/microbenchmarks/scripts/extract-expressions.mjs similarity index 100% rename from packages/testing/performance/scripts/extract-expressions.mjs rename to packages/quality/efficiency/microbenchmarks/scripts/extract-expressions.mjs diff --git a/packages/testing/performance/tsconfig.json b/packages/quality/efficiency/microbenchmarks/tsconfig.json similarity index 82% rename from packages/testing/performance/tsconfig.json rename to packages/quality/efficiency/microbenchmarks/tsconfig.json index 105528cfb26..24e305c8462 100644 --- a/packages/testing/performance/tsconfig.json +++ b/packages/quality/efficiency/microbenchmarks/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../../tsconfig.json", "compilerOptions": { "module": "esnext", "moduleResolution": "bundler", diff --git a/packages/testing/performance/vitest.config.ts b/packages/quality/efficiency/microbenchmarks/vitest.config.ts similarity index 100% rename from packages/testing/performance/vitest.config.ts rename to packages/quality/efficiency/microbenchmarks/vitest.config.ts diff --git a/packages/@n8n/benchmark/.gitignore b/packages/quality/efficiency/scale/benchmark/.gitignore similarity index 100% rename from packages/@n8n/benchmark/.gitignore rename to packages/quality/efficiency/scale/benchmark/.gitignore diff --git a/packages/@n8n/benchmark/Dockerfile b/packages/quality/efficiency/scale/benchmark/Dockerfile similarity index 62% rename from packages/@n8n/benchmark/Dockerfile rename to packages/quality/efficiency/scale/benchmark/Dockerfile index 1439f67b813..389cedac2f8 100644 --- a/packages/@n8n/benchmark/Dockerfile +++ b/packages/quality/efficiency/scale/benchmark/Dockerfile @@ -38,7 +38,7 @@ WORKDIR /app COPY --chown=node:node ./pnpm-lock.yaml /app/pnpm-lock.yaml COPY --chown=node:node ./pnpm-workspace.yaml /app/pnpm-workspace.yaml COPY --chown=node:node ./package.json /app/package.json -COPY --chown=node:node ./packages/@n8n/benchmark/package.json /app/packages/@n8n/benchmark/package.json +COPY --chown=node:node ./packages/quality/efficiency/scale/benchmark/package.json /app/packages/quality/efficiency/scale/benchmark/package.json COPY --chown=node:node ./patches /app/patches COPY --chown=node:node ./scripts /app/scripts @@ -47,15 +47,15 @@ RUN pnpm install --frozen-lockfile # TS config files COPY --chown=node:node ./packages/@n8n/typescript-config /app/packages/@n8n/typescript-config -COPY --chown=node:node ./packages/@n8n/benchmark/tsconfig.json /app/packages/@n8n/benchmark/tsconfig.json -COPY --chown=node:node ./packages/@n8n/benchmark/tsconfig.build.json /app/packages/@n8n/benchmark/tsconfig.build.json +COPY --chown=node:node ./packages/quality/efficiency/scale/benchmark/tsconfig.json /app/packages/quality/efficiency/scale/benchmark/tsconfig.json +COPY --chown=node:node ./packages/quality/efficiency/scale/benchmark/tsconfig.build.json /app/packages/quality/efficiency/scale/benchmark/tsconfig.build.json # Source files -COPY --chown=node:node ./packages/@n8n/benchmark/src /app/packages/@n8n/benchmark/src -COPY --chown=node:node ./packages/@n8n/benchmark/bin /app/packages/@n8n/benchmark/bin -COPY --chown=node:node ./packages/@n8n/benchmark/scenarios /app/packages/@n8n/benchmark/scenarios +COPY --chown=node:node ./packages/quality/efficiency/scale/benchmark/src /app/packages/quality/efficiency/scale/benchmark/src +COPY --chown=node:node ./packages/quality/efficiency/scale/benchmark/bin /app/packages/quality/efficiency/scale/benchmark/bin +COPY --chown=node:node ./packages/quality/efficiency/scale/benchmark/scenarios /app/packages/quality/efficiency/scale/benchmark/scenarios -WORKDIR /app/packages/@n8n/benchmark +WORKDIR /app/packages/quality/efficiency/scale/benchmark RUN pnpm build # @@ -64,7 +64,7 @@ FROM base AS runner COPY --from=builder /app /app -WORKDIR /app/packages/@n8n/benchmark +WORKDIR /app/packages/quality/efficiency/scale/benchmark USER node -ENTRYPOINT [ "/app/packages/@n8n/benchmark/bin/n8n-benchmark" ] +ENTRYPOINT [ "/app/packages/quality/efficiency/scale/benchmark/bin/n8n-benchmark" ] diff --git a/packages/@n8n/benchmark/README.md b/packages/quality/efficiency/scale/benchmark/README.md similarity index 78% rename from packages/@n8n/benchmark/README.md rename to packages/quality/efficiency/scale/benchmark/README.md index 1ae60a6196a..ae828e75422 100644 --- a/packages/@n8n/benchmark/README.md +++ b/packages/quality/efficiency/scale/benchmark/README.md @@ -2,10 +2,12 @@ Tool for executing benchmarks against an n8n instance. +Run the `pnpm --filter @n8n/n8n-benchmark` commands below from the repository root. pnpm runs each script in the benchmark package directory. + ## Directory structure ```text -packages/@n8n/benchmark +packages/quality/efficiency/scale/benchmark ├── scenarios Benchmark scenarios ├── src Source code for the n8n-benchmark cli ├── Dockerfile Dockerfile for the n8n-benchmark cli @@ -50,17 +52,17 @@ docker run -v ./scenarios:/scenarios ghcr.io/n8n-io/n8n-benchmark:latest run \ The benchmark suite consists of [benchmark scenarios](#benchmark-scenarios) and different [n8n setups](#n8n-setups). -### locally +### Locally ```sh -pnpm benchmark-locally +pnpm --filter @n8n/n8n-benchmark benchmark-locally ``` You can filter to a specific scenario and setup: ```sh # Run only the http-node scenario with the sqlite setup -pnpm benchmark-locally --runDir /tmp/n8n-data --scenarioFilter http-node sqlite +pnpm --filter @n8n/n8n-benchmark benchmark-locally --runDir /tmp/n8n-data --scenarioFilter http-node sqlite ``` ### In the cloud @@ -71,9 +73,9 @@ Terraform code that creates it. Create the environment, run the benchmarks, then delete the environment: ```sh -pnpm provision-cloud-env -pnpm benchmark-in-cloud -pnpm destroy-cloud-env +pnpm --filter @n8n/n8n-benchmark provision-cloud-env +pnpm --filter @n8n/n8n-benchmark benchmark-in-cloud +pnpm --filter @n8n/n8n-benchmark destroy-cloud-env ``` ## Running the `n8n-benchmark` cli @@ -87,7 +89,7 @@ Build the Docker image: ```sh # Must be run in the repository root # k6 doesn't have an arm64 build available for linux, we need to build against amd64 -docker build --platform linux/amd64 -t n8n-benchmark -f packages/@n8n/benchmark/Dockerfile . +docker build --platform linux/amd64 -t n8n-benchmark -f packages/quality/efficiency/scale/benchmark/Dockerfile . ``` Run the image @@ -108,11 +110,13 @@ Requirements: - [k6](https://grafana.com/docs/k6/latest/set-up/install-k6/) - Node.js v24 or higher +Set `N8N_USER_EMAIL` and `N8N_USER_PASSWORD` in your environment before you run the CLI. + ```sh -pnpm build +pnpm --filter @n8n/n8n-benchmark build > benchmark-build.log 2>&1 # Run tests against http://localhost:5678 with specified email and password -N8N_USER_EMAIL=user@n8n.io N8N_USER_PASSWORD=password ./bin/n8n-benchmark run +pnpm --filter @n8n/n8n-benchmark exec ./bin/n8n-benchmark run ``` ## Benchmark scenarios @@ -127,4 +131,4 @@ Available scenarios are located in [`./scenarios`](./scenarios/). ## n8n setups -A n8n setup defines a single n8n runtime configuration using Docker compose. Different n8n setups are located in [`./scripts/n8nSetups`](./scripts/n8nSetups). +An n8n setup defines one n8n runtime configuration with Docker Compose. The setups are in [`scripts/n8n-setups`](scripts/n8n-setups/). diff --git a/packages/@n8n/benchmark/bin/n8n-benchmark b/packages/quality/efficiency/scale/benchmark/bin/n8n-benchmark similarity index 100% rename from packages/@n8n/benchmark/bin/n8n-benchmark rename to packages/quality/efficiency/scale/benchmark/bin/n8n-benchmark diff --git a/packages/quality/efficiency/scale/benchmark/biome.jsonc b/packages/quality/efficiency/scale/benchmark/biome.jsonc new file mode 100644 index 00000000000..c1eea8371c1 --- /dev/null +++ b/packages/quality/efficiency/scale/benchmark/biome.jsonc @@ -0,0 +1,7 @@ +{ + "$schema": "../../../../../node_modules/@biomejs/biome/configuration_schema.json", + "extends": ["../../../../../biome.jsonc"], + "files": { + "ignore": ["scripts/mock-api/**"] + } +} diff --git a/packages/@n8n/benchmark/eslint.config.mjs b/packages/quality/efficiency/scale/benchmark/eslint.config.mjs similarity index 100% rename from packages/@n8n/benchmark/eslint.config.mjs rename to packages/quality/efficiency/scale/benchmark/eslint.config.mjs diff --git a/packages/@n8n/benchmark/infra/.terraform.lock.hcl b/packages/quality/efficiency/scale/benchmark/infra/.terraform.lock.hcl similarity index 100% rename from packages/@n8n/benchmark/infra/.terraform.lock.hcl rename to packages/quality/efficiency/scale/benchmark/infra/.terraform.lock.hcl diff --git a/packages/@n8n/benchmark/infra/benchmark-env.tf b/packages/quality/efficiency/scale/benchmark/infra/benchmark-env.tf similarity index 100% rename from packages/@n8n/benchmark/infra/benchmark-env.tf rename to packages/quality/efficiency/scale/benchmark/infra/benchmark-env.tf diff --git a/packages/@n8n/benchmark/infra/modules/benchmark-vm/output.tf b/packages/quality/efficiency/scale/benchmark/infra/modules/benchmark-vm/output.tf similarity index 100% rename from packages/@n8n/benchmark/infra/modules/benchmark-vm/output.tf rename to packages/quality/efficiency/scale/benchmark/infra/modules/benchmark-vm/output.tf diff --git a/packages/@n8n/benchmark/infra/modules/benchmark-vm/providers.tf b/packages/quality/efficiency/scale/benchmark/infra/modules/benchmark-vm/providers.tf similarity index 100% rename from packages/@n8n/benchmark/infra/modules/benchmark-vm/providers.tf rename to packages/quality/efficiency/scale/benchmark/infra/modules/benchmark-vm/providers.tf diff --git a/packages/@n8n/benchmark/infra/modules/benchmark-vm/vars.tf b/packages/quality/efficiency/scale/benchmark/infra/modules/benchmark-vm/vars.tf similarity index 100% rename from packages/@n8n/benchmark/infra/modules/benchmark-vm/vars.tf rename to packages/quality/efficiency/scale/benchmark/infra/modules/benchmark-vm/vars.tf diff --git a/packages/@n8n/benchmark/infra/modules/benchmark-vm/vm.tf b/packages/quality/efficiency/scale/benchmark/infra/modules/benchmark-vm/vm.tf similarity index 100% rename from packages/@n8n/benchmark/infra/modules/benchmark-vm/vm.tf rename to packages/quality/efficiency/scale/benchmark/infra/modules/benchmark-vm/vm.tf diff --git a/packages/@n8n/benchmark/infra/output.tf b/packages/quality/efficiency/scale/benchmark/infra/output.tf similarity index 100% rename from packages/@n8n/benchmark/infra/output.tf rename to packages/quality/efficiency/scale/benchmark/infra/output.tf diff --git a/packages/@n8n/benchmark/infra/providers.tf b/packages/quality/efficiency/scale/benchmark/infra/providers.tf similarity index 100% rename from packages/@n8n/benchmark/infra/providers.tf rename to packages/quality/efficiency/scale/benchmark/infra/providers.tf diff --git a/packages/@n8n/benchmark/infra/vars.tf b/packages/quality/efficiency/scale/benchmark/infra/vars.tf similarity index 100% rename from packages/@n8n/benchmark/infra/vars.tf rename to packages/quality/efficiency/scale/benchmark/infra/vars.tf diff --git a/packages/@n8n/benchmark/oxlint.config.mts b/packages/quality/efficiency/scale/benchmark/oxlint.config.mts similarity index 100% rename from packages/@n8n/benchmark/oxlint.config.mts rename to packages/quality/efficiency/scale/benchmark/oxlint.config.mts diff --git a/packages/@n8n/benchmark/package.json b/packages/quality/efficiency/scale/benchmark/package.json similarity index 100% rename from packages/@n8n/benchmark/package.json rename to packages/quality/efficiency/scale/benchmark/package.json diff --git a/packages/@n8n/benchmark/scenarios/binary-data/binary-data.json b/packages/quality/efficiency/scale/benchmark/scenarios/binary-data/binary-data.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/binary-data/binary-data.json rename to packages/quality/efficiency/scale/benchmark/scenarios/binary-data/binary-data.json diff --git a/packages/@n8n/benchmark/scenarios/binary-data/binary-data.manifest.json b/packages/quality/efficiency/scale/benchmark/scenarios/binary-data/binary-data.manifest.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/binary-data/binary-data.manifest.json rename to packages/quality/efficiency/scale/benchmark/scenarios/binary-data/binary-data.manifest.json diff --git a/packages/@n8n/benchmark/scenarios/binary-data/binary-data.script.js b/packages/quality/efficiency/scale/benchmark/scenarios/binary-data/binary-data.script.js similarity index 100% rename from packages/@n8n/benchmark/scenarios/binary-data/binary-data.script.js rename to packages/quality/efficiency/scale/benchmark/scenarios/binary-data/binary-data.script.js diff --git a/packages/@n8n/benchmark/scenarios/credential-http-node/credential-bearer.json b/packages/quality/efficiency/scale/benchmark/scenarios/credential-http-node/credential-bearer.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/credential-http-node/credential-bearer.json rename to packages/quality/efficiency/scale/benchmark/scenarios/credential-http-node/credential-bearer.json diff --git a/packages/@n8n/benchmark/scenarios/credential-http-node/credential-http-node.json b/packages/quality/efficiency/scale/benchmark/scenarios/credential-http-node/credential-http-node.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/credential-http-node/credential-http-node.json rename to packages/quality/efficiency/scale/benchmark/scenarios/credential-http-node/credential-http-node.json diff --git a/packages/@n8n/benchmark/scenarios/credential-http-node/credential-http-node.manifest.json b/packages/quality/efficiency/scale/benchmark/scenarios/credential-http-node/credential-http-node.manifest.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/credential-http-node/credential-http-node.manifest.json rename to packages/quality/efficiency/scale/benchmark/scenarios/credential-http-node/credential-http-node.manifest.json diff --git a/packages/@n8n/benchmark/scenarios/credential-http-node/credential-http-node.script.js b/packages/quality/efficiency/scale/benchmark/scenarios/credential-http-node/credential-http-node.script.js similarity index 100% rename from packages/@n8n/benchmark/scenarios/credential-http-node/credential-http-node.script.js rename to packages/quality/efficiency/scale/benchmark/scenarios/credential-http-node/credential-http-node.script.js diff --git a/packages/@n8n/benchmark/scenarios/data-table-node/data-table-node.json b/packages/quality/efficiency/scale/benchmark/scenarios/data-table-node/data-table-node.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/data-table-node/data-table-node.json rename to packages/quality/efficiency/scale/benchmark/scenarios/data-table-node/data-table-node.json diff --git a/packages/@n8n/benchmark/scenarios/data-table-node/data-table-node.manifest.json b/packages/quality/efficiency/scale/benchmark/scenarios/data-table-node/data-table-node.manifest.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/data-table-node/data-table-node.manifest.json rename to packages/quality/efficiency/scale/benchmark/scenarios/data-table-node/data-table-node.manifest.json diff --git a/packages/@n8n/benchmark/scenarios/data-table-node/data-table-node.script.js b/packages/quality/efficiency/scale/benchmark/scenarios/data-table-node/data-table-node.script.js similarity index 100% rename from packages/@n8n/benchmark/scenarios/data-table-node/data-table-node.script.js rename to packages/quality/efficiency/scale/benchmark/scenarios/data-table-node/data-table-node.script.js diff --git a/packages/@n8n/benchmark/scenarios/data-table-node/data-table.json b/packages/quality/efficiency/scale/benchmark/scenarios/data-table-node/data-table.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/data-table-node/data-table.json rename to packages/quality/efficiency/scale/benchmark/scenarios/data-table-node/data-table.json diff --git a/packages/@n8n/benchmark/scenarios/http-node/http-node.json b/packages/quality/efficiency/scale/benchmark/scenarios/http-node/http-node.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/http-node/http-node.json rename to packages/quality/efficiency/scale/benchmark/scenarios/http-node/http-node.json diff --git a/packages/@n8n/benchmark/scenarios/http-node/http-node.manifest.json b/packages/quality/efficiency/scale/benchmark/scenarios/http-node/http-node.manifest.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/http-node/http-node.manifest.json rename to packages/quality/efficiency/scale/benchmark/scenarios/http-node/http-node.manifest.json diff --git a/packages/@n8n/benchmark/scenarios/http-node/http-node.script.js b/packages/quality/efficiency/scale/benchmark/scenarios/http-node/http-node.script.js similarity index 100% rename from packages/@n8n/benchmark/scenarios/http-node/http-node.script.js rename to packages/quality/efficiency/scale/benchmark/scenarios/http-node/http-node.script.js diff --git a/packages/@n8n/benchmark/scenarios/js-code-node/js-code-node.json b/packages/quality/efficiency/scale/benchmark/scenarios/js-code-node/js-code-node.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/js-code-node/js-code-node.json rename to packages/quality/efficiency/scale/benchmark/scenarios/js-code-node/js-code-node.json diff --git a/packages/@n8n/benchmark/scenarios/js-code-node/js-code-node.manifest.json b/packages/quality/efficiency/scale/benchmark/scenarios/js-code-node/js-code-node.manifest.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/js-code-node/js-code-node.manifest.json rename to packages/quality/efficiency/scale/benchmark/scenarios/js-code-node/js-code-node.manifest.json diff --git a/packages/@n8n/benchmark/scenarios/js-code-node/js-code-node.script.js b/packages/quality/efficiency/scale/benchmark/scenarios/js-code-node/js-code-node.script.js similarity index 100% rename from packages/@n8n/benchmark/scenarios/js-code-node/js-code-node.script.js rename to packages/quality/efficiency/scale/benchmark/scenarios/js-code-node/js-code-node.script.js diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks.manifest.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks.manifest.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks.manifest.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks.manifest.json diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks.script.js b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks.script.js similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks.script.js rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks.script.js diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks1.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks1.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks1.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks1.json diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks10.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks10.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks10.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks10.json diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks2.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks2.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks2.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks2.json diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks3.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks3.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks3.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks3.json diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks4.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks4.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks4.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks4.json diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks5.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks5.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks5.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks5.json diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks6.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks6.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks6.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks6.json diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks7.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks7.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks7.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks7.json diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks8.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks8.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks8.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks8.json diff --git a/packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks9.json b/packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks9.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/multiple-webhooks/multiple-webhooks9.json rename to packages/quality/efficiency/scale/benchmark/scenarios/multiple-webhooks/multiple-webhooks9.json diff --git a/packages/@n8n/benchmark/scenarios/py-code-node/py-code-node.json b/packages/quality/efficiency/scale/benchmark/scenarios/py-code-node/py-code-node.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/py-code-node/py-code-node.json rename to packages/quality/efficiency/scale/benchmark/scenarios/py-code-node/py-code-node.json diff --git a/packages/@n8n/benchmark/scenarios/py-code-node/py-code-node.manifest.json b/packages/quality/efficiency/scale/benchmark/scenarios/py-code-node/py-code-node.manifest.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/py-code-node/py-code-node.manifest.json rename to packages/quality/efficiency/scale/benchmark/scenarios/py-code-node/py-code-node.manifest.json diff --git a/packages/@n8n/benchmark/scenarios/py-code-node/py-code-node.script.js b/packages/quality/efficiency/scale/benchmark/scenarios/py-code-node/py-code-node.script.js similarity index 100% rename from packages/@n8n/benchmark/scenarios/py-code-node/py-code-node.script.js rename to packages/quality/efficiency/scale/benchmark/scenarios/py-code-node/py-code-node.script.js diff --git a/packages/@n8n/benchmark/scenarios/scenario.schema.json b/packages/quality/efficiency/scale/benchmark/scenarios/scenario.schema.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/scenario.schema.json rename to packages/quality/efficiency/scale/benchmark/scenarios/scenario.schema.json diff --git a/packages/@n8n/benchmark/scenarios/set-node-expressions/set-node-expressions.json b/packages/quality/efficiency/scale/benchmark/scenarios/set-node-expressions/set-node-expressions.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/set-node-expressions/set-node-expressions.json rename to packages/quality/efficiency/scale/benchmark/scenarios/set-node-expressions/set-node-expressions.json diff --git a/packages/@n8n/benchmark/scenarios/set-node-expressions/set-node-expressions.manifest.json b/packages/quality/efficiency/scale/benchmark/scenarios/set-node-expressions/set-node-expressions.manifest.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/set-node-expressions/set-node-expressions.manifest.json rename to packages/quality/efficiency/scale/benchmark/scenarios/set-node-expressions/set-node-expressions.manifest.json diff --git a/packages/@n8n/benchmark/scenarios/set-node-expressions/set-node-expressions.script.js b/packages/quality/efficiency/scale/benchmark/scenarios/set-node-expressions/set-node-expressions.script.js similarity index 100% rename from packages/@n8n/benchmark/scenarios/set-node-expressions/set-node-expressions.script.js rename to packages/quality/efficiency/scale/benchmark/scenarios/set-node-expressions/set-node-expressions.script.js diff --git a/packages/@n8n/benchmark/scenarios/single-webhook/single-webhook.json b/packages/quality/efficiency/scale/benchmark/scenarios/single-webhook/single-webhook.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/single-webhook/single-webhook.json rename to packages/quality/efficiency/scale/benchmark/scenarios/single-webhook/single-webhook.json diff --git a/packages/@n8n/benchmark/scenarios/single-webhook/single-webhook.manifest.json b/packages/quality/efficiency/scale/benchmark/scenarios/single-webhook/single-webhook.manifest.json similarity index 100% rename from packages/@n8n/benchmark/scenarios/single-webhook/single-webhook.manifest.json rename to packages/quality/efficiency/scale/benchmark/scenarios/single-webhook/single-webhook.manifest.json diff --git a/packages/@n8n/benchmark/scenarios/single-webhook/single-webhook.script.js b/packages/quality/efficiency/scale/benchmark/scenarios/single-webhook/single-webhook.script.js similarity index 100% rename from packages/@n8n/benchmark/scenarios/single-webhook/single-webhook.script.js rename to packages/quality/efficiency/scale/benchmark/scenarios/single-webhook/single-webhook.script.js diff --git a/packages/@n8n/benchmark/scripts/bootstrap.sh b/packages/quality/efficiency/scale/benchmark/scripts/bootstrap.sh similarity index 100% rename from packages/@n8n/benchmark/scripts/bootstrap.sh rename to packages/quality/efficiency/scale/benchmark/scripts/bootstrap.sh diff --git a/packages/@n8n/benchmark/scripts/clients/docker-compose-client.mjs b/packages/quality/efficiency/scale/benchmark/scripts/clients/docker-compose-client.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/clients/docker-compose-client.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/clients/docker-compose-client.mjs diff --git a/packages/@n8n/benchmark/scripts/clients/ssh-client.mjs b/packages/quality/efficiency/scale/benchmark/scripts/clients/ssh-client.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/clients/ssh-client.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/clients/ssh-client.mjs diff --git a/packages/@n8n/benchmark/scripts/clients/terraform-client.mjs b/packages/quality/efficiency/scale/benchmark/scripts/clients/terraform-client.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/clients/terraform-client.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/clients/terraform-client.mjs diff --git a/packages/@n8n/benchmark/scripts/destroy-cloud-env.mjs b/packages/quality/efficiency/scale/benchmark/scripts/destroy-cloud-env.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/destroy-cloud-env.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/destroy-cloud-env.mjs diff --git a/packages/@n8n/benchmark/scripts/mock-api/mappings/mockApiData.json b/packages/quality/efficiency/scale/benchmark/scripts/mock-api/mappings/mockApiData.json similarity index 100% rename from packages/@n8n/benchmark/scripts/mock-api/mappings/mockApiData.json rename to packages/quality/efficiency/scale/benchmark/scripts/mock-api/mappings/mockApiData.json diff --git a/packages/@n8n/benchmark/scripts/n8n-setups/postgres/docker-compose.yml b/packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/postgres/docker-compose.yml similarity index 100% rename from packages/@n8n/benchmark/scripts/n8n-setups/postgres/docker-compose.yml rename to packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/postgres/docker-compose.yml diff --git a/packages/@n8n/benchmark/scripts/n8n-setups/postgres/setup.mjs b/packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/postgres/setup.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/n8n-setups/postgres/setup.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/postgres/setup.mjs diff --git a/packages/@n8n/benchmark/scripts/n8n-setups/scaling-multi-main/docker-compose.yml b/packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/scaling-multi-main/docker-compose.yml similarity index 100% rename from packages/@n8n/benchmark/scripts/n8n-setups/scaling-multi-main/docker-compose.yml rename to packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/scaling-multi-main/docker-compose.yml diff --git a/packages/@n8n/benchmark/scripts/n8n-setups/scaling-multi-main/nginx.conf b/packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/scaling-multi-main/nginx.conf similarity index 100% rename from packages/@n8n/benchmark/scripts/n8n-setups/scaling-multi-main/nginx.conf rename to packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/scaling-multi-main/nginx.conf diff --git a/packages/@n8n/benchmark/scripts/n8n-setups/scaling-multi-main/setup.mjs b/packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/scaling-multi-main/setup.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/n8n-setups/scaling-multi-main/setup.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/scaling-multi-main/setup.mjs diff --git a/packages/@n8n/benchmark/scripts/n8n-setups/scaling-single-main/docker-compose.yml b/packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/scaling-single-main/docker-compose.yml similarity index 100% rename from packages/@n8n/benchmark/scripts/n8n-setups/scaling-single-main/docker-compose.yml rename to packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/scaling-single-main/docker-compose.yml diff --git a/packages/@n8n/benchmark/scripts/n8n-setups/scaling-single-main/setup.mjs b/packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/scaling-single-main/setup.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/n8n-setups/scaling-single-main/setup.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/scaling-single-main/setup.mjs diff --git a/packages/@n8n/benchmark/scripts/n8n-setups/sqlite/docker-compose.yml b/packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/sqlite/docker-compose.yml similarity index 100% rename from packages/@n8n/benchmark/scripts/n8n-setups/sqlite/docker-compose.yml rename to packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/sqlite/docker-compose.yml diff --git a/packages/@n8n/benchmark/scripts/n8n-setups/sqlite/setup.mjs b/packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/sqlite/setup.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/n8n-setups/sqlite/setup.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/n8n-setups/sqlite/setup.mjs diff --git a/packages/@n8n/benchmark/scripts/provision-cloud-env.mjs b/packages/quality/efficiency/scale/benchmark/scripts/provision-cloud-env.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/provision-cloud-env.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/provision-cloud-env.mjs diff --git a/packages/@n8n/benchmark/scripts/run-for-n8n-setup.mjs b/packages/quality/efficiency/scale/benchmark/scripts/run-for-n8n-setup.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/run-for-n8n-setup.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/run-for-n8n-setup.mjs diff --git a/packages/@n8n/benchmark/scripts/run-in-cloud.mjs b/packages/quality/efficiency/scale/benchmark/scripts/run-in-cloud.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/run-in-cloud.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/run-in-cloud.mjs diff --git a/packages/@n8n/benchmark/scripts/run-locally.mjs b/packages/quality/efficiency/scale/benchmark/scripts/run-locally.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/run-locally.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/run-locally.mjs diff --git a/packages/@n8n/benchmark/scripts/run.mjs b/packages/quality/efficiency/scale/benchmark/scripts/run.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/run.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/run.mjs diff --git a/packages/@n8n/benchmark/scripts/utils/flags.mjs b/packages/quality/efficiency/scale/benchmark/scripts/utils/flags.mjs similarity index 100% rename from packages/@n8n/benchmark/scripts/utils/flags.mjs rename to packages/quality/efficiency/scale/benchmark/scripts/utils/flags.mjs diff --git a/packages/@n8n/benchmark/src/commands/list.ts b/packages/quality/efficiency/scale/benchmark/src/commands/list.ts similarity index 100% rename from packages/@n8n/benchmark/src/commands/list.ts rename to packages/quality/efficiency/scale/benchmark/src/commands/list.ts diff --git a/packages/@n8n/benchmark/src/commands/run.ts b/packages/quality/efficiency/scale/benchmark/src/commands/run.ts similarity index 100% rename from packages/@n8n/benchmark/src/commands/run.ts rename to packages/quality/efficiency/scale/benchmark/src/commands/run.ts diff --git a/packages/@n8n/benchmark/src/config/common-flags.ts b/packages/quality/efficiency/scale/benchmark/src/config/common-flags.ts similarity index 100% rename from packages/@n8n/benchmark/src/config/common-flags.ts rename to packages/quality/efficiency/scale/benchmark/src/config/common-flags.ts diff --git a/packages/@n8n/benchmark/src/n8n-api-client/authenticated-n8n-api-client.ts b/packages/quality/efficiency/scale/benchmark/src/n8n-api-client/authenticated-n8n-api-client.ts similarity index 100% rename from packages/@n8n/benchmark/src/n8n-api-client/authenticated-n8n-api-client.ts rename to packages/quality/efficiency/scale/benchmark/src/n8n-api-client/authenticated-n8n-api-client.ts diff --git a/packages/@n8n/benchmark/src/n8n-api-client/credentials-api-client.ts b/packages/quality/efficiency/scale/benchmark/src/n8n-api-client/credentials-api-client.ts similarity index 100% rename from packages/@n8n/benchmark/src/n8n-api-client/credentials-api-client.ts rename to packages/quality/efficiency/scale/benchmark/src/n8n-api-client/credentials-api-client.ts diff --git a/packages/@n8n/benchmark/src/n8n-api-client/data-table-api-client.ts b/packages/quality/efficiency/scale/benchmark/src/n8n-api-client/data-table-api-client.ts similarity index 100% rename from packages/@n8n/benchmark/src/n8n-api-client/data-table-api-client.ts rename to packages/quality/efficiency/scale/benchmark/src/n8n-api-client/data-table-api-client.ts diff --git a/packages/@n8n/benchmark/src/n8n-api-client/n8n-api-client.ts b/packages/quality/efficiency/scale/benchmark/src/n8n-api-client/n8n-api-client.ts similarity index 100% rename from packages/@n8n/benchmark/src/n8n-api-client/n8n-api-client.ts rename to packages/quality/efficiency/scale/benchmark/src/n8n-api-client/n8n-api-client.ts diff --git a/packages/@n8n/benchmark/src/n8n-api-client/n8n-api-client.types.ts b/packages/quality/efficiency/scale/benchmark/src/n8n-api-client/n8n-api-client.types.ts similarity index 100% rename from packages/@n8n/benchmark/src/n8n-api-client/n8n-api-client.types.ts rename to packages/quality/efficiency/scale/benchmark/src/n8n-api-client/n8n-api-client.types.ts diff --git a/packages/@n8n/benchmark/src/n8n-api-client/project-api-client.ts b/packages/quality/efficiency/scale/benchmark/src/n8n-api-client/project-api-client.ts similarity index 100% rename from packages/@n8n/benchmark/src/n8n-api-client/project-api-client.ts rename to packages/quality/efficiency/scale/benchmark/src/n8n-api-client/project-api-client.ts diff --git a/packages/@n8n/benchmark/src/n8n-api-client/workflows-api-client.ts b/packages/quality/efficiency/scale/benchmark/src/n8n-api-client/workflows-api-client.ts similarity index 100% rename from packages/@n8n/benchmark/src/n8n-api-client/workflows-api-client.ts rename to packages/quality/efficiency/scale/benchmark/src/n8n-api-client/workflows-api-client.ts diff --git a/packages/@n8n/benchmark/src/scenario/scenario-data-loader.ts b/packages/quality/efficiency/scale/benchmark/src/scenario/scenario-data-loader.ts similarity index 100% rename from packages/@n8n/benchmark/src/scenario/scenario-data-loader.ts rename to packages/quality/efficiency/scale/benchmark/src/scenario/scenario-data-loader.ts diff --git a/packages/@n8n/benchmark/src/scenario/scenario-loader.ts b/packages/quality/efficiency/scale/benchmark/src/scenario/scenario-loader.ts similarity index 100% rename from packages/@n8n/benchmark/src/scenario/scenario-loader.ts rename to packages/quality/efficiency/scale/benchmark/src/scenario/scenario-loader.ts diff --git a/packages/@n8n/benchmark/src/test-execution/app-metrics-poller.ts b/packages/quality/efficiency/scale/benchmark/src/test-execution/app-metrics-poller.ts similarity index 100% rename from packages/@n8n/benchmark/src/test-execution/app-metrics-poller.ts rename to packages/quality/efficiency/scale/benchmark/src/test-execution/app-metrics-poller.ts diff --git a/packages/@n8n/benchmark/src/test-execution/k6-executor.ts b/packages/quality/efficiency/scale/benchmark/src/test-execution/k6-executor.ts similarity index 100% rename from packages/@n8n/benchmark/src/test-execution/k6-executor.ts rename to packages/quality/efficiency/scale/benchmark/src/test-execution/k6-executor.ts diff --git a/packages/@n8n/benchmark/src/test-execution/k6-summary.ts b/packages/quality/efficiency/scale/benchmark/src/test-execution/k6-summary.ts similarity index 100% rename from packages/@n8n/benchmark/src/test-execution/k6-summary.ts rename to packages/quality/efficiency/scale/benchmark/src/test-execution/k6-summary.ts diff --git a/packages/@n8n/benchmark/src/test-execution/prometheus-metrics-parser.ts b/packages/quality/efficiency/scale/benchmark/src/test-execution/prometheus-metrics-parser.ts similarity index 100% rename from packages/@n8n/benchmark/src/test-execution/prometheus-metrics-parser.ts rename to packages/quality/efficiency/scale/benchmark/src/test-execution/prometheus-metrics-parser.ts diff --git a/packages/@n8n/benchmark/src/test-execution/scenario-data-importer.ts b/packages/quality/efficiency/scale/benchmark/src/test-execution/scenario-data-importer.ts similarity index 100% rename from packages/@n8n/benchmark/src/test-execution/scenario-data-importer.ts rename to packages/quality/efficiency/scale/benchmark/src/test-execution/scenario-data-importer.ts diff --git a/packages/@n8n/benchmark/src/test-execution/scenario-runner.ts b/packages/quality/efficiency/scale/benchmark/src/test-execution/scenario-runner.ts similarity index 100% rename from packages/@n8n/benchmark/src/test-execution/scenario-runner.ts rename to packages/quality/efficiency/scale/benchmark/src/test-execution/scenario-runner.ts diff --git a/packages/@n8n/benchmark/src/test-execution/test-report.ts b/packages/quality/efficiency/scale/benchmark/src/test-execution/test-report.ts similarity index 100% rename from packages/@n8n/benchmark/src/test-execution/test-report.ts rename to packages/quality/efficiency/scale/benchmark/src/test-execution/test-report.ts diff --git a/packages/@n8n/benchmark/src/types/scenario.ts b/packages/quality/efficiency/scale/benchmark/src/types/scenario.ts similarity index 100% rename from packages/@n8n/benchmark/src/types/scenario.ts rename to packages/quality/efficiency/scale/benchmark/src/types/scenario.ts diff --git a/packages/@n8n/benchmark/tsconfig.build.json b/packages/quality/efficiency/scale/benchmark/tsconfig.build.json similarity index 100% rename from packages/@n8n/benchmark/tsconfig.build.json rename to packages/quality/efficiency/scale/benchmark/tsconfig.build.json diff --git a/packages/@n8n/benchmark/tsconfig.json b/packages/quality/efficiency/scale/benchmark/tsconfig.json similarity index 100% rename from packages/@n8n/benchmark/tsconfig.json rename to packages/quality/efficiency/scale/benchmark/tsconfig.json diff --git a/packages/quality/environments/AGENTS.md b/packages/quality/environments/AGENTS.md new file mode 100644 index 00000000000..0e4fea06511 --- /dev/null +++ b/packages/quality/environments/AGENTS.md @@ -0,0 +1,7 @@ +# Test environment instructions + +Read the parent [quality instructions](../AGENTS.md) before you change a test environment. + +- Define test services and deployment stacks in `containers/`. +- Update CI path filters when you move a service or stack file. +- Check test-impact broad selection for changes that affect the n8n runtime. diff --git a/packages/quality/environments/README.md b/packages/quality/environments/README.md new file mode 100644 index 00000000000..1a720661066 --- /dev/null +++ b/packages/quality/environments/README.md @@ -0,0 +1,5 @@ +# Test environments + +Use the [container stack](containers/README.md) to provide databases, queues, services, and deployment topologies for tests. + +Use the [Playwright harness](../testing/README.md) to run tests against these environments. diff --git a/packages/testing/containers/HELM-TESTING.md b/packages/quality/environments/containers/HELM-TESTING.md similarity index 99% rename from packages/testing/containers/HELM-TESTING.md rename to packages/quality/environments/containers/HELM-TESTING.md index 360e6f1bb91..9b74492505a 100644 --- a/packages/testing/containers/HELM-TESTING.md +++ b/packages/quality/environments/containers/HELM-TESTING.md @@ -59,7 +59,7 @@ Playwright ──── http://localhost: ──→ NodePort ── pnpm build:docker # 2. Start the Helm stack (takes ~60-120s) -cd packages/testing/containers +cd packages/quality/environments/containers pnpm stack:helm # 3. In another terminal, use the printed KUBECONFIG for debugging diff --git a/packages/testing/containers/README.md b/packages/quality/environments/containers/README.md similarity index 100% rename from packages/testing/containers/README.md rename to packages/quality/environments/containers/README.md diff --git a/packages/testing/containers/docker-image-not-found-error.ts b/packages/quality/environments/containers/docker-image-not-found-error.ts similarity index 100% rename from packages/testing/containers/docker-image-not-found-error.ts rename to packages/quality/environments/containers/docker-image-not-found-error.ts diff --git a/packages/testing/containers/dockerfiles/kent/Dockerfile b/packages/quality/environments/containers/dockerfiles/kent/Dockerfile similarity index 100% rename from packages/testing/containers/dockerfiles/kent/Dockerfile rename to packages/quality/environments/containers/dockerfiles/kent/Dockerfile diff --git a/packages/testing/containers/dockerfiles/kent/kent_cors.py b/packages/quality/environments/containers/dockerfiles/kent/kent_cors.py similarity index 100% rename from packages/testing/containers/dockerfiles/kent/kent_cors.py rename to packages/quality/environments/containers/dockerfiles/kent/kent_cors.py diff --git a/packages/testing/containers/eslint.config.mjs b/packages/quality/environments/containers/eslint.config.mjs similarity index 100% rename from packages/testing/containers/eslint.config.mjs rename to packages/quality/environments/containers/eslint.config.mjs diff --git a/packages/testing/containers/helm-stack.ts b/packages/quality/environments/containers/helm-stack.ts similarity index 100% rename from packages/testing/containers/helm-stack.ts rename to packages/quality/environments/containers/helm-stack.ts diff --git a/packages/testing/containers/helm-start-stack.ts b/packages/quality/environments/containers/helm-start-stack.ts similarity index 100% rename from packages/testing/containers/helm-start-stack.ts rename to packages/quality/environments/containers/helm-start-stack.ts diff --git a/packages/testing/containers/helpers/utils.ts b/packages/quality/environments/containers/helpers/utils.ts similarity index 100% rename from packages/testing/containers/helpers/utils.ts rename to packages/quality/environments/containers/helpers/utils.ts diff --git a/packages/testing/containers/index.ts b/packages/quality/environments/containers/index.ts similarity index 100% rename from packages/testing/containers/index.ts rename to packages/quality/environments/containers/index.ts diff --git a/packages/testing/containers/n8n-image-pull-policy.ts b/packages/quality/environments/containers/n8n-image-pull-policy.ts similarity index 100% rename from packages/testing/containers/n8n-image-pull-policy.ts rename to packages/quality/environments/containers/n8n-image-pull-policy.ts diff --git a/packages/testing/containers/n8n-start-stack.ts b/packages/quality/environments/containers/n8n-start-stack.ts similarity index 100% rename from packages/testing/containers/n8n-start-stack.ts rename to packages/quality/environments/containers/n8n-start-stack.ts diff --git a/packages/testing/containers/network-stabilization.ts b/packages/quality/environments/containers/network-stabilization.ts similarity index 100% rename from packages/testing/containers/network-stabilization.ts rename to packages/quality/environments/containers/network-stabilization.ts diff --git a/packages/testing/containers/oxlint.config.mts b/packages/quality/environments/containers/oxlint.config.mts similarity index 100% rename from packages/testing/containers/oxlint.config.mts rename to packages/quality/environments/containers/oxlint.config.mts diff --git a/packages/testing/containers/package.json b/packages/quality/environments/containers/package.json similarity index 97% rename from packages/testing/containers/package.json rename to packages/quality/environments/containers/package.json index 0c593e8d396..b87097208a5 100644 --- a/packages/testing/containers/package.json +++ b/packages/quality/environments/containers/package.json @@ -21,7 +21,7 @@ "stack:helm": "TESTCONTAINERS_RYUK_DISABLED=true tsx ./helm-start-stack.ts", "stack:helm:clean": "docker ps -aq --filter 'label=n8n.helm=true' | xargs -r docker rm -f 2>/dev/null; rm -f ~/.kube/n8n-helm-*.yaml; kubectl config delete-context n8n-helm-standalone 2>/dev/null; kubectl config delete-context n8n-helm-queue 2>/dev/null; true", "services": "tsx ./n8n-start-stack.ts --services-only", - "services:clean": "docker ps -aq --filter 'name=n8n-svc-*' | xargs docker rm -f 2>/dev/null; rm -f ../../../packages/cli/bin/.env", + "services:clean": "docker ps -aq --filter 'name=n8n-svc-*' | xargs docker rm -f 2>/dev/null; rm -f ../../../../packages/cli/bin/.env", "test": "vitest run", "test:unit": "vitest run", "typecheck": "tsc --noEmit", diff --git a/packages/testing/containers/performance-plans.ts b/packages/quality/environments/containers/performance-plans.ts similarity index 100% rename from packages/testing/containers/performance-plans.ts rename to packages/quality/environments/containers/performance-plans.ts diff --git a/packages/testing/containers/postgres-versions.json b/packages/quality/environments/containers/postgres-versions.json similarity index 100% rename from packages/testing/containers/postgres-versions.json rename to packages/quality/environments/containers/postgres-versions.json diff --git a/packages/testing/containers/pull-test-images.ts b/packages/quality/environments/containers/pull-test-images.ts similarity index 100% rename from packages/testing/containers/pull-test-images.ts rename to packages/quality/environments/containers/pull-test-images.ts diff --git a/packages/testing/containers/resource-tracker.ts b/packages/quality/environments/containers/resource-tracker.ts similarity index 100% rename from packages/testing/containers/resource-tracker.ts rename to packages/quality/environments/containers/resource-tracker.ts diff --git a/packages/testing/containers/service-stack.ts b/packages/quality/environments/containers/service-stack.ts similarity index 97% rename from packages/testing/containers/service-stack.ts rename to packages/quality/environments/containers/service-stack.ts index 441fb2f8671..61b7e545cc1 100644 --- a/packages/testing/containers/service-stack.ts +++ b/packages/quality/environments/containers/service-stack.ts @@ -69,7 +69,7 @@ export function collectExternalEnv( * n8n, and dotenv loads from cwd. */ export function devEnvFilePath(): string { - return resolve(__dirname, '../../..', 'packages/cli/bin/.env'); + return resolve(__dirname, '../../../..', 'packages/cli/bin/.env'); } /** diff --git a/packages/testing/containers/services/cadvisor.ts b/packages/quality/environments/containers/services/cadvisor.ts similarity index 100% rename from packages/testing/containers/services/cadvisor.ts rename to packages/quality/environments/containers/services/cadvisor.ts diff --git a/packages/testing/containers/services/cloudflared.ts b/packages/quality/environments/containers/services/cloudflared.ts similarity index 100% rename from packages/testing/containers/services/cloudflared.ts rename to packages/quality/environments/containers/services/cloudflared.ts diff --git a/packages/testing/containers/services/engine-postgres.ts b/packages/quality/environments/containers/services/engine-postgres.ts similarity index 100% rename from packages/testing/containers/services/engine-postgres.ts rename to packages/quality/environments/containers/services/engine-postgres.ts diff --git a/packages/testing/containers/services/engine.ts b/packages/quality/environments/containers/services/engine.ts similarity index 100% rename from packages/testing/containers/services/engine.ts rename to packages/quality/environments/containers/services/engine.ts diff --git a/packages/testing/containers/services/gitea.ts b/packages/quality/environments/containers/services/gitea.ts similarity index 100% rename from packages/testing/containers/services/gitea.ts rename to packages/quality/environments/containers/services/gitea.ts diff --git a/packages/testing/containers/services/kafka.ts b/packages/quality/environments/containers/services/kafka.ts similarity index 100% rename from packages/testing/containers/services/kafka.ts rename to packages/quality/environments/containers/services/kafka.ts diff --git a/packages/testing/containers/services/kent.ts b/packages/quality/environments/containers/services/kent.ts similarity index 100% rename from packages/testing/containers/services/kent.ts rename to packages/quality/environments/containers/services/kent.ts diff --git a/packages/testing/containers/services/keycloak.ts b/packages/quality/environments/containers/services/keycloak.ts similarity index 100% rename from packages/testing/containers/services/keycloak.ts rename to packages/quality/environments/containers/services/keycloak.ts diff --git a/packages/testing/containers/services/load-balancer.ts b/packages/quality/environments/containers/services/load-balancer.ts similarity index 100% rename from packages/testing/containers/services/load-balancer.ts rename to packages/quality/environments/containers/services/load-balancer.ts diff --git a/packages/testing/containers/services/localstack.ts b/packages/quality/environments/containers/services/localstack.ts similarity index 100% rename from packages/testing/containers/services/localstack.ts rename to packages/quality/environments/containers/services/localstack.ts diff --git a/packages/testing/containers/services/mailpit.ts b/packages/quality/environments/containers/services/mailpit.ts similarity index 100% rename from packages/testing/containers/services/mailpit.ts rename to packages/quality/environments/containers/services/mailpit.ts diff --git a/packages/testing/containers/services/mysql.ts b/packages/quality/environments/containers/services/mysql.ts similarity index 100% rename from packages/testing/containers/services/mysql.ts rename to packages/quality/environments/containers/services/mysql.ts diff --git a/packages/testing/containers/services/n8n.ts b/packages/quality/environments/containers/services/n8n.ts similarity index 100% rename from packages/testing/containers/services/n8n.ts rename to packages/quality/environments/containers/services/n8n.ts diff --git a/packages/testing/containers/services/ngrok.ts b/packages/quality/environments/containers/services/ngrok.ts similarity index 100% rename from packages/testing/containers/services/ngrok.ts rename to packages/quality/environments/containers/services/ngrok.ts diff --git a/packages/testing/containers/services/npm-registry.ts b/packages/quality/environments/containers/services/npm-registry.ts similarity index 100% rename from packages/testing/containers/services/npm-registry.ts rename to packages/quality/environments/containers/services/npm-registry.ts diff --git a/packages/testing/containers/services/observability.ts b/packages/quality/environments/containers/services/observability.ts similarity index 100% rename from packages/testing/containers/services/observability.ts rename to packages/quality/environments/containers/services/observability.ts diff --git a/packages/testing/containers/services/postgres-exporter.ts b/packages/quality/environments/containers/services/postgres-exporter.ts similarity index 100% rename from packages/testing/containers/services/postgres-exporter.ts rename to packages/quality/environments/containers/services/postgres-exporter.ts diff --git a/packages/testing/containers/services/postgres.ts b/packages/quality/environments/containers/services/postgres.ts similarity index 100% rename from packages/testing/containers/services/postgres.ts rename to packages/quality/environments/containers/services/postgres.ts diff --git a/packages/testing/containers/services/proxy.ts b/packages/quality/environments/containers/services/proxy.ts similarity index 100% rename from packages/testing/containers/services/proxy.ts rename to packages/quality/environments/containers/services/proxy.ts diff --git a/packages/testing/containers/services/redis.ts b/packages/quality/environments/containers/services/redis.ts similarity index 100% rename from packages/testing/containers/services/redis.ts rename to packages/quality/environments/containers/services/redis.ts diff --git a/packages/testing/containers/services/registry.ts b/packages/quality/environments/containers/services/registry.ts similarity index 100% rename from packages/testing/containers/services/registry.ts rename to packages/quality/environments/containers/services/registry.ts diff --git a/packages/testing/containers/services/sandbox.ts b/packages/quality/environments/containers/services/sandbox.ts similarity index 100% rename from packages/testing/containers/services/sandbox.ts rename to packages/quality/environments/containers/services/sandbox.ts diff --git a/packages/testing/containers/services/task-runner.ts b/packages/quality/environments/containers/services/task-runner.ts similarity index 100% rename from packages/testing/containers/services/task-runner.ts rename to packages/quality/environments/containers/services/task-runner.ts diff --git a/packages/testing/containers/services/tracing.ts b/packages/quality/environments/containers/services/tracing.ts similarity index 100% rename from packages/testing/containers/services/tracing.ts rename to packages/quality/environments/containers/services/tracing.ts diff --git a/packages/testing/containers/services/types.ts b/packages/quality/environments/containers/services/types.ts similarity index 100% rename from packages/testing/containers/services/types.ts rename to packages/quality/environments/containers/services/types.ts diff --git a/packages/testing/containers/services/vector.ts b/packages/quality/environments/containers/services/vector.ts similarity index 100% rename from packages/testing/containers/services/vector.ts rename to packages/quality/environments/containers/services/vector.ts diff --git a/packages/testing/containers/services/victoria-logs.ts b/packages/quality/environments/containers/services/victoria-logs.ts similarity index 100% rename from packages/testing/containers/services/victoria-logs.ts rename to packages/quality/environments/containers/services/victoria-logs.ts diff --git a/packages/testing/containers/services/victoria-metrics.ts b/packages/quality/environments/containers/services/victoria-metrics.ts similarity index 100% rename from packages/testing/containers/services/victoria-metrics.ts rename to packages/quality/environments/containers/services/victoria-metrics.ts diff --git a/packages/testing/containers/stack.ts b/packages/quality/environments/containers/stack.ts similarity index 100% rename from packages/testing/containers/stack.ts rename to packages/quality/environments/containers/stack.ts diff --git a/packages/testing/containers/startup-deadline.ts b/packages/quality/environments/containers/startup-deadline.ts similarity index 100% rename from packages/testing/containers/startup-deadline.ts rename to packages/quality/environments/containers/startup-deadline.ts diff --git a/packages/testing/containers/startup-diagnostics.ts b/packages/quality/environments/containers/startup-diagnostics.ts similarity index 100% rename from packages/testing/containers/startup-diagnostics.ts rename to packages/quality/environments/containers/startup-diagnostics.ts diff --git a/packages/testing/containers/telemetry.ts b/packages/quality/environments/containers/telemetry.ts similarity index 100% rename from packages/testing/containers/telemetry.ts rename to packages/quality/environments/containers/telemetry.ts diff --git a/packages/testing/containers/test-containers.ts b/packages/quality/environments/containers/test-containers.ts similarity index 100% rename from packages/testing/containers/test-containers.ts rename to packages/quality/environments/containers/test-containers.ts diff --git a/packages/testing/containers/tests/engine.test.ts b/packages/quality/environments/containers/tests/engine.test.ts similarity index 100% rename from packages/testing/containers/tests/engine.test.ts rename to packages/quality/environments/containers/tests/engine.test.ts diff --git a/packages/testing/containers/tests/npm-registry.test.ts b/packages/quality/environments/containers/tests/npm-registry.test.ts similarity index 100% rename from packages/testing/containers/tests/npm-registry.test.ts rename to packages/quality/environments/containers/tests/npm-registry.test.ts diff --git a/packages/testing/containers/tests/postgres-helper.test.ts b/packages/quality/environments/containers/tests/postgres-helper.test.ts similarity index 100% rename from packages/testing/containers/tests/postgres-helper.test.ts rename to packages/quality/environments/containers/tests/postgres-helper.test.ts diff --git a/packages/testing/containers/tests/resource-tracker.test.ts b/packages/quality/environments/containers/tests/resource-tracker.test.ts similarity index 100% rename from packages/testing/containers/tests/resource-tracker.test.ts rename to packages/quality/environments/containers/tests/resource-tracker.test.ts diff --git a/packages/testing/containers/tests/startup-deadline.test.ts b/packages/quality/environments/containers/tests/startup-deadline.test.ts similarity index 100% rename from packages/testing/containers/tests/startup-deadline.test.ts rename to packages/quality/environments/containers/tests/startup-deadline.test.ts diff --git a/packages/testing/containers/tests/telemetry-integration.test.ts b/packages/quality/environments/containers/tests/telemetry-integration.test.ts similarity index 100% rename from packages/testing/containers/tests/telemetry-integration.test.ts rename to packages/quality/environments/containers/tests/telemetry-integration.test.ts diff --git a/packages/testing/containers/tests/telemetry-support.ts b/packages/quality/environments/containers/tests/telemetry-support.ts similarity index 100% rename from packages/testing/containers/tests/telemetry-support.ts rename to packages/quality/environments/containers/tests/telemetry-support.ts diff --git a/packages/testing/containers/tests/telemetry.test.ts b/packages/quality/environments/containers/tests/telemetry.test.ts similarity index 100% rename from packages/testing/containers/tests/telemetry.test.ts rename to packages/quality/environments/containers/tests/telemetry.test.ts diff --git a/packages/testing/containers/tsconfig.json b/packages/quality/environments/containers/tsconfig.json similarity index 85% rename from packages/testing/containers/tsconfig.json rename to packages/quality/environments/containers/tsconfig.json index 8fdade1b009..e9476384105 100644 --- a/packages/testing/containers/tsconfig.json +++ b/packages/quality/environments/containers/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../../tsconfig.json", "compilerOptions": { "sourceMap": false, "declaration": false, diff --git a/packages/testing/containers/vitest.config.ts b/packages/quality/environments/containers/vitest.config.ts similarity index 100% rename from packages/testing/containers/vitest.config.ts rename to packages/quality/environments/containers/vitest.config.ts diff --git a/packages/quality/policy/AGENTS.md b/packages/quality/policy/AGENTS.md new file mode 100644 index 00000000000..e9521389f5f --- /dev/null +++ b/packages/quality/policy/AGENTS.md @@ -0,0 +1,7 @@ +# Repository policy instructions + +Read the parent [quality instructions](../AGENTS.md) before you change a policy package. + +- Put reusable rule execution logic in `rules-engine/`. Keep repository-specific checks in `code-health/`. +- Keep path-based diagnostics, baselines, and CI commands aligned with package moves. +- Run the owning package tests, lint, and typecheck after a policy change. diff --git a/packages/quality/policy/README.md b/packages/quality/policy/README.md new file mode 100644 index 00000000000..0224a594acf --- /dev/null +++ b/packages/quality/policy/README.md @@ -0,0 +1,5 @@ +# Repository policy + +Use [code health](code-health/README.md) for repository-wide checks. It uses the [rules engine](rules-engine/README.md) for rule execution and reports. + +The [Playwright Janitor](../testing/janitor/README.md) uses the same rules engine to check test architecture. diff --git a/packages/testing/code-health/README.md b/packages/quality/policy/code-health/README.md similarity index 82% rename from packages/testing/code-health/README.md rename to packages/quality/policy/code-health/README.md index 14e5b5f7b9b..789438eb6c5 100644 --- a/packages/testing/code-health/README.md +++ b/packages/quality/policy/code-health/README.md @@ -18,16 +18,16 @@ Scans repository files for structural and dependency-policy violations: pnpm --filter=@n8n/code-health build # Run analysis (uses baseline if present) -node packages/testing/code-health/dist/cli.js +node packages/quality/policy/code-health/dist/cli.js # Show all violations (ignore baseline) -node packages/testing/code-health/dist/cli.js --ignore-baseline +node packages/quality/policy/code-health/dist/cli.js --ignore-baseline # Run a specific rule -node packages/testing/code-health/dist/cli.js --rule=catalog-violations +node packages/quality/policy/code-health/dist/cli.js --rule=catalog-violations # List available rules -node packages/testing/code-health/dist/cli.js rules +node packages/quality/policy/code-health/dist/cli.js rules ``` ## Baseline @@ -36,7 +36,7 @@ The baseline (`.code-health-baseline.json` at repo root) snapshots current viola ```bash # Generate/update baseline -node packages/testing/code-health/dist/cli.js baseline +node packages/quality/policy/code-health/dist/cli.js baseline # Commit it git add .code-health-baseline.json @@ -66,16 +66,16 @@ Separate subcommands (not rules) verify that the curated single-instance librari ```bash # Verify an already-installed closure (e.g. a pruned production tree) -pnpm --dir packages/testing/code-health exec tsx src/cli.ts verify-closure +pnpm --dir packages/quality/policy/code-health exec tsx src/cli.ts verify-closure # Reproduce the `npm install` graph of published tarballs and verify that -pnpm --dir packages/testing/code-health exec tsx src/cli.ts verify-npm-install ... +pnpm --dir packages/quality/policy/code-health exec tsx src/cli.ts verify-npm-install ... # Scopes CI uses: packages changed since a ref, or every publishable package. # `--report-only` downgrades a finding to a warning and exits 0 (what CI passes today, while the # curated-lib backlog is worked down). -pnpm --dir packages/testing/code-health exec tsx src/cli.ts verify-npm-install --changed=origin/master -pnpm --dir packages/testing/code-health exec tsx src/cli.ts verify-npm-install --all --report-only +pnpm --dir packages/quality/policy/code-health exec tsx src/cli.ts verify-npm-install --changed=origin/master +pnpm --dir packages/quality/policy/code-health exec tsx src/cli.ts verify-npm-install --all --report-only ``` `verify-npm-install` packs each target with `pnpm pack` and installs it with npm, because root diff --git a/packages/testing/code-health/eslint.config.mjs b/packages/quality/policy/code-health/eslint.config.mjs similarity index 100% rename from packages/testing/code-health/eslint.config.mjs rename to packages/quality/policy/code-health/eslint.config.mjs diff --git a/packages/testing/code-health/oxlint.config.mts b/packages/quality/policy/code-health/oxlint.config.mts similarity index 100% rename from packages/testing/code-health/oxlint.config.mts rename to packages/quality/policy/code-health/oxlint.config.mts diff --git a/packages/testing/code-health/package.json b/packages/quality/policy/code-health/package.json similarity index 100% rename from packages/testing/code-health/package.json rename to packages/quality/policy/code-health/package.json diff --git a/packages/testing/code-health/src/cli.ts b/packages/quality/policy/code-health/src/cli.ts similarity index 100% rename from packages/testing/code-health/src/cli.ts rename to packages/quality/policy/code-health/src/cli.ts diff --git a/packages/testing/code-health/src/cli/arg-parser.test.ts b/packages/quality/policy/code-health/src/cli/arg-parser.test.ts similarity index 100% rename from packages/testing/code-health/src/cli/arg-parser.test.ts rename to packages/quality/policy/code-health/src/cli/arg-parser.test.ts diff --git a/packages/testing/code-health/src/cli/arg-parser.ts b/packages/quality/policy/code-health/src/cli/arg-parser.ts similarity index 100% rename from packages/testing/code-health/src/cli/arg-parser.ts rename to packages/quality/policy/code-health/src/cli/arg-parser.ts diff --git a/packages/testing/code-health/src/context.ts b/packages/quality/policy/code-health/src/context.ts similarity index 100% rename from packages/testing/code-health/src/context.ts rename to packages/quality/policy/code-health/src/context.ts diff --git a/packages/testing/code-health/src/index.ts b/packages/quality/policy/code-health/src/index.ts similarity index 100% rename from packages/testing/code-health/src/index.ts rename to packages/quality/policy/code-health/src/index.ts diff --git a/packages/testing/code-health/src/rules/adr-conventions-files.test.ts b/packages/quality/policy/code-health/src/rules/adr-conventions-files.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/adr-conventions-files.test.ts rename to packages/quality/policy/code-health/src/rules/adr-conventions-files.test.ts diff --git a/packages/testing/code-health/src/rules/adr-conventions-files.ts b/packages/quality/policy/code-health/src/rules/adr-conventions-files.ts similarity index 100% rename from packages/testing/code-health/src/rules/adr-conventions-files.ts rename to packages/quality/policy/code-health/src/rules/adr-conventions-files.ts diff --git a/packages/testing/code-health/src/rules/adr-conventions-markdown.test.ts b/packages/quality/policy/code-health/src/rules/adr-conventions-markdown.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/adr-conventions-markdown.test.ts rename to packages/quality/policy/code-health/src/rules/adr-conventions-markdown.test.ts diff --git a/packages/testing/code-health/src/rules/adr-conventions-markdown.ts b/packages/quality/policy/code-health/src/rules/adr-conventions-markdown.ts similarity index 100% rename from packages/testing/code-health/src/rules/adr-conventions-markdown.ts rename to packages/quality/policy/code-health/src/rules/adr-conventions-markdown.ts diff --git a/packages/testing/code-health/src/rules/adr-conventions.rule.test.ts b/packages/quality/policy/code-health/src/rules/adr-conventions.rule.test.ts similarity index 99% rename from packages/testing/code-health/src/rules/adr-conventions.rule.test.ts rename to packages/quality/policy/code-health/src/rules/adr-conventions.rule.test.ts index 40120fced73..71a94076a60 100644 --- a/packages/testing/code-health/src/rules/adr-conventions.rule.test.ts +++ b/packages/quality/policy/code-health/src/rules/adr-conventions.rule.test.ts @@ -369,7 +369,7 @@ describe('AdrConventionsRule', () => { expect.arrayContaining([ expect.objectContaining({ message: expect.stringContaining('Decision Owner'), - suggestion: expect.stringContaining('packages/testing/code-health/src/index.ts'), + suggestion: expect.stringContaining('packages/quality/policy/code-health/src/index.ts'), }), ]), ); diff --git a/packages/testing/code-health/src/rules/adr-conventions.rule.ts b/packages/quality/policy/code-health/src/rules/adr-conventions.rule.ts similarity index 99% rename from packages/testing/code-health/src/rules/adr-conventions.rule.ts rename to packages/quality/policy/code-health/src/rules/adr-conventions.rule.ts index b829fd4e431..b05f4a244b9 100644 --- a/packages/testing/code-health/src/rules/adr-conventions.rule.ts +++ b/packages/quality/policy/code-health/src/rules/adr-conventions.rule.ts @@ -250,7 +250,7 @@ export class AdrConventionsRule extends BaseRule { lineForField(metadata, 'Decision Owner'), 1, `Decision Owner must be one of: ${[...owners].join(', ')}.`, - 'If your team is missing, add it to allowedOwners in packages/testing/code-health/src/index.ts.', + 'If your team is missing, add it to allowedOwners in packages/quality/policy/code-health/src/index.ts.', ), ); } diff --git a/packages/testing/code-health/src/rules/catalog-violations.rule.test.ts b/packages/quality/policy/code-health/src/rules/catalog-violations.rule.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/catalog-violations.rule.test.ts rename to packages/quality/policy/code-health/src/rules/catalog-violations.rule.test.ts diff --git a/packages/testing/code-health/src/rules/catalog-violations.rule.ts b/packages/quality/policy/code-health/src/rules/catalog-violations.rule.ts similarity index 100% rename from packages/testing/code-health/src/rules/catalog-violations.rule.ts rename to packages/quality/policy/code-health/src/rules/catalog-violations.rule.ts diff --git a/packages/testing/code-health/src/rules/encryption-boundary.rule.test.ts b/packages/quality/policy/code-health/src/rules/encryption-boundary.rule.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/encryption-boundary.rule.test.ts rename to packages/quality/policy/code-health/src/rules/encryption-boundary.rule.test.ts diff --git a/packages/testing/code-health/src/rules/encryption-boundary.rule.ts b/packages/quality/policy/code-health/src/rules/encryption-boundary.rule.ts similarity index 100% rename from packages/testing/code-health/src/rules/encryption-boundary.rule.ts rename to packages/quality/policy/code-health/src/rules/encryption-boundary.rule.ts diff --git a/packages/testing/code-health/src/rules/endpoint-scope-coverage.rule.test.ts b/packages/quality/policy/code-health/src/rules/endpoint-scope-coverage.rule.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/endpoint-scope-coverage.rule.test.ts rename to packages/quality/policy/code-health/src/rules/endpoint-scope-coverage.rule.test.ts diff --git a/packages/testing/code-health/src/rules/endpoint-scope-coverage.rule.ts b/packages/quality/policy/code-health/src/rules/endpoint-scope-coverage.rule.ts similarity index 100% rename from packages/testing/code-health/src/rules/endpoint-scope-coverage.rule.ts rename to packages/quality/policy/code-health/src/rules/endpoint-scope-coverage.rule.ts diff --git a/packages/testing/code-health/src/rules/lint-config-layering.rule.test.ts b/packages/quality/policy/code-health/src/rules/lint-config-layering.rule.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/lint-config-layering.rule.test.ts rename to packages/quality/policy/code-health/src/rules/lint-config-layering.rule.test.ts diff --git a/packages/testing/code-health/src/rules/lint-config-layering.rule.ts b/packages/quality/policy/code-health/src/rules/lint-config-layering.rule.ts similarity index 100% rename from packages/testing/code-health/src/rules/lint-config-layering.rule.ts rename to packages/quality/policy/code-health/src/rules/lint-config-layering.rule.ts diff --git a/packages/testing/code-health/src/rules/migration-timestamp.rule.test.ts b/packages/quality/policy/code-health/src/rules/migration-timestamp.rule.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/migration-timestamp.rule.test.ts rename to packages/quality/policy/code-health/src/rules/migration-timestamp.rule.test.ts diff --git a/packages/testing/code-health/src/rules/migration-timestamp.rule.ts b/packages/quality/policy/code-health/src/rules/migration-timestamp.rule.ts similarity index 100% rename from packages/testing/code-health/src/rules/migration-timestamp.rule.ts rename to packages/quality/policy/code-health/src/rules/migration-timestamp.rule.ts diff --git a/packages/testing/code-health/src/rules/single-instance-libs.rule.test.ts b/packages/quality/policy/code-health/src/rules/single-instance-libs.rule.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/single-instance-libs.rule.test.ts rename to packages/quality/policy/code-health/src/rules/single-instance-libs.rule.test.ts diff --git a/packages/testing/code-health/src/rules/single-instance-libs.rule.ts b/packages/quality/policy/code-health/src/rules/single-instance-libs.rule.ts similarity index 97% rename from packages/testing/code-health/src/rules/single-instance-libs.rule.ts rename to packages/quality/policy/code-health/src/rules/single-instance-libs.rule.ts index 6152cc2a423..99fa059a326 100644 --- a/packages/testing/code-health/src/rules/single-instance-libs.rule.ts +++ b/packages/quality/policy/code-health/src/rules/single-instance-libs.rule.ts @@ -93,7 +93,7 @@ export class SingleInstanceLibsRule extends BaseRule { 1, 1, `"${packageName}" no longer declares "${lib}" as a peerDependency; it is a required single-instance peer, and dropping it lets consumers resolve a second physical copy at runtime.`, - `Restore the "${lib}" peerDependency (with "catalog:"), or — if the removal is intentional — update REQUIRED_CURATED_PEERS in packages/testing/code-health/src/single-instance/required-peers.ts.`, + `Restore the "${lib}" peerDependency (with "catalog:"), or — if the removal is intentional — update REQUIRED_CURATED_PEERS in packages/quality/policy/code-health/src/single-instance/required-peers.ts.`, ), ); } diff --git a/packages/testing/code-health/src/rules/single-instance-lockfile.rule.test.ts b/packages/quality/policy/code-health/src/rules/single-instance-lockfile.rule.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/single-instance-lockfile.rule.test.ts rename to packages/quality/policy/code-health/src/rules/single-instance-lockfile.rule.test.ts diff --git a/packages/testing/code-health/src/rules/single-instance-lockfile.rule.ts b/packages/quality/policy/code-health/src/rules/single-instance-lockfile.rule.ts similarity index 100% rename from packages/testing/code-health/src/rules/single-instance-lockfile.rule.ts rename to packages/quality/policy/code-health/src/rules/single-instance-lockfile.rule.ts diff --git a/packages/testing/code-health/src/rules/stale-overrides.rule.test.ts b/packages/quality/policy/code-health/src/rules/stale-overrides.rule.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/stale-overrides.rule.test.ts rename to packages/quality/policy/code-health/src/rules/stale-overrides.rule.test.ts diff --git a/packages/testing/code-health/src/rules/stale-overrides.rule.ts b/packages/quality/policy/code-health/src/rules/stale-overrides.rule.ts similarity index 100% rename from packages/testing/code-health/src/rules/stale-overrides.rule.ts rename to packages/quality/policy/code-health/src/rules/stale-overrides.rule.ts diff --git a/packages/testing/code-health/src/rules/subpath-purity.rule.test.ts b/packages/quality/policy/code-health/src/rules/subpath-purity.rule.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/subpath-purity.rule.test.ts rename to packages/quality/policy/code-health/src/rules/subpath-purity.rule.test.ts diff --git a/packages/testing/code-health/src/rules/subpath-purity.rule.ts b/packages/quality/policy/code-health/src/rules/subpath-purity.rule.ts similarity index 100% rename from packages/testing/code-health/src/rules/subpath-purity.rule.ts rename to packages/quality/policy/code-health/src/rules/subpath-purity.rule.ts diff --git a/packages/testing/code-health/src/rules/workflow-pr-target-safety.rule.test.ts b/packages/quality/policy/code-health/src/rules/workflow-pr-target-safety.rule.test.ts similarity index 100% rename from packages/testing/code-health/src/rules/workflow-pr-target-safety.rule.test.ts rename to packages/quality/policy/code-health/src/rules/workflow-pr-target-safety.rule.test.ts diff --git a/packages/testing/code-health/src/rules/workflow-pr-target-safety.rule.ts b/packages/quality/policy/code-health/src/rules/workflow-pr-target-safety.rule.ts similarity index 100% rename from packages/testing/code-health/src/rules/workflow-pr-target-safety.rule.ts rename to packages/quality/policy/code-health/src/rules/workflow-pr-target-safety.rule.ts diff --git a/packages/testing/code-health/src/single-instance/collect-copies.test.ts b/packages/quality/policy/code-health/src/single-instance/collect-copies.test.ts similarity index 100% rename from packages/testing/code-health/src/single-instance/collect-copies.test.ts rename to packages/quality/policy/code-health/src/single-instance/collect-copies.test.ts diff --git a/packages/testing/code-health/src/single-instance/collect-copies.ts b/packages/quality/policy/code-health/src/single-instance/collect-copies.ts similarity index 100% rename from packages/testing/code-health/src/single-instance/collect-copies.ts rename to packages/quality/policy/code-health/src/single-instance/collect-copies.ts diff --git a/packages/testing/code-health/src/single-instance/explain-duplicates.test.ts b/packages/quality/policy/code-health/src/single-instance/explain-duplicates.test.ts similarity index 100% rename from packages/testing/code-health/src/single-instance/explain-duplicates.test.ts rename to packages/quality/policy/code-health/src/single-instance/explain-duplicates.test.ts diff --git a/packages/testing/code-health/src/single-instance/explain-duplicates.ts b/packages/quality/policy/code-health/src/single-instance/explain-duplicates.ts similarity index 98% rename from packages/testing/code-health/src/single-instance/explain-duplicates.ts rename to packages/quality/policy/code-health/src/single-instance/explain-duplicates.ts index b36586940db..17329b92123 100644 --- a/packages/testing/code-health/src/single-instance/explain-duplicates.ts +++ b/packages/quality/policy/code-health/src/single-instance/explain-duplicates.ts @@ -210,8 +210,8 @@ export function describeFailureCount(count: number): string { : `${count} curated libraries each resolve to more than one physical copy`; } -const LIBS_FILE = 'packages/testing/code-health/src/single-instance/libs.ts'; -const ALLOWLIST_FILE = 'packages/testing/code-health/src/single-instance/collect-copies.ts'; +const LIBS_FILE = 'packages/quality/policy/code-health/src/single-instance/libs.ts'; +const ALLOWLIST_FILE = 'packages/quality/policy/code-health/src/single-instance/collect-copies.ts'; interface Requirer { lib: string; @@ -334,7 +334,7 @@ export function formatRemediation( ` ${ALLOWLIST_FILE} documenting why it is tolerated and what removes it.`, '', ' Reproduce locally (packs + installs the same closure, no CI needed):', - ' pnpm --dir packages/testing/code-health exec tsx src/cli.ts verify-npm-install ...', + ' pnpm --dir packages/quality/policy/code-health exec tsx src/cli.ts verify-npm-install ...', ' (or --changed=origin/master to reproduce the scope this job used)', ); if (scratch) { diff --git a/packages/testing/code-health/src/single-instance/libs.ts b/packages/quality/policy/code-health/src/single-instance/libs.ts similarity index 100% rename from packages/testing/code-health/src/single-instance/libs.ts rename to packages/quality/policy/code-health/src/single-instance/libs.ts diff --git a/packages/testing/code-health/src/single-instance/lockfile-splits.test.ts b/packages/quality/policy/code-health/src/single-instance/lockfile-splits.test.ts similarity index 100% rename from packages/testing/code-health/src/single-instance/lockfile-splits.test.ts rename to packages/quality/policy/code-health/src/single-instance/lockfile-splits.test.ts diff --git a/packages/testing/code-health/src/single-instance/lockfile-splits.ts b/packages/quality/policy/code-health/src/single-instance/lockfile-splits.ts similarity index 100% rename from packages/testing/code-health/src/single-instance/lockfile-splits.ts rename to packages/quality/policy/code-health/src/single-instance/lockfile-splits.ts diff --git a/packages/testing/code-health/src/single-instance/required-peers.ts b/packages/quality/policy/code-health/src/single-instance/required-peers.ts similarity index 100% rename from packages/testing/code-health/src/single-instance/required-peers.ts rename to packages/quality/policy/code-health/src/single-instance/required-peers.ts diff --git a/packages/testing/code-health/src/single-instance/verify-closure.test.ts b/packages/quality/policy/code-health/src/single-instance/verify-closure.test.ts similarity index 100% rename from packages/testing/code-health/src/single-instance/verify-closure.test.ts rename to packages/quality/policy/code-health/src/single-instance/verify-closure.test.ts diff --git a/packages/testing/code-health/src/single-instance/verify-closure.ts b/packages/quality/policy/code-health/src/single-instance/verify-closure.ts similarity index 100% rename from packages/testing/code-health/src/single-instance/verify-closure.ts rename to packages/quality/policy/code-health/src/single-instance/verify-closure.ts diff --git a/packages/testing/code-health/src/single-instance/verify-npm-install.test.ts b/packages/quality/policy/code-health/src/single-instance/verify-npm-install.test.ts similarity index 96% rename from packages/testing/code-health/src/single-instance/verify-npm-install.test.ts rename to packages/quality/policy/code-health/src/single-instance/verify-npm-install.test.ts index b798ad436e2..42e307e8b76 100644 --- a/packages/testing/code-health/src/single-instance/verify-npm-install.test.ts +++ b/packages/quality/policy/code-health/src/single-instance/verify-npm-install.test.ts @@ -89,9 +89,9 @@ describe('filesTriggerFullRun', () => { }); it('escalates on a change to the single-instance tool itself', () => { - expect(filesTriggerFullRun(['packages/testing/code-health/src/single-instance/libs.ts'])).toBe( - true, - ); + expect( + filesTriggerFullRun(['packages/quality/policy/code-health/src/single-instance/libs.ts']), + ).toBe(true); }); it('does not escalate on an ordinary package source change', () => { diff --git a/packages/testing/code-health/src/single-instance/verify-npm-install.ts b/packages/quality/policy/code-health/src/single-instance/verify-npm-install.ts similarity index 99% rename from packages/testing/code-health/src/single-instance/verify-npm-install.ts rename to packages/quality/policy/code-health/src/single-instance/verify-npm-install.ts index 6e8adfa7992..315b0da8976 100644 --- a/packages/testing/code-health/src/single-instance/verify-npm-install.ts +++ b/packages/quality/policy/code-health/src/single-instance/verify-npm-install.ts @@ -23,7 +23,11 @@ import { // Repo-relative paths whose change can shift dependency resolution repo-wide (the catalog, the // root manifest, or the single-instance tooling itself) — a scoped diff would otherwise miss them. -const ROOT_TRIGGERS = ['pnpm-workspace.yaml', 'package.json', 'packages/testing/code-health/']; +const ROOT_TRIGGERS = [ + 'pnpm-workspace.yaml', + 'package.json', + 'packages/quality/policy/code-health/', +]; const CLOSURE_SECTIONS = new Set(PUBLISHED_SECTIONS); diff --git a/packages/testing/code-health/src/utils/import-graph-scanner.ts b/packages/quality/policy/code-health/src/utils/import-graph-scanner.ts similarity index 100% rename from packages/testing/code-health/src/utils/import-graph-scanner.ts rename to packages/quality/policy/code-health/src/utils/import-graph-scanner.ts diff --git a/packages/testing/code-health/src/utils/node-modules-deps-scanner.ts b/packages/quality/policy/code-health/src/utils/node-modules-deps-scanner.ts similarity index 100% rename from packages/testing/code-health/src/utils/node-modules-deps-scanner.ts rename to packages/quality/policy/code-health/src/utils/node-modules-deps-scanner.ts diff --git a/packages/testing/code-health/src/utils/overrides-parser.ts b/packages/quality/policy/code-health/src/utils/overrides-parser.ts similarity index 100% rename from packages/testing/code-health/src/utils/overrides-parser.ts rename to packages/quality/policy/code-health/src/utils/overrides-parser.ts diff --git a/packages/testing/code-health/src/utils/package-json-scanner.test.ts b/packages/quality/policy/code-health/src/utils/package-json-scanner.test.ts similarity index 100% rename from packages/testing/code-health/src/utils/package-json-scanner.test.ts rename to packages/quality/policy/code-health/src/utils/package-json-scanner.test.ts diff --git a/packages/testing/code-health/src/utils/package-json-scanner.ts b/packages/quality/policy/code-health/src/utils/package-json-scanner.ts similarity index 100% rename from packages/testing/code-health/src/utils/package-json-scanner.ts rename to packages/quality/policy/code-health/src/utils/package-json-scanner.ts diff --git a/packages/testing/code-health/src/utils/pnpm-lock-parser.test.ts b/packages/quality/policy/code-health/src/utils/pnpm-lock-parser.test.ts similarity index 100% rename from packages/testing/code-health/src/utils/pnpm-lock-parser.test.ts rename to packages/quality/policy/code-health/src/utils/pnpm-lock-parser.test.ts diff --git a/packages/testing/code-health/src/utils/pnpm-lock-parser.ts b/packages/quality/policy/code-health/src/utils/pnpm-lock-parser.ts similarity index 100% rename from packages/testing/code-health/src/utils/pnpm-lock-parser.ts rename to packages/quality/policy/code-health/src/utils/pnpm-lock-parser.ts diff --git a/packages/testing/code-health/src/utils/workflow-scanner.ts b/packages/quality/policy/code-health/src/utils/workflow-scanner.ts similarity index 100% rename from packages/testing/code-health/src/utils/workflow-scanner.ts rename to packages/quality/policy/code-health/src/utils/workflow-scanner.ts diff --git a/packages/testing/code-health/src/utils/workspace-parser.ts b/packages/quality/policy/code-health/src/utils/workspace-parser.ts similarity index 100% rename from packages/testing/code-health/src/utils/workspace-parser.ts rename to packages/quality/policy/code-health/src/utils/workspace-parser.ts diff --git a/packages/testing/code-health/tsconfig.build.json b/packages/quality/policy/code-health/tsconfig.build.json similarity index 100% rename from packages/testing/code-health/tsconfig.build.json rename to packages/quality/policy/code-health/tsconfig.build.json diff --git a/packages/testing/code-health/tsconfig.json b/packages/quality/policy/code-health/tsconfig.json similarity index 91% rename from packages/testing/code-health/tsconfig.json rename to packages/quality/policy/code-health/tsconfig.json index d5be9ffd474..055e9c107ee 100644 --- a/packages/testing/code-health/tsconfig.json +++ b/packages/quality/policy/code-health/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../../tsconfig.json", "compilerOptions": { "outDir": "dist", "rootDir": "src", diff --git a/packages/testing/code-health/vitest.config.ts b/packages/quality/policy/code-health/vitest.config.ts similarity index 100% rename from packages/testing/code-health/vitest.config.ts rename to packages/quality/policy/code-health/vitest.config.ts diff --git a/packages/testing/rules-engine/README.md b/packages/quality/policy/rules-engine/README.md similarity index 100% rename from packages/testing/rules-engine/README.md rename to packages/quality/policy/rules-engine/README.md diff --git a/packages/testing/rules-engine/eslint.config.mjs b/packages/quality/policy/rules-engine/eslint.config.mjs similarity index 100% rename from packages/testing/rules-engine/eslint.config.mjs rename to packages/quality/policy/rules-engine/eslint.config.mjs diff --git a/packages/testing/rules-engine/oxlint.config.mts b/packages/quality/policy/rules-engine/oxlint.config.mts similarity index 100% rename from packages/testing/rules-engine/oxlint.config.mts rename to packages/quality/policy/rules-engine/oxlint.config.mts diff --git a/packages/testing/rules-engine/package.json b/packages/quality/policy/rules-engine/package.json similarity index 100% rename from packages/testing/rules-engine/package.json rename to packages/quality/policy/rules-engine/package.json diff --git a/packages/testing/rules-engine/src/ast/ast-rule.ts b/packages/quality/policy/rules-engine/src/ast/ast-rule.ts similarity index 100% rename from packages/testing/rules-engine/src/ast/ast-rule.ts rename to packages/quality/policy/rules-engine/src/ast/ast-rule.ts diff --git a/packages/testing/rules-engine/src/ast/decorators.ts b/packages/quality/policy/rules-engine/src/ast/decorators.ts similarity index 100% rename from packages/testing/rules-engine/src/ast/decorators.ts rename to packages/quality/policy/rules-engine/src/ast/decorators.ts diff --git a/packages/testing/rules-engine/src/ast/imports.test.ts b/packages/quality/policy/rules-engine/src/ast/imports.test.ts similarity index 100% rename from packages/testing/rules-engine/src/ast/imports.test.ts rename to packages/quality/policy/rules-engine/src/ast/imports.test.ts diff --git a/packages/testing/rules-engine/src/ast/imports.ts b/packages/quality/policy/rules-engine/src/ast/imports.ts similarity index 100% rename from packages/testing/rules-engine/src/ast/imports.ts rename to packages/quality/policy/rules-engine/src/ast/imports.ts diff --git a/packages/testing/rules-engine/src/ast/index.ts b/packages/quality/policy/rules-engine/src/ast/index.ts similarity index 100% rename from packages/testing/rules-engine/src/ast/index.ts rename to packages/quality/policy/rules-engine/src/ast/index.ts diff --git a/packages/testing/rules-engine/src/ast/project.ts b/packages/quality/policy/rules-engine/src/ast/project.ts similarity index 100% rename from packages/testing/rules-engine/src/ast/project.ts rename to packages/quality/policy/rules-engine/src/ast/project.ts diff --git a/packages/testing/rules-engine/src/base-rule.test.ts b/packages/quality/policy/rules-engine/src/base-rule.test.ts similarity index 100% rename from packages/testing/rules-engine/src/base-rule.test.ts rename to packages/quality/policy/rules-engine/src/base-rule.test.ts diff --git a/packages/testing/rules-engine/src/base-rule.ts b/packages/quality/policy/rules-engine/src/base-rule.ts similarity index 100% rename from packages/testing/rules-engine/src/base-rule.ts rename to packages/quality/policy/rules-engine/src/base-rule.ts diff --git a/packages/testing/rules-engine/src/baseline.test.ts b/packages/quality/policy/rules-engine/src/baseline.test.ts similarity index 100% rename from packages/testing/rules-engine/src/baseline.test.ts rename to packages/quality/policy/rules-engine/src/baseline.test.ts diff --git a/packages/testing/rules-engine/src/baseline.ts b/packages/quality/policy/rules-engine/src/baseline.ts similarity index 100% rename from packages/testing/rules-engine/src/baseline.ts rename to packages/quality/policy/rules-engine/src/baseline.ts diff --git a/packages/testing/rules-engine/src/index.ts b/packages/quality/policy/rules-engine/src/index.ts similarity index 100% rename from packages/testing/rules-engine/src/index.ts rename to packages/quality/policy/rules-engine/src/index.ts diff --git a/packages/testing/rules-engine/src/reporter.test.ts b/packages/quality/policy/rules-engine/src/reporter.test.ts similarity index 100% rename from packages/testing/rules-engine/src/reporter.test.ts rename to packages/quality/policy/rules-engine/src/reporter.test.ts diff --git a/packages/testing/rules-engine/src/reporter.ts b/packages/quality/policy/rules-engine/src/reporter.ts similarity index 100% rename from packages/testing/rules-engine/src/reporter.ts rename to packages/quality/policy/rules-engine/src/reporter.ts diff --git a/packages/testing/rules-engine/src/rule-runner.test.ts b/packages/quality/policy/rules-engine/src/rule-runner.test.ts similarity index 100% rename from packages/testing/rules-engine/src/rule-runner.test.ts rename to packages/quality/policy/rules-engine/src/rule-runner.test.ts diff --git a/packages/testing/rules-engine/src/rule-runner.ts b/packages/quality/policy/rules-engine/src/rule-runner.ts similarity index 100% rename from packages/testing/rules-engine/src/rule-runner.ts rename to packages/quality/policy/rules-engine/src/rule-runner.ts diff --git a/packages/testing/rules-engine/src/suppress.test.ts b/packages/quality/policy/rules-engine/src/suppress.test.ts similarity index 100% rename from packages/testing/rules-engine/src/suppress.test.ts rename to packages/quality/policy/rules-engine/src/suppress.test.ts diff --git a/packages/testing/rules-engine/src/suppress.ts b/packages/quality/policy/rules-engine/src/suppress.ts similarity index 100% rename from packages/testing/rules-engine/src/suppress.ts rename to packages/quality/policy/rules-engine/src/suppress.ts diff --git a/packages/testing/rules-engine/src/types.ts b/packages/quality/policy/rules-engine/src/types.ts similarity index 100% rename from packages/testing/rules-engine/src/types.ts rename to packages/quality/policy/rules-engine/src/types.ts diff --git a/packages/testing/rules-engine/tsconfig.build.json b/packages/quality/policy/rules-engine/tsconfig.build.json similarity index 100% rename from packages/testing/rules-engine/tsconfig.build.json rename to packages/quality/policy/rules-engine/tsconfig.build.json diff --git a/packages/testing/rules-engine/tsconfig.json b/packages/quality/policy/rules-engine/tsconfig.json similarity index 91% rename from packages/testing/rules-engine/tsconfig.json rename to packages/quality/policy/rules-engine/tsconfig.json index d6aafab5f16..9457b815c90 100644 --- a/packages/testing/rules-engine/tsconfig.json +++ b/packages/quality/policy/rules-engine/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../../tsconfig.json", "compilerOptions": { "outDir": "dist", "rootDir": "src", diff --git a/packages/testing/rules-engine/vitest.config.ts b/packages/quality/policy/rules-engine/vitest.config.ts similarity index 100% rename from packages/testing/rules-engine/vitest.config.ts rename to packages/quality/policy/rules-engine/vitest.config.ts diff --git a/packages/quality/testing/AGENTS.md b/packages/quality/testing/AGENTS.md new file mode 100644 index 00000000000..9c95d446f25 --- /dev/null +++ b/packages/quality/testing/AGENTS.md @@ -0,0 +1,8 @@ +# Testing instructions + +Read the parent [quality instructions](../AGENTS.md) before you change test tooling. + +- Keep test selection in `test-impact/`. Keep Playwright-specific checks in `janitor/`. +- Keep the E2E harness, fixtures, and test journeys in Playwright. +- Update CI path filters when you move a test or harness file. +- Run tests, lint, and typecheck for each changed workspace. diff --git a/packages/quality/testing/README.md b/packages/quality/testing/README.md new file mode 100644 index 00000000000..dbae79ea941 --- /dev/null +++ b/packages/quality/testing/README.md @@ -0,0 +1,11 @@ +# Testing tools + +Choose the tool for the test task. + +| Goal | Guide | +| --- | --- | +| Select tests affected by a change | [Test impact guide](test-impact/README.md) | +| Check test architecture or run impact commands | [Janitor](janitor/README.md) | +| Run browser, accessibility, memory, or infrastructure tests | [Playwright suite map](playwright/README.md#choose-a-suite) | + +The [container stack](../environments/README.md) provides managed test services. diff --git a/packages/testing/janitor/.gitignore b/packages/quality/testing/janitor/.gitignore similarity index 100% rename from packages/testing/janitor/.gitignore rename to packages/quality/testing/janitor/.gitignore diff --git a/packages/testing/janitor/CLAUDE.md b/packages/quality/testing/janitor/CLAUDE.md similarity index 100% rename from packages/testing/janitor/CLAUDE.md rename to packages/quality/testing/janitor/CLAUDE.md diff --git a/packages/testing/janitor/README.md b/packages/quality/testing/janitor/README.md similarity index 100% rename from packages/testing/janitor/README.md rename to packages/quality/testing/janitor/README.md diff --git a/packages/testing/janitor/bin/janitor.mjs b/packages/quality/testing/janitor/bin/janitor.mjs similarity index 100% rename from packages/testing/janitor/bin/janitor.mjs rename to packages/quality/testing/janitor/bin/janitor.mjs diff --git a/packages/testing/janitor/eslint.config.mjs b/packages/quality/testing/janitor/eslint.config.mjs similarity index 100% rename from packages/testing/janitor/eslint.config.mjs rename to packages/quality/testing/janitor/eslint.config.mjs diff --git a/packages/testing/janitor/oxlint.config.mts b/packages/quality/testing/janitor/oxlint.config.mts similarity index 100% rename from packages/testing/janitor/oxlint.config.mts rename to packages/quality/testing/janitor/oxlint.config.mts diff --git a/packages/testing/janitor/package.json b/packages/quality/testing/janitor/package.json similarity index 100% rename from packages/testing/janitor/package.json rename to packages/quality/testing/janitor/package.json diff --git a/packages/testing/janitor/src/cli.test.ts b/packages/quality/testing/janitor/src/cli.test.ts similarity index 100% rename from packages/testing/janitor/src/cli.test.ts rename to packages/quality/testing/janitor/src/cli.test.ts diff --git a/packages/testing/janitor/src/cli.ts b/packages/quality/testing/janitor/src/cli.ts similarity index 100% rename from packages/testing/janitor/src/cli.ts rename to packages/quality/testing/janitor/src/cli.ts diff --git a/packages/testing/janitor/src/cli/arg-parser.test.ts b/packages/quality/testing/janitor/src/cli/arg-parser.test.ts similarity index 100% rename from packages/testing/janitor/src/cli/arg-parser.test.ts rename to packages/quality/testing/janitor/src/cli/arg-parser.test.ts diff --git a/packages/testing/janitor/src/cli/arg-parser.ts b/packages/quality/testing/janitor/src/cli/arg-parser.ts similarity index 100% rename from packages/testing/janitor/src/cli/arg-parser.ts rename to packages/quality/testing/janitor/src/cli/arg-parser.ts diff --git a/packages/testing/janitor/src/cli/help.ts b/packages/quality/testing/janitor/src/cli/help.ts similarity index 100% rename from packages/testing/janitor/src/cli/help.ts rename to packages/quality/testing/janitor/src/cli/help.ts diff --git a/packages/testing/janitor/src/cli/index.ts b/packages/quality/testing/janitor/src/cli/index.ts similarity index 100% rename from packages/testing/janitor/src/cli/index.ts rename to packages/quality/testing/janitor/src/cli/index.ts diff --git a/packages/testing/janitor/src/config.ts b/packages/quality/testing/janitor/src/config.ts similarity index 100% rename from packages/testing/janitor/src/config.ts rename to packages/quality/testing/janitor/src/config.ts diff --git a/packages/testing/janitor/src/core/affected-packages-analyzer.test.ts b/packages/quality/testing/janitor/src/core/affected-packages-analyzer.test.ts similarity index 100% rename from packages/testing/janitor/src/core/affected-packages-analyzer.test.ts rename to packages/quality/testing/janitor/src/core/affected-packages-analyzer.test.ts diff --git a/packages/testing/janitor/src/core/affected-packages-analyzer.ts b/packages/quality/testing/janitor/src/core/affected-packages-analyzer.ts similarity index 100% rename from packages/testing/janitor/src/core/affected-packages-analyzer.ts rename to packages/quality/testing/janitor/src/core/affected-packages-analyzer.ts diff --git a/packages/testing/janitor/src/core/ast-diff-analyzer.test.ts b/packages/quality/testing/janitor/src/core/ast-diff-analyzer.test.ts similarity index 100% rename from packages/testing/janitor/src/core/ast-diff-analyzer.test.ts rename to packages/quality/testing/janitor/src/core/ast-diff-analyzer.test.ts diff --git a/packages/testing/janitor/src/core/ast-diff-analyzer.ts b/packages/quality/testing/janitor/src/core/ast-diff-analyzer.ts similarity index 100% rename from packages/testing/janitor/src/core/ast-diff-analyzer.ts rename to packages/quality/testing/janitor/src/core/ast-diff-analyzer.ts diff --git a/packages/testing/janitor/src/core/baseline.test.ts b/packages/quality/testing/janitor/src/core/baseline.test.ts similarity index 100% rename from packages/testing/janitor/src/core/baseline.test.ts rename to packages/quality/testing/janitor/src/core/baseline.test.ts diff --git a/packages/testing/janitor/src/core/baseline.ts b/packages/quality/testing/janitor/src/core/baseline.ts similarity index 100% rename from packages/testing/janitor/src/core/baseline.ts rename to packages/quality/testing/janitor/src/core/baseline.ts diff --git a/packages/testing/janitor/src/core/extract-diffs.ts b/packages/quality/testing/janitor/src/core/extract-diffs.ts similarity index 100% rename from packages/testing/janitor/src/core/extract-diffs.ts rename to packages/quality/testing/janitor/src/core/extract-diffs.ts diff --git a/packages/testing/janitor/src/core/facade-resolver.ts b/packages/quality/testing/janitor/src/core/facade-resolver.ts similarity index 100% rename from packages/testing/janitor/src/core/facade-resolver.ts rename to packages/quality/testing/janitor/src/core/facade-resolver.ts diff --git a/packages/testing/janitor/src/core/global-triggers.ts b/packages/quality/testing/janitor/src/core/global-triggers.ts similarity index 100% rename from packages/testing/janitor/src/core/global-triggers.ts rename to packages/quality/testing/janitor/src/core/global-triggers.ts diff --git a/packages/testing/janitor/src/core/impact-analyzer.test.ts b/packages/quality/testing/janitor/src/core/impact-analyzer.test.ts similarity index 100% rename from packages/testing/janitor/src/core/impact-analyzer.test.ts rename to packages/quality/testing/janitor/src/core/impact-analyzer.test.ts diff --git a/packages/testing/janitor/src/core/impact-analyzer.ts b/packages/quality/testing/janitor/src/core/impact-analyzer.ts similarity index 100% rename from packages/testing/janitor/src/core/impact-analyzer.ts rename to packages/quality/testing/janitor/src/core/impact-analyzer.ts diff --git a/packages/testing/janitor/src/core/inventory-analyzer.test.ts b/packages/quality/testing/janitor/src/core/inventory-analyzer.test.ts similarity index 100% rename from packages/testing/janitor/src/core/inventory-analyzer.test.ts rename to packages/quality/testing/janitor/src/core/inventory-analyzer.test.ts diff --git a/packages/testing/janitor/src/core/inventory-analyzer.ts b/packages/quality/testing/janitor/src/core/inventory-analyzer.ts similarity index 100% rename from packages/testing/janitor/src/core/inventory-analyzer.ts rename to packages/quality/testing/janitor/src/core/inventory-analyzer.ts diff --git a/packages/testing/janitor/src/core/method-usage-analyzer.test.ts b/packages/quality/testing/janitor/src/core/method-usage-analyzer.test.ts similarity index 100% rename from packages/testing/janitor/src/core/method-usage-analyzer.test.ts rename to packages/quality/testing/janitor/src/core/method-usage-analyzer.test.ts diff --git a/packages/testing/janitor/src/core/method-usage-analyzer.ts b/packages/quality/testing/janitor/src/core/method-usage-analyzer.ts similarity index 100% rename from packages/testing/janitor/src/core/method-usage-analyzer.ts rename to packages/quality/testing/janitor/src/core/method-usage-analyzer.ts diff --git a/packages/testing/janitor/src/core/path-utils.ts b/packages/quality/testing/janitor/src/core/path-utils.ts similarity index 100% rename from packages/testing/janitor/src/core/path-utils.ts rename to packages/quality/testing/janitor/src/core/path-utils.ts diff --git a/packages/testing/janitor/src/core/project-loader.test.ts b/packages/quality/testing/janitor/src/core/project-loader.test.ts similarity index 100% rename from packages/testing/janitor/src/core/project-loader.test.ts rename to packages/quality/testing/janitor/src/core/project-loader.test.ts diff --git a/packages/testing/janitor/src/core/project-loader.ts b/packages/quality/testing/janitor/src/core/project-loader.ts similarity index 100% rename from packages/testing/janitor/src/core/project-loader.ts rename to packages/quality/testing/janitor/src/core/project-loader.ts diff --git a/packages/testing/janitor/src/core/read-lockfile-importers.test.ts b/packages/quality/testing/janitor/src/core/read-lockfile-importers.test.ts similarity index 100% rename from packages/testing/janitor/src/core/read-lockfile-importers.test.ts rename to packages/quality/testing/janitor/src/core/read-lockfile-importers.test.ts diff --git a/packages/testing/janitor/src/core/read-lockfile-importers.ts b/packages/quality/testing/janitor/src/core/read-lockfile-importers.ts similarity index 100% rename from packages/testing/janitor/src/core/read-lockfile-importers.ts rename to packages/quality/testing/janitor/src/core/read-lockfile-importers.ts diff --git a/packages/testing/janitor/src/core/read-manifest-diffs.ts b/packages/quality/testing/janitor/src/core/read-manifest-diffs.ts similarity index 100% rename from packages/testing/janitor/src/core/read-manifest-diffs.ts rename to packages/quality/testing/janitor/src/core/read-manifest-diffs.ts diff --git a/packages/testing/janitor/src/core/reporter.ts b/packages/quality/testing/janitor/src/core/reporter.ts similarity index 100% rename from packages/testing/janitor/src/core/reporter.ts rename to packages/quality/testing/janitor/src/core/reporter.ts diff --git a/packages/testing/janitor/src/core/retry-filter.test.ts b/packages/quality/testing/janitor/src/core/retry-filter.test.ts similarity index 100% rename from packages/testing/janitor/src/core/retry-filter.test.ts rename to packages/quality/testing/janitor/src/core/retry-filter.test.ts diff --git a/packages/testing/janitor/src/core/retry-filter.ts b/packages/quality/testing/janitor/src/core/retry-filter.ts similarity index 100% rename from packages/testing/janitor/src/core/retry-filter.ts rename to packages/quality/testing/janitor/src/core/retry-filter.ts diff --git a/packages/testing/janitor/src/core/rule-runner.ts b/packages/quality/testing/janitor/src/core/rule-runner.ts similarity index 100% rename from packages/testing/janitor/src/core/rule-runner.ts rename to packages/quality/testing/janitor/src/core/rule-runner.ts diff --git a/packages/testing/janitor/src/core/scope-analyzer.test.ts b/packages/quality/testing/janitor/src/core/scope-analyzer.test.ts similarity index 100% rename from packages/testing/janitor/src/core/scope-analyzer.test.ts rename to packages/quality/testing/janitor/src/core/scope-analyzer.test.ts diff --git a/packages/testing/janitor/src/core/scope-analyzer.ts b/packages/quality/testing/janitor/src/core/scope-analyzer.ts similarity index 100% rename from packages/testing/janitor/src/core/scope-analyzer.ts rename to packages/quality/testing/janitor/src/core/scope-analyzer.ts diff --git a/packages/testing/janitor/src/core/tcr-executor.test.ts b/packages/quality/testing/janitor/src/core/tcr-executor.test.ts similarity index 100% rename from packages/testing/janitor/src/core/tcr-executor.test.ts rename to packages/quality/testing/janitor/src/core/tcr-executor.test.ts diff --git a/packages/testing/janitor/src/core/tcr-executor.ts b/packages/quality/testing/janitor/src/core/tcr-executor.ts similarity index 100% rename from packages/testing/janitor/src/core/tcr-executor.ts rename to packages/quality/testing/janitor/src/core/tcr-executor.ts diff --git a/packages/testing/janitor/src/core/test-discovery-analyzer.test.ts b/packages/quality/testing/janitor/src/core/test-discovery-analyzer.test.ts similarity index 100% rename from packages/testing/janitor/src/core/test-discovery-analyzer.test.ts rename to packages/quality/testing/janitor/src/core/test-discovery-analyzer.test.ts diff --git a/packages/testing/janitor/src/core/test-discovery-analyzer.ts b/packages/quality/testing/janitor/src/core/test-discovery-analyzer.ts similarity index 100% rename from packages/testing/janitor/src/core/test-discovery-analyzer.ts rename to packages/quality/testing/janitor/src/core/test-discovery-analyzer.ts diff --git a/packages/testing/janitor/src/core/test-scoped-runner.test.ts b/packages/quality/testing/janitor/src/core/test-scoped-runner.test.ts similarity index 100% rename from packages/testing/janitor/src/core/test-scoped-runner.test.ts rename to packages/quality/testing/janitor/src/core/test-scoped-runner.test.ts diff --git a/packages/testing/janitor/src/core/test-scoped-runner.ts b/packages/quality/testing/janitor/src/core/test-scoped-runner.ts similarity index 100% rename from packages/testing/janitor/src/core/test-scoped-runner.ts rename to packages/quality/testing/janitor/src/core/test-scoped-runner.ts diff --git a/packages/testing/janitor/src/index.ts b/packages/quality/testing/janitor/src/index.ts similarity index 100% rename from packages/testing/janitor/src/index.ts rename to packages/quality/testing/janitor/src/index.ts diff --git a/packages/testing/janitor/src/rules/api-purity.rule.test.ts b/packages/quality/testing/janitor/src/rules/api-purity.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/api-purity.rule.test.ts rename to packages/quality/testing/janitor/src/rules/api-purity.rule.test.ts diff --git a/packages/testing/janitor/src/rules/api-purity.rule.ts b/packages/quality/testing/janitor/src/rules/api-purity.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/api-purity.rule.ts rename to packages/quality/testing/janitor/src/rules/api-purity.rule.ts diff --git a/packages/testing/janitor/src/rules/boundary-protection.rule.test.ts b/packages/quality/testing/janitor/src/rules/boundary-protection.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/boundary-protection.rule.test.ts rename to packages/quality/testing/janitor/src/rules/boundary-protection.rule.test.ts diff --git a/packages/testing/janitor/src/rules/boundary-protection.rule.ts b/packages/quality/testing/janitor/src/rules/boundary-protection.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/boundary-protection.rule.ts rename to packages/quality/testing/janitor/src/rules/boundary-protection.rule.ts diff --git a/packages/testing/janitor/src/rules/dead-code.rule.test.ts b/packages/quality/testing/janitor/src/rules/dead-code.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/dead-code.rule.test.ts rename to packages/quality/testing/janitor/src/rules/dead-code.rule.test.ts diff --git a/packages/testing/janitor/src/rules/dead-code.rule.ts b/packages/quality/testing/janitor/src/rules/dead-code.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/dead-code.rule.ts rename to packages/quality/testing/janitor/src/rules/dead-code.rule.ts diff --git a/packages/testing/janitor/src/rules/deduplication.rule.test.ts b/packages/quality/testing/janitor/src/rules/deduplication.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/deduplication.rule.test.ts rename to packages/quality/testing/janitor/src/rules/deduplication.rule.test.ts diff --git a/packages/testing/janitor/src/rules/deduplication.rule.ts b/packages/quality/testing/janitor/src/rules/deduplication.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/deduplication.rule.ts rename to packages/quality/testing/janitor/src/rules/deduplication.rule.ts diff --git a/packages/testing/janitor/src/rules/duplicate-logic.rule.test.ts b/packages/quality/testing/janitor/src/rules/duplicate-logic.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/duplicate-logic.rule.test.ts rename to packages/quality/testing/janitor/src/rules/duplicate-logic.rule.test.ts diff --git a/packages/testing/janitor/src/rules/duplicate-logic.rule.ts b/packages/quality/testing/janitor/src/rules/duplicate-logic.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/duplicate-logic.rule.ts rename to packages/quality/testing/janitor/src/rules/duplicate-logic.rule.ts diff --git a/packages/testing/janitor/src/rules/index.ts b/packages/quality/testing/janitor/src/rules/index.ts similarity index 100% rename from packages/testing/janitor/src/rules/index.ts rename to packages/quality/testing/janitor/src/rules/index.ts diff --git a/packages/testing/janitor/src/rules/no-direct-page-instantiation.rule.test.ts b/packages/quality/testing/janitor/src/rules/no-direct-page-instantiation.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/no-direct-page-instantiation.rule.test.ts rename to packages/quality/testing/janitor/src/rules/no-direct-page-instantiation.rule.test.ts diff --git a/packages/testing/janitor/src/rules/no-direct-page-instantiation.rule.ts b/packages/quality/testing/janitor/src/rules/no-direct-page-instantiation.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/no-direct-page-instantiation.rule.ts rename to packages/quality/testing/janitor/src/rules/no-direct-page-instantiation.rule.ts diff --git a/packages/testing/janitor/src/rules/no-page-in-flow.rule.test.ts b/packages/quality/testing/janitor/src/rules/no-page-in-flow.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/no-page-in-flow.rule.test.ts rename to packages/quality/testing/janitor/src/rules/no-page-in-flow.rule.test.ts diff --git a/packages/testing/janitor/src/rules/no-page-in-flow.rule.ts b/packages/quality/testing/janitor/src/rules/no-page-in-flow.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/no-page-in-flow.rule.ts rename to packages/quality/testing/janitor/src/rules/no-page-in-flow.rule.ts diff --git a/packages/testing/janitor/src/rules/no-raw-editor-navigation.rule.test.ts b/packages/quality/testing/janitor/src/rules/no-raw-editor-navigation.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/no-raw-editor-navigation.rule.test.ts rename to packages/quality/testing/janitor/src/rules/no-raw-editor-navigation.rule.test.ts diff --git a/packages/testing/janitor/src/rules/no-raw-editor-navigation.rule.ts b/packages/quality/testing/janitor/src/rules/no-raw-editor-navigation.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/no-raw-editor-navigation.rule.ts rename to packages/quality/testing/janitor/src/rules/no-raw-editor-navigation.rule.ts diff --git a/packages/testing/janitor/src/rules/scope-lockdown.rule.test.ts b/packages/quality/testing/janitor/src/rules/scope-lockdown.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/scope-lockdown.rule.test.ts rename to packages/quality/testing/janitor/src/rules/scope-lockdown.rule.test.ts diff --git a/packages/testing/janitor/src/rules/scope-lockdown.rule.ts b/packages/quality/testing/janitor/src/rules/scope-lockdown.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/scope-lockdown.rule.ts rename to packages/quality/testing/janitor/src/rules/scope-lockdown.rule.ts diff --git a/packages/testing/janitor/src/rules/selector-purity.rule.test.ts b/packages/quality/testing/janitor/src/rules/selector-purity.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/selector-purity.rule.test.ts rename to packages/quality/testing/janitor/src/rules/selector-purity.rule.test.ts diff --git a/packages/testing/janitor/src/rules/selector-purity.rule.ts b/packages/quality/testing/janitor/src/rules/selector-purity.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/selector-purity.rule.ts rename to packages/quality/testing/janitor/src/rules/selector-purity.rule.ts diff --git a/packages/testing/janitor/src/rules/test-data-hygiene.rule.test.ts b/packages/quality/testing/janitor/src/rules/test-data-hygiene.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/test-data-hygiene.rule.test.ts rename to packages/quality/testing/janitor/src/rules/test-data-hygiene.rule.test.ts diff --git a/packages/testing/janitor/src/rules/test-data-hygiene.rule.ts b/packages/quality/testing/janitor/src/rules/test-data-hygiene.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/test-data-hygiene.rule.ts rename to packages/quality/testing/janitor/src/rules/test-data-hygiene.rule.ts diff --git a/packages/testing/janitor/src/rules/valid-owner-annotation.rule.test.ts b/packages/quality/testing/janitor/src/rules/valid-owner-annotation.rule.test.ts similarity index 100% rename from packages/testing/janitor/src/rules/valid-owner-annotation.rule.test.ts rename to packages/quality/testing/janitor/src/rules/valid-owner-annotation.rule.test.ts diff --git a/packages/testing/janitor/src/rules/valid-owner-annotation.rule.ts b/packages/quality/testing/janitor/src/rules/valid-owner-annotation.rule.ts similarity index 100% rename from packages/testing/janitor/src/rules/valid-owner-annotation.rule.ts rename to packages/quality/testing/janitor/src/rules/valid-owner-annotation.rule.ts diff --git a/packages/testing/janitor/src/test/fixtures.ts b/packages/quality/testing/janitor/src/test/fixtures.ts similarity index 100% rename from packages/testing/janitor/src/test/fixtures.ts rename to packages/quality/testing/janitor/src/test/fixtures.ts diff --git a/packages/testing/janitor/src/types.ts b/packages/quality/testing/janitor/src/types.ts similarity index 100% rename from packages/testing/janitor/src/types.ts rename to packages/quality/testing/janitor/src/types.ts diff --git a/packages/testing/janitor/src/utils/ast-helpers.ts b/packages/quality/testing/janitor/src/utils/ast-helpers.ts similarity index 100% rename from packages/testing/janitor/src/utils/ast-helpers.ts rename to packages/quality/testing/janitor/src/utils/ast-helpers.ts diff --git a/packages/testing/janitor/src/utils/git-operations.test.ts b/packages/quality/testing/janitor/src/utils/git-operations.test.ts similarity index 59% rename from packages/testing/janitor/src/utils/git-operations.test.ts rename to packages/quality/testing/janitor/src/utils/git-operations.test.ts index 6a96a61ecf9..fd90980ea81 100644 --- a/packages/testing/janitor/src/utils/git-operations.test.ts +++ b/packages/quality/testing/janitor/src/utils/git-operations.test.ts @@ -4,54 +4,57 @@ import { parseGitStatus, parseGitDiff } from './git-operations.js'; describe('git-operations', () => { const gitRoot = '/repo'; - const scopeDir = '/repo/packages/testing'; + const scopeDir = '/repo/packages/quality/testing'; describe('parseGitStatus', () => { it('parses modified files', () => { - const output = ' M packages/testing/src/file.ts\n'; + const output = ' M packages/quality/testing/src/file.ts\n'; const result = parseGitStatus(output, gitRoot, scopeDir); - expect(result).toEqual(['/repo/packages/testing/src/file.ts']); + expect(result).toEqual(['/repo/packages/quality/testing/src/file.ts']); }); it('parses added files', () => { - const output = 'A packages/testing/src/new-file.ts\n'; + const output = 'A packages/quality/testing/src/new-file.ts\n'; const result = parseGitStatus(output, gitRoot, scopeDir); - expect(result).toEqual(['/repo/packages/testing/src/new-file.ts']); + expect(result).toEqual(['/repo/packages/quality/testing/src/new-file.ts']); }); it('parses renamed files (takes new path)', () => { - const output = 'R packages/testing/old.ts -> packages/testing/new.ts\n'; + const output = 'R packages/quality/testing/old.ts -> packages/quality/testing/new.ts\n'; const result = parseGitStatus(output, gitRoot, scopeDir); - expect(result).toEqual(['/repo/packages/testing/new.ts']); + expect(result).toEqual(['/repo/packages/quality/testing/new.ts']); }); it('filters by scope directory', () => { - const output = [' M packages/testing/src/file.ts', ' M packages/other/src/file.ts'].join( - '\n', - ); + const output = [ + ' M packages/quality/testing/src/file.ts', + ' M packages/other/src/file.ts', + ].join('\n'); const result = parseGitStatus(output, gitRoot, scopeDir); - expect(result).toEqual(['/repo/packages/testing/src/file.ts']); + expect(result).toEqual(['/repo/packages/quality/testing/src/file.ts']); }); it('filters by extension', () => { - const output = [' M packages/testing/src/file.ts', ' M packages/testing/src/file.json'].join( - '\n', - ); + const output = [ + ' M packages/quality/testing/src/file.ts', + ' M packages/quality/testing/src/file.json', + ].join('\n'); const result = parseGitStatus(output, gitRoot, scopeDir, ['.ts']); - expect(result).toEqual(['/repo/packages/testing/src/file.ts']); + expect(result).toEqual(['/repo/packages/quality/testing/src/file.ts']); }); it('allows all extensions when empty array', () => { - const output = [' M packages/testing/src/file.ts', ' M packages/testing/src/file.json'].join( - '\n', - ); + const output = [ + ' M packages/quality/testing/src/file.ts', + ' M packages/quality/testing/src/file.json', + ].join('\n'); const result = parseGitStatus(output, gitRoot, scopeDir, []); @@ -71,7 +74,7 @@ describe('git-operations', () => { it('handles directory paths with trailing slash (filters them out when extension specified)', () => { // If git status somehow returns a directory path, it should be filtered by extension - const output = '?? packages/testing/tests/new-feature/\n'; + const output = '?? packages/quality/testing/tests/new-feature/\n'; const result = parseGitStatus(output, gitRoot, scopeDir, ['.ts']); // Directory paths don't end in .ts, so they're filtered out @@ -79,28 +82,30 @@ describe('git-operations', () => { }); it('handles directory paths with trailing slash (included when no extension filter)', () => { - const output = '?? packages/testing/tests/new-feature/\n'; + const output = '?? packages/quality/testing/tests/new-feature/\n'; const result = parseGitStatus(output, gitRoot, scopeDir, []); // With no extension filter, directory paths are included as-is - expect(result).toEqual(['/repo/packages/testing/tests/new-feature/']); + expect(result).toEqual(['/repo/packages/quality/testing/tests/new-feature/']); }); }); describe('parseGitDiff', () => { it('parses file paths', () => { - const output = 'packages/testing/src/file.ts\n'; + const output = 'packages/quality/testing/src/file.ts\n'; const result = parseGitDiff(output, gitRoot, scopeDir); - expect(result).toEqual(['/repo/packages/testing/src/file.ts']); + expect(result).toEqual(['/repo/packages/quality/testing/src/file.ts']); }); it('filters by scope directory', () => { - const output = ['packages/testing/src/file.ts', 'packages/other/src/file.ts'].join('\n'); + const output = ['packages/quality/testing/src/file.ts', 'packages/other/src/file.ts'].join( + '\n', + ); const result = parseGitDiff(output, gitRoot, scopeDir); - expect(result).toEqual(['/repo/packages/testing/src/file.ts']); + expect(result).toEqual(['/repo/packages/quality/testing/src/file.ts']); }); it('handles empty output', () => { @@ -110,9 +115,9 @@ describe('git-operations', () => { it('handles multiple files', () => { const output = [ - 'packages/testing/src/a.ts', - 'packages/testing/src/b.ts', - 'packages/testing/src/c.ts', + 'packages/quality/testing/src/a.ts', + 'packages/quality/testing/src/b.ts', + 'packages/quality/testing/src/c.ts', ].join('\n'); const result = parseGitDiff(output, gitRoot, scopeDir); diff --git a/packages/testing/janitor/src/utils/git-operations.ts b/packages/quality/testing/janitor/src/utils/git-operations.ts similarity index 100% rename from packages/testing/janitor/src/utils/git-operations.ts rename to packages/quality/testing/janitor/src/utils/git-operations.ts diff --git a/packages/testing/janitor/src/utils/index.ts b/packages/quality/testing/janitor/src/utils/index.ts similarity index 100% rename from packages/testing/janitor/src/utils/index.ts rename to packages/quality/testing/janitor/src/utils/index.ts diff --git a/packages/testing/janitor/src/utils/logger.test.ts b/packages/quality/testing/janitor/src/utils/logger.test.ts similarity index 100% rename from packages/testing/janitor/src/utils/logger.test.ts rename to packages/quality/testing/janitor/src/utils/logger.test.ts diff --git a/packages/testing/janitor/src/utils/logger.ts b/packages/quality/testing/janitor/src/utils/logger.ts similarity index 100% rename from packages/testing/janitor/src/utils/logger.ts rename to packages/quality/testing/janitor/src/utils/logger.ts diff --git a/packages/testing/janitor/src/utils/paths.ts b/packages/quality/testing/janitor/src/utils/paths.ts similarity index 100% rename from packages/testing/janitor/src/utils/paths.ts rename to packages/quality/testing/janitor/src/utils/paths.ts diff --git a/packages/testing/janitor/src/utils/resolve-input-paths.test.ts b/packages/quality/testing/janitor/src/utils/resolve-input-paths.test.ts similarity index 70% rename from packages/testing/janitor/src/utils/resolve-input-paths.test.ts rename to packages/quality/testing/janitor/src/utils/resolve-input-paths.test.ts index d01f613a7b6..bd8d8165822 100644 --- a/packages/testing/janitor/src/utils/resolve-input-paths.test.ts +++ b/packages/quality/testing/janitor/src/utils/resolve-input-paths.test.ts @@ -5,7 +5,7 @@ import { setConfig, resetConfig, defineConfig } from '../config.js'; import { resolveInputPaths } from './paths.js'; describe('resolveInputPaths', () => { - const rootDir = '/repo/packages/testing/playwright'; + const rootDir = '/repo/packages/quality/testing/playwright'; const gitRoot = '/repo'; beforeEach(() => { @@ -17,10 +17,10 @@ describe('resolveInputPaths', () => { }); it('returns absolute paths unchanged', () => { - const files = ['/repo/packages/testing/playwright/pages/CanvasPage.ts']; + const files = ['/repo/packages/quality/testing/playwright/pages/CanvasPage.ts']; const result = resolveInputPaths(files, gitRoot); - expect(result).toEqual(['/repo/packages/testing/playwright/pages/CanvasPage.ts']); + expect(result).toEqual(['/repo/packages/quality/testing/playwright/pages/CanvasPage.ts']); }); it('resolves rootDir-relative paths against rootDir', () => { @@ -35,29 +35,29 @@ describe('resolveInputPaths', () => { it('resolves repo-root-relative paths against gitRoot', () => { const files = [ - 'packages/testing/playwright/pages/CanvasPage.ts', - 'packages/testing/playwright/tests/canvas.spec.ts', + 'packages/quality/testing/playwright/pages/CanvasPage.ts', + 'packages/quality/testing/playwright/tests/canvas.spec.ts', ]; const result = resolveInputPaths(files, gitRoot); expect(result).toEqual([ - '/repo/packages/testing/playwright/pages/CanvasPage.ts', - '/repo/packages/testing/playwright/tests/canvas.spec.ts', + '/repo/packages/quality/testing/playwright/pages/CanvasPage.ts', + '/repo/packages/quality/testing/playwright/tests/canvas.spec.ts', ]); }); it('handles mixed path formats', () => { const files = [ - '/repo/packages/testing/playwright/pages/Absolute.ts', + '/repo/packages/quality/testing/playwright/pages/Absolute.ts', 'pages/RootDirRelative.ts', - 'packages/testing/playwright/pages/RepoRootRelative.ts', + 'packages/quality/testing/playwright/pages/RepoRootRelative.ts', ]; const result = resolveInputPaths(files, gitRoot); expect(result).toEqual([ - '/repo/packages/testing/playwright/pages/Absolute.ts', + '/repo/packages/quality/testing/playwright/pages/Absolute.ts', path.resolve(rootDir, 'pages/RootDirRelative.ts'), - '/repo/packages/testing/playwright/pages/RepoRootRelative.ts', + '/repo/packages/quality/testing/playwright/pages/RepoRootRelative.ts', ]); }); @@ -84,12 +84,14 @@ describe('resolveInputPaths', () => { it('does not match sibling directories sharing a prefix with rootDir', () => { // "playwright-utils" shares the prefix "playwright" with rootDir - const files = ['packages/testing/playwright-utils/helper.ts']; + const files = ['packages/quality/testing/playwright-utils/helper.ts']; const result = resolveInputPaths(files, gitRoot); - // Should NOT match rootDir (/repo/packages/testing/playwright) + // Should NOT match rootDir (/repo/packages/quality/testing/playwright) // Should fall back to rootDir-relative resolution - expect(result).toEqual([path.resolve(rootDir, 'packages/testing/playwright-utils/helper.ts')]); + expect(result).toEqual([ + path.resolve(rootDir, 'packages/quality/testing/playwright-utils/helper.ts'), + ]); }); it('handles empty input', () => { diff --git a/packages/testing/janitor/src/utils/test-command.test.ts b/packages/quality/testing/janitor/src/utils/test-command.test.ts similarity index 100% rename from packages/testing/janitor/src/utils/test-command.test.ts rename to packages/quality/testing/janitor/src/utils/test-command.test.ts diff --git a/packages/testing/janitor/src/utils/test-command.ts b/packages/quality/testing/janitor/src/utils/test-command.ts similarity index 100% rename from packages/testing/janitor/src/utils/test-command.ts rename to packages/quality/testing/janitor/src/utils/test-command.ts diff --git a/packages/testing/janitor/tsconfig.json b/packages/quality/testing/janitor/tsconfig.json similarity index 91% rename from packages/testing/janitor/tsconfig.json rename to packages/quality/testing/janitor/tsconfig.json index fffdac62b44..b6b2678fff0 100644 --- a/packages/testing/janitor/tsconfig.json +++ b/packages/quality/testing/janitor/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../../tsconfig.json", "compilerOptions": { "outDir": "dist", "rootDir": "src", diff --git a/packages/testing/janitor/vitest.config.ts b/packages/quality/testing/janitor/vitest.config.ts similarity index 100% rename from packages/testing/janitor/vitest.config.ts rename to packages/quality/testing/janitor/vitest.config.ts diff --git a/packages/testing/playwright/.janitor-baseline.json b/packages/quality/testing/playwright/.janitor-baseline.json similarity index 100% rename from packages/testing/playwright/.janitor-baseline.json rename to packages/quality/testing/playwright/.janitor-baseline.json diff --git a/packages/testing/playwright/.playwright-version b/packages/quality/testing/playwright/.playwright-version similarity index 100% rename from packages/testing/playwright/.playwright-version rename to packages/quality/testing/playwright/.playwright-version diff --git a/packages/quality/testing/playwright/AGENTS.md b/packages/quality/testing/playwright/AGENTS.md new file mode 100644 index 00000000000..f086a5a1596 --- /dev/null +++ b/packages/quality/testing/playwright/AGENTS.md @@ -0,0 +1,39 @@ +# Playwright instructions + +Read the [quality](../../AGENTS.md) and [testing](../AGENTS.md) instructions first. Use the [suite map](README.md#choose-a-suite) to choose a project. + +## Place tests by runner + +- Keep product UI and API journeys in `tests/e2e/`. +- Keep database, queue, multi-main, encryption, and process lifecycle tests in `tests/infrastructure/`. +- Keep Playwright-backed memory and canvas checks in `tests/performance/`. Keep infrastructure load specs in `tests/infrastructure/benchmarks/`. +- Keep local-only container benchmarks in `tests/infrastructure/benchmarks-local/`. +- Keep fixture and harness contract tests in `tests/framework/`. Run browser-free tests with Vitest. Run browser-backed contracts with `test:harness`. +- Use Playwright when tests need its browser, worker lifecycle, project matrix, fixtures, or managed containers. Use Vitest for browser-free tests that need none of these. + +## Write isolated tests + +- Start UI journeys with `n8n.start.*`. Keep selectors in page objects. +- Create test data through API helpers. Use `nanoid()` for unique names. Assert by identity rather than count. +- Give each test independent state. Use `n8n.start.withUser()` for another browser user and `api.createApiForUser()` for another API user. +- Configure `test.use()` at file scope. Use `TEST_ISOLATION` for a fresh worker database. Use `@db:reset` only in container projects. +- Set `N8N_USER_FOLDER` to a test-owned directory before importing n8n settings. Remove only paths the test created. + +See [test-writing patterns](docs/TESTING_PATTERNS.md) for examples and [accessibility checks](docs/ACCESSIBILITY.md) for axe and landmark tests. + +## Check changes + +Run focused checks from this package: + +```bash +pnpm test:unit +pnpm lint +pnpm typecheck +pnpm janitor +``` + +Run the changed Playwright spec with its project. Build the n8n image first when a container test must include product-code changes. See the [suite map](README.md#choose-a-suite) for commands. + +The [Janitor guide](../janitor/README.md) explains its rules and baseline. When you commit a Janitor-related fix, use `pnpm janitor tcr --execute`. Do not manually commit those fixes. Update `.janitor-baseline.json` separately after fixing violations. + +See the [orchestration guide](docs/ORCHESTRATION.md) when a change affects test distribution or shards. diff --git a/packages/testing/playwright/CLAUDE.md b/packages/quality/testing/playwright/CLAUDE.md similarity index 100% rename from packages/testing/playwright/CLAUDE.md rename to packages/quality/testing/playwright/CLAUDE.md diff --git a/packages/testing/playwright/CONTRIBUTING.md b/packages/quality/testing/playwright/CONTRIBUTING.md similarity index 100% rename from packages/testing/playwright/CONTRIBUTING.md rename to packages/quality/testing/playwright/CONTRIBUTING.md diff --git a/packages/testing/playwright/README.md b/packages/quality/testing/playwright/README.md similarity index 80% rename from packages/testing/playwright/README.md rename to packages/quality/testing/playwright/README.md index 509d38afb59..2392cf31767 100644 --- a/packages/testing/playwright/README.md +++ b/packages/quality/testing/playwright/README.md @@ -1,4 +1,4 @@ -# Playwright Test Orchestration Guide +# Playwright test runner Playwright is not only the browser E2E runner. This package uses Playwright's worker lifecycle and project model to orchestrate browsers, APIs, n8n processes, @@ -6,28 +6,34 @@ service containers, deployment topologies, diagnostics, and benchmark artifacts. ## Choose a suite -| Goal | Start here | -|------|------------| -| Test a product UI or API journey | `tests/e2e/` | -| Test PostgreSQL, queue mode, multi-main, encryption, or process lifecycle | `tests/infrastructure/` | -| Measure infrastructure throughput or resource use | [`tests/infrastructure/benchmarks/README.md`](tests/infrastructure/benchmarks/README.md) | -| Measure browser or canvas performance | `tests/performance/README.md` | -| Test fixtures, startup, telemetry, or harness behavior | `tests/framework/` | +Commands in this table run from the repository root. Container-backed tests need a current n8n image. Run `pnpm build:docker` first when you change product code. -Read `AGENTS.md` before you add a test. It defines suite boundaries, fixtures, -container capabilities, and required verification. +| Goal | Project or runner | Command | Guide | +| --- | --- | --- | --- | +| Test a product UI or API journey | `e2e` (local) or `:e2e` (container) | `pnpm --filter n8n-playwright test:local` | [E2E tests](tests/e2e/) | +| Test PostgreSQL, queue mode, multi-main, or process lifecycle | `:infrastructure` | `pnpm --filter n8n-playwright exec playwright test --project=postgres:infrastructure` | [Infrastructure tests](tests/infrastructure/) | +| Check accessibility within a product journey | E2E project with the `a11y` fixture | `pnpm --filter n8n-playwright test:local` | [Accessibility checks](docs/ACCESSIBILITY.md) | +| Measure idle memory, retention, or canvas performance | `performance` | `pnpm --filter n8n-playwright test:performance` | [Performance guide](tests/performance/README.md) | +| Measure infrastructure throughput and resource use | `benchmarking:infrastructure` | `pnpm --filter n8n-playwright test:benchmark` | [Infrastructure benchmarks](tests/infrastructure/benchmarks/README.md) | +| Investigate Instance AI memory with a local-only, Docker-backed run | `benchmark-memory-instanceai:infrastructure` | `pnpm --filter n8n-playwright exec playwright test --project=benchmark-memory-instanceai:infrastructure` | [Local benchmark setup](tests/infrastructure/benchmarks-local/README.md) | +| Test workflow execution and schemas | `cli-workflows` | `pnpm --filter n8n-playwright test:workflows` | [Workflow tests](tests/cli-workflows/README.md) | +| Check fixture, reporter, or helper code without a browser | Vitest | `pnpm --filter n8n-playwright test:unit` | [Test-writing patterns](docs/TESTING_PATTERNS.md) | +| Check browser-backed harness contracts | Harness Vitest config | `pnpm --filter n8n-playwright test:harness` | [Test-writing patterns](docs/TESTING_PATTERNS.md) | +| Run evaluation scenarios | `eval` | `pnpm --filter n8n-playwright test:evals` | [Evaluation tests](tests/evals/) | + +The Playwright package owns the runner and its specs. Standalone measurement tools live in [efficiency](../../efficiency/README.md). Read [AGENTS.md](AGENTS.md) before you change a test. The examples below run from this package unless noted. ## Development setup ```bash -pnpm install-browsers:local # in playwright directory -pnpm build:docker # from root first to test against local changes +pnpm install-browsers # in the Playwright package +pnpm build:docker # from the repository root for container tests of local product changes ``` ## Quick Start ```bash pnpm test:all # Run all tests (fresh containers, pnpm build:docker from root first to ensure local containers) pnpm test:local # Starts a local server and runs the E2E tests -N8N_BASE_URL=localhost:5068 pnpm test:local # Runs the E2E tests against the running instance +N8N_BASE_URL=http://localhost:5068 pnpm test:local # Runs the E2E tests against the running instance ``` ## Test Layout @@ -41,13 +47,7 @@ the test framework, fixtures, startup lifecycle, diagnostics, and harness contracts. They are not product E2E tests and must not be added under `tests/e2e/`. -Run the framework unit tests with the package Vitest configuration: - -```bash -pnpm exec vitest run tests/framework/telemetry.test.ts -``` - -Run the browser-backed harness contract tests with the dedicated configuration: +Run browser-free fixture, reporter, and helper tests with `pnpm test:unit`. The default Vitest configuration does not include `tests/framework/`. Run its browser-backed harness contracts with the dedicated configuration: ```bash pnpm test:harness @@ -107,7 +107,7 @@ containers makes startup faster. Other available services: `kafka`, `gitea`, `keycloak`, `kent`, `victoriaLogs`, `victoriaMetrics`, `vector`, `tracing`, `localstack`, `cloudflared`, `ngrok`. -See `packages/testing/containers/README.md` for the full list. +See `packages/quality/environments/containers/README.md` for the full list. **Tear down when you're done:** @@ -146,8 +146,7 @@ pnpm test:container:postgres # PostgreSQL pnpm test:container:queue # Queue mode pnpm test:container:multi-main # HA setup -pnpm test:performance # Runs the performance tests against Sqlite container -pnpm test:chaos # Runs the chaos tests +pnpm test:performance # Runs the performance tests against a SQLite container # Development @@ -496,101 +495,10 @@ node scripts/import-victoria-data.mjs --start victoria-metrics-export.jsonl vict - **Metrics UI:** http://localhost:8428/vmui/ - **Logs UI:** http://localhost:9428/select/vmui/ -## Janitor (Static Analysis) +## Check test architecture -Janitor enforces test architecture patterns via static analysis. It runs as a **pre-commit hook** and blocks new violations from being introduced. +Use [Janitor](../janitor/README.md) to check rules, inspect test impact, and find duplicate code. It tracks existing violations in `.janitor-baseline.json`. -Existing violations are tracked in a baseline file (`.janitor-baseline.json`) and don't block commits. Only **new** violations in your changed files will fail. +## Write a test -### Quick Commands - -```bash -# Run all rules on entire codebase -pnpm janitor - -# Run on a specific file -pnpm janitor --file=tests/e2e/my-test.spec.ts - -# Run a specific rule -pnpm janitor --rule=dead-code -pnpm janitor --rule=selector-purity - -# Dead code auto-removal -pnpm janitor:fix --rule=dead-code - -# List all rules -pnpm janitor --list - -# Verbose output (shows suggestions) -pnpm janitor --verbose -``` - -### Rules - -| Rule | Severity | What it enforces | -|------|----------|------------------| -| `selector-purity` | error | Tests/flows use page objects, not raw locators | -| `scope-lockdown` | error | Page locators scoped to their container | -| `boundary-protection` | error | Pages don't import other pages | -| `no-direct-page-instantiation` | error | Access pages through the facade, not `new XPage()` | -| `dead-code` | warning | No unused methods/properties [fixable] | -| `no-page-in-flow` | warning | Flows use page objects, not `page` directly | -| `api-purity` | warning | Tests use API services, not raw HTTP calls | -| `deduplication` | warning | Same test ID defined in one page object only | - -### Janitor Blocked My Commit - Now What? - -When the pre-commit hook blocks your commit, you'll see output like: - -``` -Found 2 violation(s) - -tests/e2e/my-test.spec.ts (2) - [ERR] L15: [selector-purity] Raw locator in test: page.getByTestId('save-button') - [ERR] L22: [selector-purity] Chained locator call: n8n.canvas.getNode('X').locator('.status') -``` - -**Steps to fix:** - -1. **Read the rule name and message** - it tells you exactly what's wrong -2. **Move the selector into a page object** - the fix is almost always "put this in a page object method instead" -3. **Re-run janitor on your file** to verify: `pnpm janitor --file=` -4. **Commit again** - -**Common fixes by rule:** - -| Rule | Problem | Fix | -|------|---------|-----| -| `selector-purity` | `page.getByTestId('x')` in test | Add a getter to the page object, call it from the test | -| `selector-purity` | `someLocator.locator('.child')` in test | Add a method to the page object that returns the specific element | -| `scope-lockdown` | `this.page.getByTestId('x')` in a component | Use `this.container.getByTestId('x')` instead | -| `boundary-protection` | Page importing another page | Move the composition to a flow/composable | -| `dead-code` | Unused method in page object | Delete it (or run `pnpm janitor:fix --rule=dead-code`) | - -**False positive?** If you believe the violation is wrong, raise it with the QA team. Don't bypass the hook. - -### Impact Analysis - -Find which tests are affected by a file or method change: - -```bash -# File-level: which tests use this page object? -pnpm janitor impact --file=pages/CanvasPage.ts - -# Method-level: which tests call this specific method? -pnpm janitor method-impact --method=CanvasPage.addNode - -# Pipe to playwright to run only affected tests -pnpm janitor impact --file=pages/CanvasPage.ts --test-list | xargs pnpm test:local -``` - -### Inventory (Codebase Discovery) - -```bash -pnpm janitor inventory # Full inventory -pnpm janitor inventory --summary # Summary counts -pnpm janitor inventory --category=pages # Single category -``` - -## Writing Tests -For guidelines on writing new tests, see [CONTRIBUTING.md](./CONTRIBUTING.md). +Use the [test-writing patterns](docs/TESTING_PATTERNS.md) for isolated state, users, and feature overrides. See [CONTRIBUTING.md](CONTRIBUTING.md) for package conventions. diff --git a/packages/testing/playwright/Types.ts b/packages/quality/testing/playwright/Types.ts similarity index 100% rename from packages/testing/playwright/Types.ts rename to packages/quality/testing/playwright/Types.ts diff --git a/packages/testing/playwright/composables/BuilderWizardComposer.ts b/packages/quality/testing/playwright/composables/BuilderWizardComposer.ts similarity index 100% rename from packages/testing/playwright/composables/BuilderWizardComposer.ts rename to packages/quality/testing/playwright/composables/BuilderWizardComposer.ts diff --git a/packages/testing/playwright/composables/CanvasComposer.ts b/packages/quality/testing/playwright/composables/CanvasComposer.ts similarity index 100% rename from packages/testing/playwright/composables/CanvasComposer.ts rename to packages/quality/testing/playwright/composables/CanvasComposer.ts diff --git a/packages/testing/playwright/composables/CredentialsComposer.ts b/packages/quality/testing/playwright/composables/CredentialsComposer.ts similarity index 100% rename from packages/testing/playwright/composables/CredentialsComposer.ts rename to packages/quality/testing/playwright/composables/CredentialsComposer.ts diff --git a/packages/testing/playwright/composables/DataTablesComposer.ts b/packages/quality/testing/playwright/composables/DataTablesComposer.ts similarity index 100% rename from packages/testing/playwright/composables/DataTablesComposer.ts rename to packages/quality/testing/playwright/composables/DataTablesComposer.ts diff --git a/packages/testing/playwright/composables/ExecutionsComposer.ts b/packages/quality/testing/playwright/composables/ExecutionsComposer.ts similarity index 100% rename from packages/testing/playwright/composables/ExecutionsComposer.ts rename to packages/quality/testing/playwright/composables/ExecutionsComposer.ts diff --git a/packages/testing/playwright/composables/MfaComposer.ts b/packages/quality/testing/playwright/composables/MfaComposer.ts similarity index 100% rename from packages/testing/playwright/composables/MfaComposer.ts rename to packages/quality/testing/playwright/composables/MfaComposer.ts diff --git a/packages/testing/playwright/composables/NodeDetailsViewComposer.ts b/packages/quality/testing/playwright/composables/NodeDetailsViewComposer.ts similarity index 100% rename from packages/testing/playwright/composables/NodeDetailsViewComposer.ts rename to packages/quality/testing/playwright/composables/NodeDetailsViewComposer.ts diff --git a/packages/testing/playwright/composables/OidcComposer.ts b/packages/quality/testing/playwright/composables/OidcComposer.ts similarity index 100% rename from packages/testing/playwright/composables/OidcComposer.ts rename to packages/quality/testing/playwright/composables/OidcComposer.ts diff --git a/packages/testing/playwright/composables/PartialExecutionComposer.ts b/packages/quality/testing/playwright/composables/PartialExecutionComposer.ts similarity index 100% rename from packages/testing/playwright/composables/PartialExecutionComposer.ts rename to packages/quality/testing/playwright/composables/PartialExecutionComposer.ts diff --git a/packages/testing/playwright/composables/ProjectComposer.ts b/packages/quality/testing/playwright/composables/ProjectComposer.ts similarity index 100% rename from packages/testing/playwright/composables/ProjectComposer.ts rename to packages/quality/testing/playwright/composables/ProjectComposer.ts diff --git a/packages/testing/playwright/composables/TemplatesComposer.ts b/packages/quality/testing/playwright/composables/TemplatesComposer.ts similarity index 100% rename from packages/testing/playwright/composables/TemplatesComposer.ts rename to packages/quality/testing/playwright/composables/TemplatesComposer.ts diff --git a/packages/testing/playwright/composables/TestEntryComposer.ts b/packages/quality/testing/playwright/composables/TestEntryComposer.ts similarity index 100% rename from packages/testing/playwright/composables/TestEntryComposer.ts rename to packages/quality/testing/playwright/composables/TestEntryComposer.ts diff --git a/packages/testing/playwright/composables/WorkflowComposer.ts b/packages/quality/testing/playwright/composables/WorkflowComposer.ts similarity index 100% rename from packages/testing/playwright/composables/WorkflowComposer.ts rename to packages/quality/testing/playwright/composables/WorkflowComposer.ts diff --git a/packages/testing/playwright/composables/journeys/admin-views-executions-list.ts b/packages/quality/testing/playwright/composables/journeys/admin-views-executions-list.ts similarity index 100% rename from packages/testing/playwright/composables/journeys/admin-views-executions-list.ts rename to packages/quality/testing/playwright/composables/journeys/admin-views-executions-list.ts diff --git a/packages/testing/playwright/config/ai-assistant-fixtures.ts b/packages/quality/testing/playwright/config/ai-assistant-fixtures.ts similarity index 100% rename from packages/testing/playwright/config/ai-assistant-fixtures.ts rename to packages/quality/testing/playwright/config/ai-assistant-fixtures.ts diff --git a/packages/testing/playwright/config/ai-builder-fixtures.ts b/packages/quality/testing/playwright/config/ai-builder-fixtures.ts similarity index 100% rename from packages/testing/playwright/config/ai-builder-fixtures.ts rename to packages/quality/testing/playwright/config/ai-builder-fixtures.ts diff --git a/packages/testing/playwright/config/ai-builder-wizard-fixtures.ts b/packages/quality/testing/playwright/config/ai-builder-wizard-fixtures.ts similarity index 100% rename from packages/testing/playwright/config/ai-builder-wizard-fixtures.ts rename to packages/quality/testing/playwright/config/ai-builder-wizard-fixtures.ts diff --git a/packages/testing/playwright/config/constants.ts b/packages/quality/testing/playwright/config/constants.ts similarity index 100% rename from packages/testing/playwright/config/constants.ts rename to packages/quality/testing/playwright/config/constants.ts diff --git a/packages/testing/playwright/config/intercepts.ts b/packages/quality/testing/playwright/config/intercepts.ts similarity index 100% rename from packages/testing/playwright/config/intercepts.ts rename to packages/quality/testing/playwright/config/intercepts.ts diff --git a/packages/testing/playwright/config/test-users.ts b/packages/quality/testing/playwright/config/test-users.ts similarity index 100% rename from packages/testing/playwright/config/test-users.ts rename to packages/quality/testing/playwright/config/test-users.ts diff --git a/packages/testing/playwright/coverage-options.test.ts b/packages/quality/testing/playwright/coverage-options.test.ts similarity index 100% rename from packages/testing/playwright/coverage-options.test.ts rename to packages/quality/testing/playwright/coverage-options.test.ts diff --git a/packages/testing/playwright/coverage-options.ts b/packages/quality/testing/playwright/coverage-options.ts similarity index 100% rename from packages/testing/playwright/coverage-options.ts rename to packages/quality/testing/playwright/coverage-options.ts diff --git a/packages/testing/playwright/currents.config.ts b/packages/quality/testing/playwright/currents.config.ts similarity index 100% rename from packages/testing/playwright/currents.config.ts rename to packages/quality/testing/playwright/currents.config.ts diff --git a/packages/quality/testing/playwright/docs/ACCESSIBILITY.md b/packages/quality/testing/playwright/docs/ACCESSIBILITY.md new file mode 100644 index 00000000000..bbfd70727ee --- /dev/null +++ b/packages/quality/testing/playwright/docs/ACCESSIBILITY.md @@ -0,0 +1,46 @@ +# Add an accessibility check to a Playwright journey + +Use the `a11y` fixture in a product journey. It runs axe-core against a named part of the page. + +1. Select a bucket from [`A11Y_BUCKETS`](../fixtures/a11y.ts). The buckets are `page`, `canvas`, `ndv`, `node-creator`, `sidebar`, `modal`, and `instance-ai`. +2. Check the bucket after the relevant UI appears. Assert the result when the journey must fail on a violation. + +```typescript +test('canvas is accessible', async ({ n8n, a11y }) => { + await n8n.start.fromBlankCanvas(); + const violations = await a11y.check('canvas'); + expect(violations).toEqual([]); +}); +``` + +The fixture uses WCAG 2.1 A and AA tags by default. Pass `{ tags, disableRules }` to change the rules for one scan. A scan that cannot run logs a warning and returns an empty array. Check that the target UI is present before the scan. + +For a second user's page, use `a11y.for(otherN8n).check('modal')`. Both checkers attach scans to the same test. + +## Check landmark structure + +Use [`assertMainLandmarkStructure`](../utils/a11y-landmark-check.ts) when the journey must check the composed page layout. It checks that the page has one `
` element outside other landmarks and one `id="content"`. + +```typescript +import { assertMainLandmarkStructure } from '../../../utils/a11y-landmark-check'; + +await assertMainLandmarkStructure(n8n.page); +``` + +Use `checkMainLandmarkStructure(page)` to receive `{ ok, problems }` instead of throwing. The [a11y suite](../tests/e2e/a11y/) checks this helper with synthetic markup. + +## Inspect a report or set a budget + +Scans attach to their tests by default. Set `PLAYWRIGHT_A11Y_REPORT=1` to write an HTML report and a job summary: + +```bash +PLAYWRIGHT_A11Y_REPORT=1 pnpm --filter n8n-playwright test:local +``` + +Checks report violations without failing by default. Set `PLAYWRIGHT_A11Y_MAX_VIOLATIONS` to fail a test when its violation count exceeds the limit: + +```bash +PLAYWRIGHT_A11Y_MAX_VIOLATIONS=5 pnpm --filter n8n-playwright test:local +``` + +The budget does not apply when the test already failed for another reason. The [reporter](../reporters/a11y-reporter.ts) scores each bucket and attaches metrics. CI also sends bucket scores through the [QA metrics pipeline](../../../../../.github/CI-TELEMETRY.md). diff --git a/packages/testing/playwright/docs/HARNESS_BASELINE.md b/packages/quality/testing/playwright/docs/HARNESS_BASELINE.md similarity index 99% rename from packages/testing/playwright/docs/HARNESS_BASELINE.md rename to packages/quality/testing/playwright/docs/HARNESS_BASELINE.md index c05bffad3af..6e5e9ad1225 100644 --- a/packages/testing/playwright/docs/HARNESS_BASELINE.md +++ b/packages/quality/testing/playwright/docs/HARNESS_BASELINE.md @@ -204,7 +204,7 @@ This initial suite does not by itself complete DEVP-1064. ## Commands -All commands run from `packages/testing/playwright`. Discovery and listing do not execute application tests. +All commands run from `packages/quality/testing/playwright`. Discovery and listing do not execute application tests. | Purpose | Command | | --- | --- | diff --git a/packages/testing/playwright/docs/ORCHESTRATION.md b/packages/quality/testing/playwright/docs/ORCHESTRATION.md similarity index 98% rename from packages/testing/playwright/docs/ORCHESTRATION.md rename to packages/quality/testing/playwright/docs/ORCHESTRATION.md index 6b1f5d2c008..ed9caf2e181 100644 --- a/packages/testing/playwright/docs/ORCHESTRATION.md +++ b/packages/quality/testing/playwright/docs/ORCHESTRATION.md @@ -147,7 +147,7 @@ echo "$MATRIX_SPECS" | janitor filter-shard ## Refreshing Metrics ```bash -CURRENTS_API_KEY= node packages/testing/playwright/scripts/fetch-currents-metrics.mjs --project=nHHLA5 +CURRENTS_API_KEY= node packages/quality/testing/playwright/scripts/fetch-currents-metrics.mjs --project=nHHLA5 ``` This fetches the last 7 days of test durations from Currents, aggregates by spec, and writes to `.github/test-metrics/playwright.json`. The PR-CI project is `nHHLA5` (n8n-ci); the legacy `LRxcNt` project still backs the nightly e2e workflows. diff --git a/packages/quality/testing/playwright/docs/TESTING_PATTERNS.md b/packages/quality/testing/playwright/docs/TESTING_PATTERNS.md new file mode 100644 index 00000000000..ce099f7a384 --- /dev/null +++ b/packages/quality/testing/playwright/docs/TESTING_PATTERNS.md @@ -0,0 +1,53 @@ +# Write an isolated Playwright test + +Use the [suite map](../README.md#choose-a-suite) to select a project before you add a test. Use Playwright when you need a browser, its worker lifecycle, or managed services. Use Vitest for browser-free unit tests. + +## Start a UI journey + +Use `n8n.start.*` so the page finishes loading before the test interacts with it. Create test data with API helpers when needed. + +```typescript +test('opens a blank canvas', async ({ n8n }) => { + await n8n.start.fromBlankCanvas(); + await expect(n8n.canvas.canvasPane()).toBeVisible(); +}); +``` + +Use `nanoid()` for parallel-safe test names. Assert by identity instead of list count. Use page objects for selectors. + +## Act as another user + +Create the user through the API. Use `n8n.start.withUser(user)` to get an isolated browser context. Use `api.createApiForUser(user)` when the test needs only an API context. + +```typescript +const member = await api.publicApi.createUser({ role: 'global:member' }); +const memberN8n = await n8n.start.withUser(member); +await memberN8n.navigate.toWorkflows(); +``` + +## Configure an isolated environment + +Set `test.use()` at file scope. Give `TEST_ISOLATION` a unique value when tests need a fresh database. + +```typescript +test.use({ capability: { env: { TEST_ISOLATION: 'my-feature' } } }); +``` + +Add `@db:reset` to a describe block when each test must reset the database. This reset works only in container mode. See [Playwright fixtures](../fixtures/capabilities.ts) for available capabilities. + +## Set a feature override + +Use `TestRequirements` to put experiment overrides in test storage: + +```typescript +const requirements: TestRequirements = { + storage: { N8N_EXPERIMENT_OVERRIDES: JSON.stringify({ 'my_experiment': true }) }, +}; +test.use({ requirements }); +``` + +The `n8n` fixture enables project features. For an API-only test, call `api.enableProjectFeatures()` when required. See the [test requirements type](../Types.ts) for other overrides. + +## Verify an existing journey after a refactor + +Read the old test name and its assertion. Keep an assertion that proves the same behavior. Run the changed spec, then run `pnpm --filter n8n-playwright janitor` to check test architecture. See the [test migration guide](https://www.notion.so/n8n/Best-Practices-Test-Migration-Refactoring) for more cases. diff --git a/packages/testing/playwright/docs/TROUBLESHOOTING.md b/packages/quality/testing/playwright/docs/TROUBLESHOOTING.md similarity index 100% rename from packages/testing/playwright/docs/TROUBLESHOOTING.md rename to packages/quality/testing/playwright/docs/TROUBLESHOOTING.md diff --git a/packages/testing/playwright/eslint.config.mjs b/packages/quality/testing/playwright/eslint.config.mjs similarity index 100% rename from packages/testing/playwright/eslint.config.mjs rename to packages/quality/testing/playwright/eslint.config.mjs diff --git a/packages/testing/playwright/expectations/chat-hub/1770382688510-api.anthropic.com-GET-_v1_models-2ef5ce20.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382688510-api.anthropic.com-GET-_v1_models-2ef5ce20.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382688510-api.anthropic.com-GET-_v1_models-2ef5ce20.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382688510-api.anthropic.com-GET-_v1_models-2ef5ce20.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382688511-unknown-host-POST-_v1_messages-95128868.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382688511-unknown-host-POST-_v1_messages-95128868.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382688511-unknown-host-POST-_v1_messages-95128868.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382688511-unknown-host-POST-_v1_messages-95128868.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382690036-api.anthropic.com-GET-_v1_models-2ef5ce20.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382690036-api.anthropic.com-GET-_v1_models-2ef5ce20.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382690036-api.anthropic.com-GET-_v1_models-2ef5ce20.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382690036-api.anthropic.com-GET-_v1_models-2ef5ce20.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382690037-unknown-host-POST-_v1_messages-7e7f525e.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382690037-unknown-host-POST-_v1_messages-7e7f525e.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382690037-unknown-host-POST-_v1_messages-7e7f525e.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382690037-unknown-host-POST-_v1_messages-7e7f525e.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382690037-unknown-host-POST-_v1_messages-f0cbca27.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382690037-unknown-host-POST-_v1_messages-f0cbca27.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382690037-unknown-host-POST-_v1_messages-f0cbca27.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382690037-unknown-host-POST-_v1_messages-f0cbca27.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382691488-api.anthropic.com-GET-_v1_models-2ef5ce20.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382691488-api.anthropic.com-GET-_v1_models-2ef5ce20.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382691488-api.anthropic.com-GET-_v1_models-2ef5ce20.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382691488-api.anthropic.com-GET-_v1_models-2ef5ce20.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-170a9933.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-170a9933.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-170a9933.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-170a9933.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-7e7f525e.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-7e7f525e.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-7e7f525e.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-7e7f525e.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-f0cbca27.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-f0cbca27.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-f0cbca27.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382691489-unknown-host-POST-_v1_messages-f0cbca27.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382916894-unknown-host-POST-_v1_messages-099aa697.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382916894-unknown-host-POST-_v1_messages-099aa697.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382916894-unknown-host-POST-_v1_messages-099aa697.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382916894-unknown-host-POST-_v1_messages-099aa697.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382916895-unknown-host-POST-_v1_messages-e2b1cf00.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382916895-unknown-host-POST-_v1_messages-e2b1cf00.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382916895-unknown-host-POST-_v1_messages-e2b1cf00.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382916895-unknown-host-POST-_v1_messages-e2b1cf00.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382919029-unknown-host-POST-_v1_messages-1576c6ca.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382919029-unknown-host-POST-_v1_messages-1576c6ca.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382919029-unknown-host-POST-_v1_messages-1576c6ca.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382919029-unknown-host-POST-_v1_messages-1576c6ca.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382919029-unknown-host-POST-_v1_messages-24f965d5.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382919029-unknown-host-POST-_v1_messages-24f965d5.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382919029-unknown-host-POST-_v1_messages-24f965d5.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382919029-unknown-host-POST-_v1_messages-24f965d5.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382922975-unknown-host-POST-_v1_messages-71446cdb.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382922975-unknown-host-POST-_v1_messages-71446cdb.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382922975-unknown-host-POST-_v1_messages-71446cdb.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382922975-unknown-host-POST-_v1_messages-71446cdb.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382922975-unknown-host-POST-_v1_messages-806f7911.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382922975-unknown-host-POST-_v1_messages-806f7911.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382922975-unknown-host-POST-_v1_messages-806f7911.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382922975-unknown-host-POST-_v1_messages-806f7911.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-202bcf80.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-202bcf80.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-202bcf80.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-202bcf80.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-afa85f26.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-afa85f26.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-afa85f26.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-afa85f26.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-b3ec11c7.json b/packages/quality/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-b3ec11c7.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-b3ec11c7.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770382922976-unknown-host-POST-_v1_messages-b3ec11c7.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770383755037-unknown-host-POST-_v1_messages-6b8c1e5e.json b/packages/quality/testing/playwright/expectations/chat-hub/1770383755037-unknown-host-POST-_v1_messages-6b8c1e5e.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770383755037-unknown-host-POST-_v1_messages-6b8c1e5e.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770383755037-unknown-host-POST-_v1_messages-6b8c1e5e.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770383759202-unknown-host-POST-_v1_messages-6b8c1e5e.json b/packages/quality/testing/playwright/expectations/chat-hub/1770383759202-unknown-host-POST-_v1_messages-6b8c1e5e.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770383759202-unknown-host-POST-_v1_messages-6b8c1e5e.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770383759202-unknown-host-POST-_v1_messages-6b8c1e5e.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770383759203-unknown-host-POST-_v1_messages-5d13c513.json b/packages/quality/testing/playwright/expectations/chat-hub/1770383759203-unknown-host-POST-_v1_messages-5d13c513.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770383759203-unknown-host-POST-_v1_messages-5d13c513.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770383759203-unknown-host-POST-_v1_messages-5d13c513.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770383759203-unknown-host-POST-_v1_messages-b72fba5a.json b/packages/quality/testing/playwright/expectations/chat-hub/1770383759203-unknown-host-POST-_v1_messages-b72fba5a.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770383759203-unknown-host-POST-_v1_messages-b72fba5a.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770383759203-unknown-host-POST-_v1_messages-b72fba5a.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770384499975-unknown-host-POST-_v1_messages-e80e3bda.json b/packages/quality/testing/playwright/expectations/chat-hub/1770384499975-unknown-host-POST-_v1_messages-e80e3bda.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770384499975-unknown-host-POST-_v1_messages-e80e3bda.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770384499975-unknown-host-POST-_v1_messages-e80e3bda.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770384499976-unknown-host-POST-_v1_messages-9d3b55c0.json b/packages/quality/testing/playwright/expectations/chat-hub/1770384499976-unknown-host-POST-_v1_messages-9d3b55c0.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770384499976-unknown-host-POST-_v1_messages-9d3b55c0.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770384499976-unknown-host-POST-_v1_messages-9d3b55c0.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770384638417-unknown-host-POST-_v1_messages-cdbee010.json b/packages/quality/testing/playwright/expectations/chat-hub/1770384638417-unknown-host-POST-_v1_messages-cdbee010.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770384638417-unknown-host-POST-_v1_messages-cdbee010.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770384638417-unknown-host-POST-_v1_messages-cdbee010.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770384643848-unknown-host-POST-_v1_messages-cdbee010.json b/packages/quality/testing/playwright/expectations/chat-hub/1770384643848-unknown-host-POST-_v1_messages-cdbee010.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770384643848-unknown-host-POST-_v1_messages-cdbee010.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770384643848-unknown-host-POST-_v1_messages-cdbee010.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770384643849-unknown-host-POST-_v1_messages-68299689.json b/packages/quality/testing/playwright/expectations/chat-hub/1770384643849-unknown-host-POST-_v1_messages-68299689.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770384643849-unknown-host-POST-_v1_messages-68299689.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770384643849-unknown-host-POST-_v1_messages-68299689.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770384643849-unknown-host-POST-_v1_messages-9de947e4.json b/packages/quality/testing/playwright/expectations/chat-hub/1770384643849-unknown-host-POST-_v1_messages-9de947e4.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770384643849-unknown-host-POST-_v1_messages-9de947e4.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770384643849-unknown-host-POST-_v1_messages-9de947e4.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770385219492-unknown-host-POST-_v1_messages-9c4e545c.json b/packages/quality/testing/playwright/expectations/chat-hub/1770385219492-unknown-host-POST-_v1_messages-9c4e545c.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770385219492-unknown-host-POST-_v1_messages-9c4e545c.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770385219492-unknown-host-POST-_v1_messages-9c4e545c.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770385602692-unknown-host-POST-_v1_messages-3e37cab7.json b/packages/quality/testing/playwright/expectations/chat-hub/1770385602692-unknown-host-POST-_v1_messages-3e37cab7.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770385602692-unknown-host-POST-_v1_messages-3e37cab7.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770385602692-unknown-host-POST-_v1_messages-3e37cab7.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770385602692-unknown-host-POST-_v1_messages-cef8feb2.json b/packages/quality/testing/playwright/expectations/chat-hub/1770385602692-unknown-host-POST-_v1_messages-cef8feb2.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770385602692-unknown-host-POST-_v1_messages-cef8feb2.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770385602692-unknown-host-POST-_v1_messages-cef8feb2.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770385602693-unknown-host-POST-_v1_messages-0d54ab7a.json b/packages/quality/testing/playwright/expectations/chat-hub/1770385602693-unknown-host-POST-_v1_messages-0d54ab7a.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770385602693-unknown-host-POST-_v1_messages-0d54ab7a.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770385602693-unknown-host-POST-_v1_messages-0d54ab7a.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770385602693-unknown-host-POST-_v1_messages-9d702ab3.json b/packages/quality/testing/playwright/expectations/chat-hub/1770385602693-unknown-host-POST-_v1_messages-9d702ab3.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770385602693-unknown-host-POST-_v1_messages-9d702ab3.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770385602693-unknown-host-POST-_v1_messages-9d702ab3.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json b/packages/quality/testing/playwright/expectations/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770386243139-s.jina.ai-GET-_-fc5e3463.json diff --git a/packages/testing/playwright/expectations/chat-hub/1770386368372-unknown-host-POST-_v1_messages-4000e3a5.json b/packages/quality/testing/playwright/expectations/chat-hub/1770386368372-unknown-host-POST-_v1_messages-4000e3a5.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1770386368372-unknown-host-POST-_v1_messages-4000e3a5.json rename to packages/quality/testing/playwright/expectations/chat-hub/1770386368372-unknown-host-POST-_v1_messages-4000e3a5.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445945572-unknown-host-POST-_v1_messages-1755b374.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445945572-unknown-host-POST-_v1_messages-1755b374.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445945572-unknown-host-POST-_v1_messages-1755b374.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445945572-unknown-host-POST-_v1_messages-1755b374.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445949729-unknown-host-POST-_v1_messages-f8dcaa50.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445949729-unknown-host-POST-_v1_messages-f8dcaa50.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445949729-unknown-host-POST-_v1_messages-f8dcaa50.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445949729-unknown-host-POST-_v1_messages-f8dcaa50.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445949730-unknown-host-POST-_v1_messages-076c9849.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445949730-unknown-host-POST-_v1_messages-076c9849.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445949730-unknown-host-POST-_v1_messages-076c9849.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445949730-unknown-host-POST-_v1_messages-076c9849.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445954282-unknown-host-POST-_v1_messages-c19411fc.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445954282-unknown-host-POST-_v1_messages-c19411fc.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445954282-unknown-host-POST-_v1_messages-c19411fc.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445954282-unknown-host-POST-_v1_messages-c19411fc.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445954283-unknown-host-POST-_v1_messages-6fb950ce.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445954283-unknown-host-POST-_v1_messages-6fb950ce.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445954283-unknown-host-POST-_v1_messages-6fb950ce.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445954283-unknown-host-POST-_v1_messages-6fb950ce.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445960187-unknown-host-POST-_v1_messages-756ab548.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445960187-unknown-host-POST-_v1_messages-756ab548.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445960187-unknown-host-POST-_v1_messages-756ab548.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445960187-unknown-host-POST-_v1_messages-756ab548.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445960187-unknown-host-POST-_v1_messages-8c00034c.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445960187-unknown-host-POST-_v1_messages-8c00034c.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445960187-unknown-host-POST-_v1_messages-8c00034c.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445960187-unknown-host-POST-_v1_messages-8c00034c.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445968121-unknown-host-POST-_v1_messages-75a7d1fd.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445968121-unknown-host-POST-_v1_messages-75a7d1fd.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445968121-unknown-host-POST-_v1_messages-75a7d1fd.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445968121-unknown-host-POST-_v1_messages-75a7d1fd.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445968121-unknown-host-POST-_v1_messages-77344463.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445968121-unknown-host-POST-_v1_messages-77344463.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445968121-unknown-host-POST-_v1_messages-77344463.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445968121-unknown-host-POST-_v1_messages-77344463.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445982455-unknown-host-POST-_v1_messages-552904fa.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445982455-unknown-host-POST-_v1_messages-552904fa.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445982455-unknown-host-POST-_v1_messages-552904fa.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445982455-unknown-host-POST-_v1_messages-552904fa.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-0990c96f.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-0990c96f.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-0990c96f.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-0990c96f.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-1cc9eee1.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-1cc9eee1.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-1cc9eee1.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-1cc9eee1.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-552904fa.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-552904fa.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-552904fa.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-552904fa.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-dedc7701.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-dedc7701.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-dedc7701.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445982456-unknown-host-POST-_v1_messages-dedc7701.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777445992350-unknown-host-POST-_v1_messages-95b799cc.json b/packages/quality/testing/playwright/expectations/chat-hub/1777445992350-unknown-host-POST-_v1_messages-95b799cc.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777445992350-unknown-host-POST-_v1_messages-95b799cc.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777445992350-unknown-host-POST-_v1_messages-95b799cc.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777446004258-unknown-host-POST-_v1_messages-6827a9e7.json b/packages/quality/testing/playwright/expectations/chat-hub/1777446004258-unknown-host-POST-_v1_messages-6827a9e7.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777446004258-unknown-host-POST-_v1_messages-6827a9e7.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777446004258-unknown-host-POST-_v1_messages-6827a9e7.json diff --git a/packages/testing/playwright/expectations/chat-hub/1777446004258-unknown-host-POST-_v1_messages-a3133d3a.json b/packages/quality/testing/playwright/expectations/chat-hub/1777446004258-unknown-host-POST-_v1_messages-a3133d3a.json similarity index 100% rename from packages/testing/playwright/expectations/chat-hub/1777446004258-unknown-host-POST-_v1_messages-a3133d3a.json rename to packages/quality/testing/playwright/expectations/chat-hub/1777446004258-unknown-host-POST-_v1_messages-a3133d3a.json diff --git a/packages/testing/playwright/expectations/evaluations/1756994893546-oauth2.googleapis.com-POST-_token-58f6fdf2.json b/packages/quality/testing/playwright/expectations/evaluations/1756994893546-oauth2.googleapis.com-POST-_token-58f6fdf2.json similarity index 100% rename from packages/testing/playwright/expectations/evaluations/1756994893546-oauth2.googleapis.com-POST-_token-58f6fdf2.json rename to packages/quality/testing/playwright/expectations/evaluations/1756994893546-oauth2.googleapis.com-POST-_token-58f6fdf2.json diff --git a/packages/testing/playwright/expectations/evaluations/1756994893547-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs-185c9dd7.json b/packages/quality/testing/playwright/expectations/evaluations/1756994893547-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs-185c9dd7.json similarity index 100% rename from packages/testing/playwright/expectations/evaluations/1756994893547-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs-185c9dd7.json rename to packages/quality/testing/playwright/expectations/evaluations/1756994893547-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs-185c9dd7.json diff --git a/packages/testing/playwright/expectations/evaluations/1756994893548-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values__Sheet2_-7746917a.json b/packages/quality/testing/playwright/expectations/evaluations/1756994893548-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values__Sheet2_-7746917a.json similarity index 100% rename from packages/testing/playwright/expectations/evaluations/1756994893548-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values__Sheet2_-7746917a.json rename to packages/quality/testing/playwright/expectations/evaluations/1756994893548-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values__Sheet2_-7746917a.json diff --git a/packages/testing/playwright/expectations/evaluations/1756994893549-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_2_1000-e7fa67bd.json b/packages/quality/testing/playwright/expectations/evaluations/1756994893549-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_2_1000-e7fa67bd.json similarity index 100% rename from packages/testing/playwright/expectations/evaluations/1756994893549-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_2_1000-e7fa67bd.json rename to packages/quality/testing/playwright/expectations/evaluations/1756994893549-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_2_1000-e7fa67bd.json diff --git a/packages/testing/playwright/expectations/evaluations/1756994893550-sheets.googleapis.com-POST-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_batchUpdate-19f43fca.json b/packages/quality/testing/playwright/expectations/evaluations/1756994893550-sheets.googleapis.com-POST-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_batchUpdate-19f43fca.json similarity index 100% rename from packages/testing/playwright/expectations/evaluations/1756994893550-sheets.googleapis.com-POST-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_batchUpdate-19f43fca.json rename to packages/quality/testing/playwright/expectations/evaluations/1756994893550-sheets.googleapis.com-POST-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_batchUpdate-19f43fca.json diff --git a/packages/testing/playwright/expectations/evaluations/1756994893550-sheets.googleapis.com-PUT-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_1_1-c0a137d1.json b/packages/quality/testing/playwright/expectations/evaluations/1756994893550-sheets.googleapis.com-PUT-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_1_1-c0a137d1.json similarity index 100% rename from packages/testing/playwright/expectations/evaluations/1756994893550-sheets.googleapis.com-PUT-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_1_1-c0a137d1.json rename to packages/quality/testing/playwright/expectations/evaluations/1756994893550-sheets.googleapis.com-PUT-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_1_1-c0a137d1.json diff --git a/packages/testing/playwright/expectations/evaluations/1756994893551-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_3_1000-1bdb2093.json b/packages/quality/testing/playwright/expectations/evaluations/1756994893551-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_3_1000-1bdb2093.json similarity index 100% rename from packages/testing/playwright/expectations/evaluations/1756994893551-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_3_1000-1bdb2093.json rename to packages/quality/testing/playwright/expectations/evaluations/1756994893551-sheets.googleapis.com-GET-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_Sheet2_3_1000-1bdb2093.json diff --git a/packages/testing/playwright/expectations/evaluations/1756994893552-sheets.googleapis.com-POST-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_batchUpdate-65f181a6.json b/packages/quality/testing/playwright/expectations/evaluations/1756994893552-sheets.googleapis.com-POST-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_batchUpdate-65f181a6.json similarity index 100% rename from packages/testing/playwright/expectations/evaluations/1756994893552-sheets.googleapis.com-POST-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_batchUpdate-65f181a6.json rename to packages/quality/testing/playwright/expectations/evaluations/1756994893552-sheets.googleapis.com-POST-_v4_spreadsheets_1zJu8zLtFc3rbZPAWqKBh7TIou59StJr7HLn0nUy0bqs_values_batchUpdate-65f181a6.json diff --git a/packages/testing/playwright/expectations/execution.logs/1777281716392-unknown-host-POST-_v1_messages-3002af3d.json b/packages/quality/testing/playwright/expectations/execution.logs/1777281716392-unknown-host-POST-_v1_messages-3002af3d.json similarity index 100% rename from packages/testing/playwright/expectations/execution.logs/1777281716392-unknown-host-POST-_v1_messages-3002af3d.json rename to packages/quality/testing/playwright/expectations/execution.logs/1777281716392-unknown-host-POST-_v1_messages-3002af3d.json diff --git a/packages/testing/playwright/expectations/execution.logs/1777281716392-unknown-host-POST-_v1_messages-hey-a1b2c3d4.json b/packages/quality/testing/playwright/expectations/execution.logs/1777281716392-unknown-host-POST-_v1_messages-hey-a1b2c3d4.json similarity index 100% rename from packages/testing/playwright/expectations/execution.logs/1777281716392-unknown-host-POST-_v1_messages-hey-a1b2c3d4.json rename to packages/quality/testing/playwright/expectations/execution.logs/1777281716392-unknown-host-POST-_v1_messages-hey-a1b2c3d4.json diff --git a/packages/testing/playwright/expectations/hitl-for-tools/1769166878316-unknown-host-POST-_v1_responses-2bb80a7e.json b/packages/quality/testing/playwright/expectations/hitl-for-tools/1769166878316-unknown-host-POST-_v1_responses-2bb80a7e.json similarity index 100% rename from packages/testing/playwright/expectations/hitl-for-tools/1769166878316-unknown-host-POST-_v1_responses-2bb80a7e.json rename to packages/quality/testing/playwright/expectations/hitl-for-tools/1769166878316-unknown-host-POST-_v1_responses-2bb80a7e.json diff --git a/packages/testing/playwright/expectations/hitl-for-tools/1769166878317-unknown-host-POST-_v1_responses-5da732d2.json b/packages/quality/testing/playwright/expectations/hitl-for-tools/1769166878317-unknown-host-POST-_v1_responses-5da732d2.json similarity index 100% rename from packages/testing/playwright/expectations/hitl-for-tools/1769166878317-unknown-host-POST-_v1_responses-5da732d2.json rename to packages/quality/testing/playwright/expectations/hitl-for-tools/1769166878317-unknown-host-POST-_v1_responses-5da732d2.json diff --git a/packages/testing/playwright/expectations/instance-ai-memory/.gitignore b/packages/quality/testing/playwright/expectations/instance-ai-memory/.gitignore similarity index 100% rename from packages/testing/playwright/expectations/instance-ai-memory/.gitignore rename to packages/quality/testing/playwright/expectations/instance-ai-memory/.gitignore diff --git a/packages/testing/playwright/expectations/instance-ai/mode-multi-main-streams-a-run-produced-on-one-main-to-an-sse-held-by-another/0000-1782824962620-unknown-host-POST-_v1_messages-dcc60945.json b/packages/quality/testing/playwright/expectations/instance-ai/mode-multi-main-streams-a-run-produced-on-one-main-to-an-sse-held-by-another/0000-1782824962620-unknown-host-POST-_v1_messages-dcc60945.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/mode-multi-main-streams-a-run-produced-on-one-main-to-an-sse-held-by-another/0000-1782824962620-unknown-host-POST-_v1_messages-dcc60945.json rename to packages/quality/testing/playwright/expectations/instance-ai/mode-multi-main-streams-a-run-produced-on-one-main-to-an-sse-held-by-another/0000-1782824962620-unknown-host-POST-_v1_messages-dcc60945.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0000-1783351699671-unknown-host-POST-_v1_messages-f26fdf11.json b/packages/quality/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0000-1783351699671-unknown-host-POST-_v1_messages-f26fdf11.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0000-1783351699671-unknown-host-POST-_v1_messages-f26fdf11.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0000-1783351699671-unknown-host-POST-_v1_messages-f26fdf11.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0001-1783351699673-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0001-1783351699673-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0001-1783351699673-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0001-1783351699673-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0002-1783351699674-unknown-host-POST-_v1_messages-ea1d2553.json b/packages/quality/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0002-1783351699674-unknown-host-POST-_v1_messages-ea1d2553.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0002-1783351699674-unknown-host-POST-_v1_messages-ea1d2553.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0002-1783351699674-unknown-host-POST-_v1_messages-ea1d2553.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0003-1783351699675-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0003-1783351699675-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0003-1783351699675-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/0003-1783351699675-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-allow-re-running-workflow-after-initial-execution/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0000-1780493870906-unknown-host-POST-_v1_messages-3c003bc2.json b/packages/quality/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0000-1780493870906-unknown-host-POST-_v1_messages-3c003bc2.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0000-1780493870906-unknown-host-POST-_v1_messages-3c003bc2.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0000-1780493870906-unknown-host-POST-_v1_messages-3c003bc2.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0001-1780493870908-unknown-host-POST-_v1_messages-91029a75.json b/packages/quality/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0001-1780493870908-unknown-host-POST-_v1_messages-91029a75.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0001-1780493870908-unknown-host-POST-_v1_messages-91029a75.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0001-1780493870908-unknown-host-POST-_v1_messages-91029a75.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0002-1780493870909-unknown-host-POST-_v1_messages-77bad225.json b/packages/quality/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0002-1780493870909-unknown-host-POST-_v1_messages-77bad225.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0002-1780493870909-unknown-host-POST-_v1_messages-77bad225.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/0002-1780493870909-unknown-host-POST-_v1_messages-77bad225.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-apply-parameter-and-credential-edits-and-persist-them-to-the-workflow/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0000-1783351755542-unknown-host-POST-_v1_messages-302c00c6.json b/packages/quality/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0000-1783351755542-unknown-host-POST-_v1_messages-302c00c6.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0000-1783351755542-unknown-host-POST-_v1_messages-302c00c6.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0000-1783351755542-unknown-host-POST-_v1_messages-302c00c6.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0001-1783351755543-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0001-1783351755543-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0001-1783351755543-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0001-1783351755543-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0002-1783351755545-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0002-1783351755545-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0002-1783351755545-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/0002-1783351755545-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-auto-open-preview-panel-when-workflow-is-built/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/0000-1780493855370-unknown-host-POST-_v1_messages-0854c325.json b/packages/quality/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/0000-1780493855370-unknown-host-POST-_v1_messages-0854c325.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/0000-1780493855370-unknown-host-POST-_v1_messages-0854c325.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/0000-1780493855370-unknown-host-POST-_v1_messages-0854c325.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/0001-1780493855371-unknown-host-POST-_v1_messages-0942c6d0.json b/packages/quality/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/0001-1780493855371-unknown-host-POST-_v1_messages-0942c6d0.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/0001-1780493855371-unknown-host-POST-_v1_messages-0942c6d0.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/0001-1780493855371-unknown-host-POST-_v1_messages-0942c6d0.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-clear-required-parameter-issue-indicator-when-the-field-is-filled/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0000-1783351880066-unknown-host-POST-_v1_messages-65904408.json b/packages/quality/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0000-1783351880066-unknown-host-POST-_v1_messages-65904408.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0000-1783351880066-unknown-host-POST-_v1_messages-65904408.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0000-1783351880066-unknown-host-POST-_v1_messages-65904408.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0001-1783351880068-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0001-1783351880068-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0001-1783351880068-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0001-1783351880068-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0002-1783351880069-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0002-1783351880069-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0002-1783351880069-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0002-1783351880069-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0003-1783351880070-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0003-1783351880070-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0003-1783351880070-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/0003-1783351880070-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-close-preview-panel-via-close-button/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0000-1780493886926-unknown-host-POST-_v1_messages-fcbc85d4.json b/packages/quality/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0000-1780493886926-unknown-host-POST-_v1_messages-fcbc85d4.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0000-1780493886926-unknown-host-POST-_v1_messages-fcbc85d4.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0000-1780493886926-unknown-host-POST-_v1_messages-fcbc85d4.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0001-1780493886927-unknown-host-POST-_v1_messages-5311b1ec.json b/packages/quality/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0001-1780493886927-unknown-host-POST-_v1_messages-5311b1ec.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0001-1780493886927-unknown-host-POST-_v1_messages-5311b1ec.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0001-1780493886927-unknown-host-POST-_v1_messages-5311b1ec.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0002-1780493886928-unknown-host-POST-_v1_messages-77bad225.json b/packages/quality/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0002-1780493886928-unknown-host-POST-_v1_messages-77bad225.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0002-1780493886928-unknown-host-POST-_v1_messages-77bad225.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/0002-1780493886928-unknown-host-POST-_v1_messages-77bad225.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-create-and-apply-a-mocked-testable-slack-credential-from-setup/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/0000-1783351413456-unknown-host-POST-_v1_messages-f3292187.json b/packages/quality/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/0000-1783351413456-unknown-host-POST-_v1_messages-f3292187.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/0000-1783351413456-unknown-host-POST-_v1_messages-f3292187.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/0000-1783351413456-unknown-host-POST-_v1_messages-f3292187.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/0001-1783351413457-unknown-host-POST-_v1_messages-5a9061ca.json b/packages/quality/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/0001-1783351413457-unknown-host-POST-_v1_messages-5a9061ca.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/0001-1783351413457-unknown-host-POST-_v1_messages-5a9061ca.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/0001-1783351413457-unknown-host-POST-_v1_messages-5a9061ca.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-create-new-thread-via-sidebar-button/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0000-1780493803289-unknown-host-POST-_v1_messages-1a07624f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0000-1780493803289-unknown-host-POST-_v1_messages-1a07624f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0000-1780493803289-unknown-host-POST-_v1_messages-1a07624f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0000-1780493803289-unknown-host-POST-_v1_messages-1a07624f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0001-1780493803291-unknown-host-POST-_v1_messages-d999a8e9.json b/packages/quality/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0001-1780493803291-unknown-host-POST-_v1_messages-d999a8e9.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0001-1780493803291-unknown-host-POST-_v1_messages-d999a8e9.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0001-1780493803291-unknown-host-POST-_v1_messages-d999a8e9.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0002-1780493803292-unknown-host-POST-_v1_messages-77bad225.json b/packages/quality/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0002-1780493803292-unknown-host-POST-_v1_messages-77bad225.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0002-1780493803292-unknown-host-POST-_v1_messages-77bad225.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/0002-1780493803292-unknown-host-POST-_v1_messages-77bad225.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-defer-all-setup-when-user-skips-every-card-without-persisting-credentials/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0000-1783350875547-unknown-host-POST-_v1_messages-a643d3fc.json b/packages/quality/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0000-1783350875547-unknown-host-POST-_v1_messages-a643d3fc.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0000-1783350875547-unknown-host-POST-_v1_messages-a643d3fc.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0000-1783350875547-unknown-host-POST-_v1_messages-a643d3fc.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0001-1783350875551-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0001-1783350875551-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0001-1783350875551-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0001-1783350875551-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0002-1783350875556-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0002-1783350875556-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0002-1783350875556-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0002-1783350875556-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0003-1783350875558-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0003-1783350875558-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0003-1783350875558-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/0003-1783350875558-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-artifact-card-in-timeline-after-workflow-build/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0000-1783351791408-unknown-host-POST-_v1_messages-ae813ac9.json b/packages/quality/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0000-1783351791408-unknown-host-POST-_v1_messages-ae813ac9.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0000-1783351791408-unknown-host-POST-_v1_messages-ae813ac9.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0000-1783351791408-unknown-host-POST-_v1_messages-ae813ac9.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0001-1783351791409-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0001-1783351791409-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0001-1783351791409-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0001-1783351791409-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0002-1783351791411-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0002-1783351791411-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0002-1783351791411-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0002-1783351791411-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0003-1783351791412-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0003-1783351791412-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0003-1783351791412-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/0003-1783351791412-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-canvas-nodes-in-preview-iframe/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-user-and-assistant-messages-in-timeline/0001-1783350966543-unknown-host-POST-_v1_messages-714f1865.json b/packages/quality/testing/playwright/expectations/instance-ai/should-display-user-and-assistant-messages-in-timeline/0001-1783350966543-unknown-host-POST-_v1_messages-714f1865.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-user-and-assistant-messages-in-timeline/0001-1783350966543-unknown-host-POST-_v1_messages-714f1865.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-user-and-assistant-messages-in-timeline/0001-1783350966543-unknown-host-POST-_v1_messages-714f1865.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-display-user-and-assistant-messages-in-timeline/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-display-user-and-assistant-messages-in-timeline/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-display-user-and-assistant-messages-in-timeline/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-display-user-and-assistant-messages-in-timeline/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0000-1782852181680-unknown-host-POST-_v1_messages-5eb30c4c.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0000-1782852181680-unknown-host-POST-_v1_messages-5eb30c4c.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0000-1782852181680-unknown-host-POST-_v1_messages-5eb30c4c.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0000-1782852181680-unknown-host-POST-_v1_messages-5eb30c4c.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0001-1782852181682-unknown-host-POST-_v1_messages-77bad225.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0001-1782852181682-unknown-host-POST-_v1_messages-77bad225.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0001-1782852181682-unknown-host-POST-_v1_messages-77bad225.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0001-1782852181682-unknown-host-POST-_v1_messages-77bad225.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0002-1782852181683-unknown-host-POST-_v1_messages-ec41fb8e.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0002-1782852181683-unknown-host-POST-_v1_messages-ec41fb8e.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0002-1782852181683-unknown-host-POST-_v1_messages-ec41fb8e.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0002-1782852181683-unknown-host-POST-_v1_messages-ec41fb8e.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0003-1782852181684-unknown-host-POST-_v1_messages-ec41fb8e.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0003-1782852181684-unknown-host-POST-_v1_messages-ec41fb8e.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0003-1782852181684-unknown-host-POST-_v1_messages-ec41fb8e.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0003-1782852181684-unknown-host-POST-_v1_messages-ec41fb8e.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0004-1782852181686-unknown-host-POST-_v1_messages-ec41fb8e.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0004-1782852181686-unknown-host-POST-_v1_messages-ec41fb8e.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0004-1782852181686-unknown-host-POST-_v1_messages-ec41fb8e.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0004-1782852181686-unknown-host-POST-_v1_messages-ec41fb8e.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0005-1782852181687-unknown-host-POST-_v1_messages-ec41fb8e.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0005-1782852181687-unknown-host-POST-_v1_messages-ec41fb8e.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0005-1782852181687-unknown-host-POST-_v1_messages-ec41fb8e.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0005-1782852181687-unknown-host-POST-_v1_messages-ec41fb8e.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0006-1782852181689-unknown-host-POST-_v1_messages-77bad225.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0006-1782852181689-unknown-host-POST-_v1_messages-77bad225.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0006-1782852181689-unknown-host-POST-_v1_messages-77bad225.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0006-1782852181689-unknown-host-POST-_v1_messages-77bad225.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0007-1782852181690-unknown-host-POST-_v1_messages-ec41fb8e.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0007-1782852181690-unknown-host-POST-_v1_messages-ec41fb8e.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0007-1782852181690-unknown-host-POST-_v1_messages-ec41fb8e.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0007-1782852181690-unknown-host-POST-_v1_messages-ec41fb8e.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0008-1782852181691-unknown-host-POST-_v1_messages-8e043955.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0008-1782852181691-unknown-host-POST-_v1_messages-8e043955.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0008-1782852181691-unknown-host-POST-_v1_messages-8e043955.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0008-1782852181691-unknown-host-POST-_v1_messages-8e043955.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0009-1782852181693-unknown-host-POST-_v1_messages-ec41fb8e.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0009-1782852181693-unknown-host-POST-_v1_messages-ec41fb8e.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0009-1782852181693-unknown-host-POST-_v1_messages-ec41fb8e.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0009-1782852181693-unknown-host-POST-_v1_messages-ec41fb8e.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0010-1782852181694-unknown-host-POST-_v1_messages-affb883c.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0010-1782852181694-unknown-host-POST-_v1_messages-affb883c.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0010-1782852181694-unknown-host-POST-_v1_messages-affb883c.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0010-1782852181694-unknown-host-POST-_v1_messages-affb883c.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0011-1782852181696-unknown-host-POST-_v1_messages-18726485.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0011-1782852181696-unknown-host-POST-_v1_messages-18726485.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0011-1782852181696-unknown-host-POST-_v1_messages-18726485.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0011-1782852181696-unknown-host-POST-_v1_messages-18726485.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0012-1782852181697-unknown-host-POST-_v1_messages-c692d0ec.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0012-1782852181697-unknown-host-POST-_v1_messages-c692d0ec.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0012-1782852181697-unknown-host-POST-_v1_messages-c692d0ec.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0012-1782852181697-unknown-host-POST-_v1_messages-c692d0ec.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0013-1782852181699-unknown-host-POST-_v1_messages-ec41fb8e.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0013-1782852181699-unknown-host-POST-_v1_messages-ec41fb8e.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0013-1782852181699-unknown-host-POST-_v1_messages-ec41fb8e.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0013-1782852181699-unknown-host-POST-_v1_messages-ec41fb8e.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0014-1782852181700-unknown-host-POST-_v1_messages-23269820.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0014-1782852181700-unknown-host-POST-_v1_messages-23269820.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0014-1782852181700-unknown-host-POST-_v1_messages-23269820.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0014-1782852181700-unknown-host-POST-_v1_messages-23269820.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0015-1782852181702-unknown-host-POST-_v1_messages-77bad225.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0015-1782852181702-unknown-host-POST-_v1_messages-77bad225.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0015-1782852181702-unknown-host-POST-_v1_messages-77bad225.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/0015-1782852181702-unknown-host-POST-_v1_messages-77bad225.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-individual-node-from-node-toolbar/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0000-1783351530603-unknown-host-POST-_v1_messages-5db6dce2.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0000-1783351530603-unknown-host-POST-_v1_messages-5db6dce2.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0000-1783351530603-unknown-host-POST-_v1_messages-5db6dce2.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0000-1783351530603-unknown-host-POST-_v1_messages-5db6dce2.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0001-1783351530606-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0001-1783351530606-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0001-1783351530606-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0001-1783351530606-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0002-1783351530608-unknown-host-POST-_v1_messages-e9a25526.json b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0002-1783351530608-unknown-host-POST-_v1_messages-e9a25526.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0002-1783351530608-unknown-host-POST-_v1_messages-e9a25526.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/0002-1783351530608-unknown-host-POST-_v1_messages-e9a25526.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-execute-workflow-from-run-button-and-show-success-indicators/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/0000-1783350935407-unknown-host-POST-_v1_messages-74b04bc1.json b/packages/quality/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/0000-1783350935407-unknown-host-POST-_v1_messages-74b04bc1.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/0000-1783350935407-unknown-host-POST-_v1_messages-74b04bc1.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/0000-1783350935407-unknown-host-POST-_v1_messages-74b04bc1.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/0001-1783350935408-unknown-host-POST-_v1_messages-7c88f869.json b/packages/quality/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/0001-1783350935408-unknown-host-POST-_v1_messages-7c88f869.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/0001-1783350935408-unknown-host-POST-_v1_messages-7c88f869.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/0001-1783350935408-unknown-host-POST-_v1_messages-7c88f869.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-extract-text-from-an-html-attachment-and-answer-from-it/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0000-1783350997984-unknown-host-POST-_v1_messages-b1504ac2.json b/packages/quality/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0000-1783350997984-unknown-host-POST-_v1_messages-b1504ac2.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0000-1783350997984-unknown-host-POST-_v1_messages-b1504ac2.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0000-1783350997984-unknown-host-POST-_v1_messages-b1504ac2.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0001-1783350997985-unknown-host-POST-_v1_messages-f6be5966.json b/packages/quality/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0001-1783350997985-unknown-host-POST-_v1_messages-f6be5966.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0001-1783350997985-unknown-host-POST-_v1_messages-f6be5966.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0001-1783350997985-unknown-host-POST-_v1_messages-f6be5966.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0002-1783350997986-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0002-1783350997986-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0002-1783350997986-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/0002-1783350997986-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-list-archived-workflows-and-restore-one-via-instance-ai/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/0000-1780493831856-unknown-host-POST-_v1_messages-bf551cce.json b/packages/quality/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/0000-1780493831856-unknown-host-POST-_v1_messages-bf551cce.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/0000-1780493831856-unknown-host-POST-_v1_messages-bf551cce.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/0000-1780493831856-unknown-host-POST-_v1_messages-bf551cce.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/0001-1780493831857-unknown-host-POST-_v1_messages-07bcd594.json b/packages/quality/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/0001-1780493831857-unknown-host-POST-_v1_messages-07bcd594.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/0001-1780493831857-unknown-host-POST-_v1_messages-07bcd594.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/0001-1780493831857-unknown-host-POST-_v1_messages-07bcd594.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-mark-a-skipped-card-and-keep-the-wizard-open-while-other-cards-are-unhandled/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0000-1783351843271-unknown-host-POST-_v1_messages-119259f6.json b/packages/quality/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0000-1783351843271-unknown-host-POST-_v1_messages-119259f6.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0000-1783351843271-unknown-host-POST-_v1_messages-119259f6.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0000-1783351843271-unknown-host-POST-_v1_messages-119259f6.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0001-1783351843273-unknown-host-POST-_v1_messages-c4677f47.json b/packages/quality/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0001-1783351843273-unknown-host-POST-_v1_messages-c4677f47.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0001-1783351843273-unknown-host-POST-_v1_messages-c4677f47.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0001-1783351843273-unknown-host-POST-_v1_messages-c4677f47.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0002-1783351843274-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0002-1783351843274-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0002-1783351843274-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0002-1783351843274-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0003-1783351843275-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0003-1783351843275-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0003-1783351843275-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/0003-1783351843275-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-mark-all-nodes-as-success-after-execution-completes/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0000-1783350922762-unknown-host-POST-_v1_messages-06b75eca.json b/packages/quality/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0000-1783350922762-unknown-host-POST-_v1_messages-06b75eca.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0000-1783350922762-unknown-host-POST-_v1_messages-06b75eca.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0000-1783350922762-unknown-host-POST-_v1_messages-06b75eca.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0001-1783350922765-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0001-1783350922765-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0001-1783350922765-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0001-1783350922765-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0002-1783350922767-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0002-1783350922767-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0002-1783350922767-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0002-1783350922767-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0003-1783350922769-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0003-1783350922769-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0003-1783350922769-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/0003-1783350922769-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-open-workflow-preview-when-clicking-artifact-card/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0000-1780493819214-unknown-host-POST-_v1_messages-9db5700e.json b/packages/quality/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0000-1780493819214-unknown-host-POST-_v1_messages-9db5700e.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0000-1780493819214-unknown-host-POST-_v1_messages-9db5700e.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0000-1780493819214-unknown-host-POST-_v1_messages-9db5700e.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0001-1780493819215-unknown-host-POST-_v1_messages-ec80fa14.json b/packages/quality/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0001-1780493819215-unknown-host-POST-_v1_messages-ec80fa14.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0001-1780493819215-unknown-host-POST-_v1_messages-ec80fa14.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0001-1780493819215-unknown-host-POST-_v1_messages-ec80fa14.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0002-1780493819215-unknown-host-POST-_v1_messages-77bad225.json b/packages/quality/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0002-1780493819215-unknown-host-POST-_v1_messages-77bad225.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0002-1780493819215-unknown-host-POST-_v1_messages-77bad225.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/0002-1780493819215-unknown-host-POST-_v1_messages-77bad225.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-partially-apply-credentials-when-user-completes-one-card-and-skips-the-last/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0000-1780493901991-unknown-host-POST-_v1_messages-a66d5d8c.json b/packages/quality/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0000-1780493901991-unknown-host-POST-_v1_messages-a66d5d8c.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0000-1780493901991-unknown-host-POST-_v1_messages-a66d5d8c.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0000-1780493901991-unknown-host-POST-_v1_messages-a66d5d8c.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0001-1780493901993-unknown-host-POST-_v1_messages-d8202774.json b/packages/quality/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0001-1780493901993-unknown-host-POST-_v1_messages-d8202774.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0001-1780493901993-unknown-host-POST-_v1_messages-d8202774.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0001-1780493901993-unknown-host-POST-_v1_messages-d8202774.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0002-1780493901994-unknown-host-POST-_v1_messages-77bad225.json b/packages/quality/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0002-1780493901994-unknown-host-POST-_v1_messages-77bad225.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0002-1780493901994-unknown-host-POST-_v1_messages-77bad225.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/0002-1780493901994-unknown-host-POST-_v1_messages-77bad225.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-persist-a-manually-selected-existing-credential-from-the-dropdown/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-persist-messages-after-page-reload/0001-1783350982434-unknown-host-POST-_v1_messages-10f44826.json b/packages/quality/testing/playwright/expectations/instance-ai/should-persist-messages-after-page-reload/0001-1783350982434-unknown-host-POST-_v1_messages-10f44826.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-persist-messages-after-page-reload/0001-1783350982434-unknown-host-POST-_v1_messages-10f44826.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-persist-messages-after-page-reload/0001-1783350982434-unknown-host-POST-_v1_messages-10f44826.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-persist-messages-after-page-reload/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-persist-messages-after-page-reload/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-persist-messages-after-page-reload/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-persist-messages-after-page-reload/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0000-1787813855301-unknown-host-POST-_v1_messages-5faa04d7.json b/packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0000-1787813855301-unknown-host-POST-_v1_messages-5faa04d7.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0000-1787813855301-unknown-host-POST-_v1_messages-5faa04d7.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0000-1787813855301-unknown-host-POST-_v1_messages-5faa04d7.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0001-1787813855303-unknown-host-POST-_v1_messages-170275ad.json b/packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0001-1787813855303-unknown-host-POST-_v1_messages-170275ad.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0001-1787813855303-unknown-host-POST-_v1_messages-170275ad.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0001-1787813855303-unknown-host-POST-_v1_messages-170275ad.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0002-1787813855304-unknown-host-POST-_v1_messages-6bc250eb.json b/packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0002-1787813855304-unknown-host-POST-_v1_messages-6bc250eb.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0002-1787813855304-unknown-host-POST-_v1_messages-6bc250eb.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0002-1787813855304-unknown-host-POST-_v1_messages-6bc250eb.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0003-1787813855305-unknown-host-POST-_v1_messages-c8fa2710.json b/packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0003-1787813855305-unknown-host-POST-_v1_messages-c8fa2710.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0003-1787813855305-unknown-host-POST-_v1_messages-c8fa2710.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0003-1787813855305-unknown-host-POST-_v1_messages-c8fa2710.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0004-1787813855306-unknown-host-POST-_v1_messages-c8fa2710.json b/packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0004-1787813855306-unknown-host-POST-_v1_messages-c8fa2710.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0004-1787813855306-unknown-host-POST-_v1_messages-c8fa2710.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0004-1787813855306-unknown-host-POST-_v1_messages-c8fa2710.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0005-1787813855306-unknown-host-POST-_v1_messages-962c8e4b.json b/packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0005-1787813855306-unknown-host-POST-_v1_messages-962c8e4b.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0005-1787813855306-unknown-host-POST-_v1_messages-962c8e4b.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0005-1787813855306-unknown-host-POST-_v1_messages-962c8e4b.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0006-1787813855307-unknown-host-POST-_v1_messages-c8fa2710.json b/packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0006-1787813855307-unknown-host-POST-_v1_messages-c8fa2710.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0006-1787813855307-unknown-host-POST-_v1_messages-c8fa2710.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/0006-1787813855307-unknown-host-POST-_v1_messages-c8fa2710.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-preserve-a-submitted-workflow-when-mocked-credential-verification-needs-setup/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0000-1780493923914-unknown-host-POST-_v1_messages-18169388.json b/packages/quality/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0000-1780493923914-unknown-host-POST-_v1_messages-18169388.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0000-1780493923914-unknown-host-POST-_v1_messages-18169388.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0000-1780493923914-unknown-host-POST-_v1_messages-18169388.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0001-1780493923915-unknown-host-POST-_v1_messages-f0e5ecb3.json b/packages/quality/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0001-1780493923915-unknown-host-POST-_v1_messages-f0e5ecb3.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0001-1780493923915-unknown-host-POST-_v1_messages-f0e5ecb3.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0001-1780493923915-unknown-host-POST-_v1_messages-f0e5ecb3.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0002-1780493923917-unknown-host-POST-_v1_messages-77bad225.json b/packages/quality/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0002-1780493923917-unknown-host-POST-_v1_messages-77bad225.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0002-1780493923917-unknown-host-POST-_v1_messages-77bad225.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/0002-1780493923917-unknown-host-POST-_v1_messages-77bad225.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-render-ai-agent-subnodes-as-one-group-step-with-separate-sections/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0000-1783351358601-unknown-host-POST-_v1_messages-7da6160c.json b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0000-1783351358601-unknown-host-POST-_v1_messages-7da6160c.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0000-1783351358601-unknown-host-POST-_v1_messages-7da6160c.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0000-1783351358601-unknown-host-POST-_v1_messages-7da6160c.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0001-1783351358603-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0001-1783351358603-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0001-1783351358603-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0001-1783351358603-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0002-1783351358605-unknown-host-POST-_v1_messages-0c257024.json b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0002-1783351358605-unknown-host-POST-_v1_messages-0c257024.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0002-1783351358605-unknown-host-POST-_v1_messages-0c257024.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0002-1783351358605-unknown-host-POST-_v1_messages-0c257024.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0003-1783351358606-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0003-1783351358606-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0003-1783351358606-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0003-1783351358606-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0004-1783351358608-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0004-1783351358608-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0004-1783351358608-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/0004-1783351358608-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-apply-after-approval/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0000-1783351395191-unknown-host-POST-_v1_messages-28ad2287.json b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0000-1783351395191-unknown-host-POST-_v1_messages-28ad2287.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0000-1783351395191-unknown-host-POST-_v1_messages-28ad2287.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0000-1783351395191-unknown-host-POST-_v1_messages-28ad2287.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0001-1783351395193-unknown-host-POST-_v1_messages-6c667c34.json b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0001-1783351395193-unknown-host-POST-_v1_messages-6c667c34.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0001-1783351395193-unknown-host-POST-_v1_messages-6c667c34.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0001-1783351395193-unknown-host-POST-_v1_messages-6c667c34.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0002-1783351395194-unknown-host-POST-_v1_messages-6c667c34.json b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0002-1783351395194-unknown-host-POST-_v1_messages-6c667c34.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0002-1783351395194-unknown-host-POST-_v1_messages-6c667c34.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0002-1783351395194-unknown-host-POST-_v1_messages-6c667c34.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0003-1783351395195-unknown-host-POST-_v1_messages-b6b99cf2.json b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0003-1783351395195-unknown-host-POST-_v1_messages-b6b99cf2.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0003-1783351395195-unknown-host-POST-_v1_messages-b6b99cf2.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/0003-1783351395195-unknown-host-POST-_v1_messages-b6b99cf2.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-require-approval-before-editing-an-existing-workflow-and-keep-it-unchanged-when-denied/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/0000-1780493843405-unknown-host-POST-_v1_messages-e1313108.json b/packages/quality/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/0000-1780493843405-unknown-host-POST-_v1_messages-e1313108.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/0000-1780493843405-unknown-host-POST-_v1_messages-e1313108.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/0000-1780493843405-unknown-host-POST-_v1_messages-e1313108.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/0001-1780493843406-unknown-host-POST-_v1_messages-d4b59b0e.json b/packages/quality/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/0001-1780493843406-unknown-host-POST-_v1_messages-d4b59b0e.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/0001-1780493843406-unknown-host-POST-_v1_messages-d4b59b0e.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/0001-1780493843406-unknown-host-POST-_v1_messages-d4b59b0e.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-route-back-to-an-earlier-unhandled-card-when-user-skips-a-later-one/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-send-message-and-receive-assistant-response/0000-1783350959265-unknown-host-POST-_v1_messages-9ed7b981.json b/packages/quality/testing/playwright/expectations/instance-ai/should-send-message-and-receive-assistant-response/0000-1783350959265-unknown-host-POST-_v1_messages-9ed7b981.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-send-message-and-receive-assistant-response/0000-1783350959265-unknown-host-POST-_v1_messages-9ed7b981.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-send-message-and-receive-assistant-response/0000-1783350959265-unknown-host-POST-_v1_messages-9ed7b981.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-send-message-and-receive-assistant-response/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-send-message-and-receive-assistant-response/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-send-message-and-receive-assistant-response/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-send-message-and-receive-assistant-response/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0001-1783351136103-unknown-host-POST-_v1_messages-5e7c5f8d.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0001-1783351136103-unknown-host-POST-_v1_messages-5e7c5f8d.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0001-1783351136103-unknown-host-POST-_v1_messages-5e7c5f8d.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0001-1783351136103-unknown-host-POST-_v1_messages-5e7c5f8d.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0002-1783351136104-unknown-host-POST-_v1_messages-5712258a.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0002-1783351136104-unknown-host-POST-_v1_messages-5712258a.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0002-1783351136104-unknown-host-POST-_v1_messages-5712258a.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0002-1783351136104-unknown-host-POST-_v1_messages-5712258a.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0003-1783351136105-unknown-host-POST-_v1_messages-e4c18c2f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0003-1783351136105-unknown-host-POST-_v1_messages-e4c18c2f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0003-1783351136105-unknown-host-POST-_v1_messages-e4c18c2f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0003-1783351136105-unknown-host-POST-_v1_messages-e4c18c2f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0004-1783351136107-unknown-host-POST-_v1_messages-0840b287.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0004-1783351136107-unknown-host-POST-_v1_messages-0840b287.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0004-1783351136107-unknown-host-POST-_v1_messages-0840b287.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0004-1783351136107-unknown-host-POST-_v1_messages-0840b287.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0006-1783351136108-unknown-host-POST-_v1_messages-f0769297.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0006-1783351136108-unknown-host-POST-_v1_messages-f0769297.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0006-1783351136108-unknown-host-POST-_v1_messages-f0769297.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0006-1783351136108-unknown-host-POST-_v1_messages-f0769297.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0007-1783351136110-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0007-1783351136110-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0007-1783351136110-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0007-1783351136110-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0008-1783351136111-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0008-1783351136111-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0008-1783351136111-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0008-1783351136111-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0009-1783351136112-unknown-host-POST-_v1_messages-788cde68.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0009-1783351136112-unknown-host-POST-_v1_messages-788cde68.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0009-1783351136112-unknown-host-POST-_v1_messages-788cde68.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0009-1783351136112-unknown-host-POST-_v1_messages-788cde68.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0010-1783351136114-unknown-host-POST-_v1_messages-8937d156.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0010-1783351136114-unknown-host-POST-_v1_messages-8937d156.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0010-1783351136114-unknown-host-POST-_v1_messages-8937d156.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0010-1783351136114-unknown-host-POST-_v1_messages-8937d156.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0011-1783351136116-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0011-1783351136116-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0011-1783351136116-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0011-1783351136116-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0012-1783351136117-unknown-host-POST-_v1_messages-fb950701.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0012-1783351136117-unknown-host-POST-_v1_messages-fb950701.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0012-1783351136117-unknown-host-POST-_v1_messages-fb950701.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0012-1783351136117-unknown-host-POST-_v1_messages-fb950701.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0013-1783351136119-unknown-host-POST-_v1_messages-5a054b2b.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0013-1783351136119-unknown-host-POST-_v1_messages-5a054b2b.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0013-1783351136119-unknown-host-POST-_v1_messages-5a054b2b.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/0013-1783351136119-unknown-host-POST-_v1_messages-5a054b2b.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-approve-workflow-execution/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0000-1783352639893-unknown-host-POST-_v1_messages-d7fb1f1d.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0000-1783352639893-unknown-host-POST-_v1_messages-d7fb1f1d.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0000-1783352639893-unknown-host-POST-_v1_messages-d7fb1f1d.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0000-1783352639893-unknown-host-POST-_v1_messages-d7fb1f1d.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0001-1783352639895-unknown-host-POST-_v1_messages-5712258a.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0001-1783352639895-unknown-host-POST-_v1_messages-5712258a.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0001-1783352639895-unknown-host-POST-_v1_messages-5712258a.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0001-1783352639895-unknown-host-POST-_v1_messages-5712258a.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0002-1783352639897-unknown-host-POST-_v1_messages-e4c18c2f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0002-1783352639897-unknown-host-POST-_v1_messages-e4c18c2f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0002-1783352639897-unknown-host-POST-_v1_messages-e4c18c2f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0002-1783352639897-unknown-host-POST-_v1_messages-e4c18c2f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0003-1783352639899-unknown-host-POST-_v1_messages-0840b287.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0003-1783352639899-unknown-host-POST-_v1_messages-0840b287.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0003-1783352639899-unknown-host-POST-_v1_messages-0840b287.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0003-1783352639899-unknown-host-POST-_v1_messages-0840b287.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0005-1783352639901-unknown-host-POST-_v1_messages-f0769297.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0005-1783352639901-unknown-host-POST-_v1_messages-f0769297.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0005-1783352639901-unknown-host-POST-_v1_messages-f0769297.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0005-1783352639901-unknown-host-POST-_v1_messages-f0769297.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0006-1783352639904-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0006-1783352639904-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0006-1783352639904-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0006-1783352639904-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0007-1783352639911-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0007-1783352639911-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0007-1783352639911-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0007-1783352639911-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0008-1783352639915-unknown-host-POST-_v1_messages-788cde68.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0008-1783352639915-unknown-host-POST-_v1_messages-788cde68.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0008-1783352639915-unknown-host-POST-_v1_messages-788cde68.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0008-1783352639915-unknown-host-POST-_v1_messages-788cde68.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0009-1783352639917-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0009-1783352639917-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0009-1783352639917-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0009-1783352639917-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0010-1783352639919-unknown-host-POST-_v1_messages-0840b287.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0010-1783352639919-unknown-host-POST-_v1_messages-0840b287.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0010-1783352639919-unknown-host-POST-_v1_messages-0840b287.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0010-1783352639919-unknown-host-POST-_v1_messages-0840b287.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0011-1783352639922-unknown-host-POST-_v1_messages-b6b99cf2.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0011-1783352639922-unknown-host-POST-_v1_messages-b6b99cf2.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0011-1783352639922-unknown-host-POST-_v1_messages-b6b99cf2.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0011-1783352639922-unknown-host-POST-_v1_messages-b6b99cf2.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0012-1783352639924-unknown-host-POST-_v1_messages-fb950701.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0012-1783352639924-unknown-host-POST-_v1_messages-fb950701.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0012-1783352639924-unknown-host-POST-_v1_messages-fb950701.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/0012-1783352639924-unknown-host-POST-_v1_messages-fb950701.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-approval-panel-and-deny-workflow-execution/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0000-1783351483339-unknown-host-POST-_v1_messages-cca6dd9e.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0000-1783351483339-unknown-host-POST-_v1_messages-cca6dd9e.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0000-1783351483339-unknown-host-POST-_v1_messages-cca6dd9e.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0000-1783351483339-unknown-host-POST-_v1_messages-cca6dd9e.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0001-1783351483341-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0001-1783351483341-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0001-1783351483341-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0001-1783351483341-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0002-1783351483343-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0002-1783351483343-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0002-1783351483343-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0002-1783351483343-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0003-1783351483345-unknown-host-POST-_v1_messages-f808330f.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0003-1783351483345-unknown-host-POST-_v1_messages-f808330f.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0003-1783351483345-unknown-host-POST-_v1_messages-f808330f.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/0003-1783351483345-unknown-host-POST-_v1_messages-f808330f.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-artifact-cards-after-workflow-build-completes/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0000-1783351644831-unknown-host-POST-_v1_messages-22c134a1.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0000-1783351644831-unknown-host-POST-_v1_messages-22c134a1.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0000-1783351644831-unknown-host-POST-_v1_messages-22c134a1.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0000-1783351644831-unknown-host-POST-_v1_messages-22c134a1.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0001-1783351644833-unknown-host-POST-_v1_messages-ecc34707.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0001-1783351644833-unknown-host-POST-_v1_messages-ecc34707.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0001-1783351644833-unknown-host-POST-_v1_messages-ecc34707.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0001-1783351644833-unknown-host-POST-_v1_messages-ecc34707.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0002-1783351644834-unknown-host-POST-_v1_messages-ecc34707.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0002-1783351644834-unknown-host-POST-_v1_messages-ecc34707.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0002-1783351644834-unknown-host-POST-_v1_messages-ecc34707.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/0002-1783351644834-unknown-host-POST-_v1_messages-ecc34707.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-execution-results-in-ndv-output-panel-when-opening-node-after-execution/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0000-1783352203009-unknown-host-POST-_v1_messages-a4f28a97.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0000-1783352203009-unknown-host-POST-_v1_messages-a4f28a97.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0000-1783352203009-unknown-host-POST-_v1_messages-a4f28a97.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0000-1783352203009-unknown-host-POST-_v1_messages-a4f28a97.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0001-1783352203010-unknown-host-POST-_v1_messages-322f5965.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0001-1783352203010-unknown-host-POST-_v1_messages-322f5965.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0001-1783352203010-unknown-host-POST-_v1_messages-322f5965.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0001-1783352203010-unknown-host-POST-_v1_messages-322f5965.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0002-1783352203011-unknown-host-POST-_v1_messages-90923f43.json b/packages/quality/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0002-1783352203011-unknown-host-POST-_v1_messages-90923f43.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0002-1783352203011-unknown-host-POST-_v1_messages-90923f43.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/0002-1783352203011-unknown-host-POST-_v1_messages-90923f43.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-show-run-workflow-button-in-preview/trace.jsonl diff --git a/packages/testing/playwright/expectations/instance-ai/should-switch-between-threads/0000-1783351430379-unknown-host-POST-_v1_messages-0fce1279.json b/packages/quality/testing/playwright/expectations/instance-ai/should-switch-between-threads/0000-1783351430379-unknown-host-POST-_v1_messages-0fce1279.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-switch-between-threads/0000-1783351430379-unknown-host-POST-_v1_messages-0fce1279.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-switch-between-threads/0000-1783351430379-unknown-host-POST-_v1_messages-0fce1279.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-switch-between-threads/0002-1783351430379-unknown-host-POST-_v1_messages-1c7c0120.json b/packages/quality/testing/playwright/expectations/instance-ai/should-switch-between-threads/0002-1783351430379-unknown-host-POST-_v1_messages-1c7c0120.json similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-switch-between-threads/0002-1783351430379-unknown-host-POST-_v1_messages-1c7c0120.json rename to packages/quality/testing/playwright/expectations/instance-ai/should-switch-between-threads/0002-1783351430379-unknown-host-POST-_v1_messages-1c7c0120.json diff --git a/packages/testing/playwright/expectations/instance-ai/should-switch-between-threads/trace.jsonl b/packages/quality/testing/playwright/expectations/instance-ai/should-switch-between-threads/trace.jsonl similarity index 100% rename from packages/testing/playwright/expectations/instance-ai/should-switch-between-threads/trace.jsonl rename to packages/quality/testing/playwright/expectations/instance-ai/should-switch-between-threads/trace.jsonl diff --git a/packages/testing/playwright/expectations/langchain/1757337994261-unknown-host-POST-_v1_chat_completions-1561df08.json b/packages/quality/testing/playwright/expectations/langchain/1757337994261-unknown-host-POST-_v1_chat_completions-1561df08.json similarity index 100% rename from packages/testing/playwright/expectations/langchain/1757337994261-unknown-host-POST-_v1_chat_completions-1561df08.json rename to packages/quality/testing/playwright/expectations/langchain/1757337994261-unknown-host-POST-_v1_chat_completions-1561df08.json diff --git a/packages/testing/playwright/expectations/langchain/1757337994532-unknown-host-POST-_v1_chat_completions-1561df08.json b/packages/quality/testing/playwright/expectations/langchain/1757337994532-unknown-host-POST-_v1_chat_completions-1561df08.json similarity index 100% rename from packages/testing/playwright/expectations/langchain/1757337994532-unknown-host-POST-_v1_chat_completions-1561df08.json rename to packages/quality/testing/playwright/expectations/langchain/1757337994532-unknown-host-POST-_v1_chat_completions-1561df08.json diff --git a/packages/testing/playwright/expectations/langchain/1757337995023-unknown-host-POST-_v1_chat_completions-1561df08.json b/packages/quality/testing/playwright/expectations/langchain/1757337995023-unknown-host-POST-_v1_chat_completions-1561df08.json similarity index 100% rename from packages/testing/playwright/expectations/langchain/1757337995023-unknown-host-POST-_v1_chat_completions-1561df08.json rename to packages/quality/testing/playwright/expectations/langchain/1757337995023-unknown-host-POST-_v1_chat_completions-1561df08.json diff --git a/packages/testing/playwright/expectations/langchain/1757338000172-unknown-host-POST-_v1_chat_completions-fdac7829.json b/packages/quality/testing/playwright/expectations/langchain/1757338000172-unknown-host-POST-_v1_chat_completions-fdac7829.json similarity index 100% rename from packages/testing/playwright/expectations/langchain/1757338000172-unknown-host-POST-_v1_chat_completions-fdac7829.json rename to packages/quality/testing/playwright/expectations/langchain/1757338000172-unknown-host-POST-_v1_chat_completions-fdac7829.json diff --git a/packages/testing/playwright/expectations/langchain/1757338002750-unknown-host-POST-_v1_chat_completions-9d7fafef.json b/packages/quality/testing/playwright/expectations/langchain/1757338002750-unknown-host-POST-_v1_chat_completions-9d7fafef.json similarity index 100% rename from packages/testing/playwright/expectations/langchain/1757338002750-unknown-host-POST-_v1_chat_completions-9d7fafef.json rename to packages/quality/testing/playwright/expectations/langchain/1757338002750-unknown-host-POST-_v1_chat_completions-9d7fafef.json diff --git a/packages/testing/playwright/expectations/langchain/1757338002751-unknown-host-POST-_v1_chat_completions-e8887e9d.json b/packages/quality/testing/playwright/expectations/langchain/1757338002751-unknown-host-POST-_v1_chat_completions-e8887e9d.json similarity index 100% rename from packages/testing/playwright/expectations/langchain/1757338002751-unknown-host-POST-_v1_chat_completions-e8887e9d.json rename to packages/quality/testing/playwright/expectations/langchain/1757338002751-unknown-host-POST-_v1_chat_completions-e8887e9d.json diff --git a/packages/testing/playwright/expectations/proxy-server/GET-mock_endpoint.json b/packages/quality/testing/playwright/expectations/proxy-server/GET-mock_endpoint.json similarity index 100% rename from packages/testing/playwright/expectations/proxy-server/GET-mock_endpoint.json rename to packages/quality/testing/playwright/expectations/proxy-server/GET-mock_endpoint.json diff --git a/packages/testing/playwright/expectations/workflow-builder/1768236114968-unknown-host-POST-_v1_messages-764da75c.json b/packages/quality/testing/playwright/expectations/workflow-builder/1768236114968-unknown-host-POST-_v1_messages-764da75c.json similarity index 100% rename from packages/testing/playwright/expectations/workflow-builder/1768236114968-unknown-host-POST-_v1_messages-764da75c.json rename to packages/quality/testing/playwright/expectations/workflow-builder/1768236114968-unknown-host-POST-_v1_messages-764da75c.json diff --git a/packages/testing/playwright/expectations/workflow-builder/1768236114974-unknown-host-POST-_v1_messages-4759b5e5.json b/packages/quality/testing/playwright/expectations/workflow-builder/1768236114974-unknown-host-POST-_v1_messages-4759b5e5.json similarity index 100% rename from packages/testing/playwright/expectations/workflow-builder/1768236114974-unknown-host-POST-_v1_messages-4759b5e5.json rename to packages/quality/testing/playwright/expectations/workflow-builder/1768236114974-unknown-host-POST-_v1_messages-4759b5e5.json diff --git a/packages/testing/playwright/expectations/workflow-builder/1768236114980-unknown-host-POST-_v1_messages-630e8fa0.json b/packages/quality/testing/playwright/expectations/workflow-builder/1768236114980-unknown-host-POST-_v1_messages-630e8fa0.json similarity index 100% rename from packages/testing/playwright/expectations/workflow-builder/1768236114980-unknown-host-POST-_v1_messages-630e8fa0.json rename to packages/quality/testing/playwright/expectations/workflow-builder/1768236114980-unknown-host-POST-_v1_messages-630e8fa0.json diff --git a/packages/testing/playwright/expectations/workflow-builder/1768236115199-unknown-host-POST-_v1_messages-989b3528.json b/packages/quality/testing/playwright/expectations/workflow-builder/1768236115199-unknown-host-POST-_v1_messages-989b3528.json similarity index 100% rename from packages/testing/playwright/expectations/workflow-builder/1768236115199-unknown-host-POST-_v1_messages-989b3528.json rename to packages/quality/testing/playwright/expectations/workflow-builder/1768236115199-unknown-host-POST-_v1_messages-989b3528.json diff --git a/packages/testing/playwright/expectations/workflow-builder/1768236115212-unknown-host-POST-_v1_messages-2bb8783c.json b/packages/quality/testing/playwright/expectations/workflow-builder/1768236115212-unknown-host-POST-_v1_messages-2bb8783c.json similarity index 100% rename from packages/testing/playwright/expectations/workflow-builder/1768236115212-unknown-host-POST-_v1_messages-2bb8783c.json rename to packages/quality/testing/playwright/expectations/workflow-builder/1768236115212-unknown-host-POST-_v1_messages-2bb8783c.json diff --git a/packages/testing/playwright/expectations/workflow-builder/1768236115215-unknown-host-POST-_v1_messages-343a818e.json b/packages/quality/testing/playwright/expectations/workflow-builder/1768236115215-unknown-host-POST-_v1_messages-343a818e.json similarity index 100% rename from packages/testing/playwright/expectations/workflow-builder/1768236115215-unknown-host-POST-_v1_messages-343a818e.json rename to packages/quality/testing/playwright/expectations/workflow-builder/1768236115215-unknown-host-POST-_v1_messages-343a818e.json diff --git a/packages/testing/playwright/fixtures/Dummy_javascript.txt b/packages/quality/testing/playwright/fixtures/Dummy_javascript.txt similarity index 100% rename from packages/testing/playwright/fixtures/Dummy_javascript.txt rename to packages/quality/testing/playwright/fixtures/Dummy_javascript.txt diff --git a/packages/testing/playwright/fixtures/Test_workflow_1.json b/packages/quality/testing/playwright/fixtures/Test_workflow_1.json similarity index 100% rename from packages/testing/playwright/fixtures/Test_workflow_1.json rename to packages/quality/testing/playwright/fixtures/Test_workflow_1.json diff --git a/packages/testing/playwright/fixtures/Test_workflow_schema_test.json b/packages/quality/testing/playwright/fixtures/Test_workflow_schema_test.json similarity index 100% rename from packages/testing/playwright/fixtures/Test_workflow_schema_test.json rename to packages/quality/testing/playwright/fixtures/Test_workflow_schema_test.json diff --git a/packages/testing/playwright/fixtures/a11y.test.ts b/packages/quality/testing/playwright/fixtures/a11y.test.ts similarity index 100% rename from packages/testing/playwright/fixtures/a11y.test.ts rename to packages/quality/testing/playwright/fixtures/a11y.test.ts diff --git a/packages/testing/playwright/fixtures/a11y.ts b/packages/quality/testing/playwright/fixtures/a11y.ts similarity index 100% rename from packages/testing/playwright/fixtures/a11y.ts rename to packages/quality/testing/playwright/fixtures/a11y.ts diff --git a/packages/testing/playwright/fixtures/backend-v8-coverage.ts b/packages/quality/testing/playwright/fixtures/backend-v8-coverage.ts similarity index 100% rename from packages/testing/playwright/fixtures/backend-v8-coverage.ts rename to packages/quality/testing/playwright/fixtures/backend-v8-coverage.ts diff --git a/packages/testing/playwright/fixtures/base.ts b/packages/quality/testing/playwright/fixtures/base.ts similarity index 100% rename from packages/testing/playwright/fixtures/base.ts rename to packages/quality/testing/playwright/fixtures/base.ts diff --git a/packages/testing/playwright/fixtures/capabilities.test.ts b/packages/quality/testing/playwright/fixtures/capabilities.test.ts similarity index 100% rename from packages/testing/playwright/fixtures/capabilities.test.ts rename to packages/quality/testing/playwright/fixtures/capabilities.test.ts diff --git a/packages/testing/playwright/fixtures/capabilities.ts b/packages/quality/testing/playwright/fixtures/capabilities.ts similarity index 100% rename from packages/testing/playwright/fixtures/capabilities.ts rename to packages/quality/testing/playwright/fixtures/capabilities.ts diff --git a/packages/testing/playwright/fixtures/console-error-monitor.ts b/packages/quality/testing/playwright/fixtures/console-error-monitor.ts similarity index 100% rename from packages/testing/playwright/fixtures/console-error-monitor.ts rename to packages/quality/testing/playwright/fixtures/console-error-monitor.ts diff --git a/packages/testing/playwright/fixtures/engine-parity.test.ts b/packages/quality/testing/playwright/fixtures/engine-parity.test.ts similarity index 100% rename from packages/testing/playwright/fixtures/engine-parity.test.ts rename to packages/quality/testing/playwright/fixtures/engine-parity.test.ts diff --git a/packages/testing/playwright/fixtures/engine-parity.ts b/packages/quality/testing/playwright/fixtures/engine-parity.ts similarity index 100% rename from packages/testing/playwright/fixtures/engine-parity.ts rename to packages/quality/testing/playwright/fixtures/engine-parity.ts diff --git a/packages/testing/playwright/fixtures/eval-base.ts b/packages/quality/testing/playwright/fixtures/eval-base.ts similarity index 100% rename from packages/testing/playwright/fixtures/eval-base.ts rename to packages/quality/testing/playwright/fixtures/eval-base.ts diff --git a/packages/testing/playwright/fixtures/execution-out-of-memory-server-response.json b/packages/quality/testing/playwright/fixtures/execution-out-of-memory-server-response.json similarity index 100% rename from packages/testing/playwright/fixtures/execution-out-of-memory-server-response.json rename to packages/quality/testing/playwright/fixtures/execution-out-of-memory-server-response.json diff --git a/packages/testing/playwright/fixtures/langsmith.ts b/packages/quality/testing/playwright/fixtures/langsmith.ts similarity index 100% rename from packages/testing/playwright/fixtures/langsmith.ts rename to packages/quality/testing/playwright/fixtures/langsmith.ts diff --git a/packages/testing/playwright/fixtures/observability.ts b/packages/quality/testing/playwright/fixtures/observability.ts similarity index 100% rename from packages/testing/playwright/fixtures/observability.ts rename to packages/quality/testing/playwright/fixtures/observability.ts diff --git a/packages/testing/playwright/fixtures/plan-data-trial.json b/packages/quality/testing/playwright/fixtures/plan-data-trial.json similarity index 100% rename from packages/testing/playwright/fixtures/plan-data-trial.json rename to packages/quality/testing/playwright/fixtures/plan-data-trial.json diff --git a/packages/testing/playwright/fixtures/quarantine.ts b/packages/quality/testing/playwright/fixtures/quarantine.ts similarity index 100% rename from packages/testing/playwright/fixtures/quarantine.ts rename to packages/quality/testing/playwright/fixtures/quarantine.ts diff --git a/packages/testing/playwright/fixtures/v8-coverage.ts b/packages/quality/testing/playwright/fixtures/v8-coverage.ts similarity index 100% rename from packages/testing/playwright/fixtures/v8-coverage.ts rename to packages/quality/testing/playwright/fixtures/v8-coverage.ts diff --git a/packages/testing/playwright/global-setup.ts b/packages/quality/testing/playwright/global-setup.ts similarity index 100% rename from packages/testing/playwright/global-setup.ts rename to packages/quality/testing/playwright/global-setup.ts diff --git a/packages/testing/playwright/global-teardown.ts b/packages/quality/testing/playwright/global-teardown.ts similarity index 100% rename from packages/testing/playwright/global-teardown.ts rename to packages/quality/testing/playwright/global-teardown.ts diff --git a/packages/testing/playwright/helpers/ClipboardHelper.ts b/packages/quality/testing/playwright/helpers/ClipboardHelper.ts similarity index 100% rename from packages/testing/playwright/helpers/ClipboardHelper.ts rename to packages/quality/testing/playwright/helpers/ClipboardHelper.ts diff --git a/packages/testing/playwright/helpers/NavigationHelper.ts b/packages/quality/testing/playwright/helpers/NavigationHelper.ts similarity index 100% rename from packages/testing/playwright/helpers/NavigationHelper.ts rename to packages/quality/testing/playwright/helpers/NavigationHelper.ts diff --git a/packages/testing/playwright/helpers/NodeParameterHelper.ts b/packages/quality/testing/playwright/helpers/NodeParameterHelper.ts similarity index 100% rename from packages/testing/playwright/helpers/NodeParameterHelper.ts rename to packages/quality/testing/playwright/helpers/NodeParameterHelper.ts diff --git a/packages/testing/playwright/helpers/jwt-helper.ts b/packages/quality/testing/playwright/helpers/jwt-helper.ts similarity index 100% rename from packages/testing/playwright/helpers/jwt-helper.ts rename to packages/quality/testing/playwright/helpers/jwt-helper.ts diff --git a/packages/testing/playwright/janitor.config.mjs b/packages/quality/testing/playwright/janitor.config.mjs similarity index 97% rename from packages/testing/playwright/janitor.config.mjs rename to packages/quality/testing/playwright/janitor.config.mjs index f2189040660..93845f69f97 100644 --- a/packages/testing/playwright/janitor.config.mjs +++ b/packages/quality/testing/playwright/janitor.config.mjs @@ -74,7 +74,7 @@ export default defineConfig({ }, orchestration: { - metricsPath: '../../../.github/test-metrics/playwright.json', + metricsPath: '../../../../.github/test-metrics/playwright.json', specFilter: 'tests/e2e/', }, diff --git a/packages/testing/playwright/lint-filename-debt.mjs b/packages/quality/testing/playwright/lint-filename-debt.mjs similarity index 100% rename from packages/testing/playwright/lint-filename-debt.mjs rename to packages/quality/testing/playwright/lint-filename-debt.mjs diff --git a/packages/testing/playwright/oxlint.config.mts b/packages/quality/testing/playwright/oxlint.config.mts similarity index 100% rename from packages/testing/playwright/oxlint.config.mts rename to packages/quality/testing/playwright/oxlint.config.mts diff --git a/packages/testing/playwright/package.json b/packages/quality/testing/playwright/package.json similarity index 100% rename from packages/testing/playwright/package.json rename to packages/quality/testing/playwright/package.json diff --git a/packages/testing/playwright/pages/AIAssistantPage.ts b/packages/quality/testing/playwright/pages/AIAssistantPage.ts similarity index 100% rename from packages/testing/playwright/pages/AIAssistantPage.ts rename to packages/quality/testing/playwright/pages/AIAssistantPage.ts diff --git a/packages/testing/playwright/pages/AgentBuilderPage.ts b/packages/quality/testing/playwright/pages/AgentBuilderPage.ts similarity index 100% rename from packages/testing/playwright/pages/AgentBuilderPage.ts rename to packages/quality/testing/playwright/pages/AgentBuilderPage.ts diff --git a/packages/testing/playwright/pages/AgentSessionsPage.ts b/packages/quality/testing/playwright/pages/AgentSessionsPage.ts similarity index 100% rename from packages/testing/playwright/pages/AgentSessionsPage.ts rename to packages/quality/testing/playwright/pages/AgentSessionsPage.ts diff --git a/packages/testing/playwright/pages/BasePage.ts b/packages/quality/testing/playwright/pages/BasePage.ts similarity index 100% rename from packages/testing/playwright/pages/BasePage.ts rename to packages/quality/testing/playwright/pages/BasePage.ts diff --git a/packages/testing/playwright/pages/CanvasPage.ts b/packages/quality/testing/playwright/pages/CanvasPage.ts similarity index 100% rename from packages/testing/playwright/pages/CanvasPage.ts rename to packages/quality/testing/playwright/pages/CanvasPage.ts diff --git a/packages/testing/playwright/pages/ChatHubChatPage.ts b/packages/quality/testing/playwright/pages/ChatHubChatPage.ts similarity index 100% rename from packages/testing/playwright/pages/ChatHubChatPage.ts rename to packages/quality/testing/playwright/pages/ChatHubChatPage.ts diff --git a/packages/testing/playwright/pages/ChatHubPersonalAgentsPage.ts b/packages/quality/testing/playwright/pages/ChatHubPersonalAgentsPage.ts similarity index 100% rename from packages/testing/playwright/pages/ChatHubPersonalAgentsPage.ts rename to packages/quality/testing/playwright/pages/ChatHubPersonalAgentsPage.ts diff --git a/packages/testing/playwright/pages/ChatHubSettingsPage.ts b/packages/quality/testing/playwright/pages/ChatHubSettingsPage.ts similarity index 100% rename from packages/testing/playwright/pages/ChatHubSettingsPage.ts rename to packages/quality/testing/playwright/pages/ChatHubSettingsPage.ts diff --git a/packages/testing/playwright/pages/ChatHubWorkflowAgentsPage.ts b/packages/quality/testing/playwright/pages/ChatHubWorkflowAgentsPage.ts similarity index 100% rename from packages/testing/playwright/pages/ChatHubWorkflowAgentsPage.ts rename to packages/quality/testing/playwright/pages/ChatHubWorkflowAgentsPage.ts diff --git a/packages/testing/playwright/pages/CommunityNodesPage.ts b/packages/quality/testing/playwright/pages/CommunityNodesPage.ts similarity index 100% rename from packages/testing/playwright/pages/CommunityNodesPage.ts rename to packages/quality/testing/playwright/pages/CommunityNodesPage.ts diff --git a/packages/testing/playwright/pages/CredentialsPage.ts b/packages/quality/testing/playwright/pages/CredentialsPage.ts similarity index 100% rename from packages/testing/playwright/pages/CredentialsPage.ts rename to packages/quality/testing/playwright/pages/CredentialsPage.ts diff --git a/packages/testing/playwright/pages/DataTableDetails.ts b/packages/quality/testing/playwright/pages/DataTableDetails.ts similarity index 100% rename from packages/testing/playwright/pages/DataTableDetails.ts rename to packages/quality/testing/playwright/pages/DataTableDetails.ts diff --git a/packages/testing/playwright/pages/DataTableView.ts b/packages/quality/testing/playwright/pages/DataTableView.ts similarity index 100% rename from packages/testing/playwright/pages/DataTableView.ts rename to packages/quality/testing/playwright/pages/DataTableView.ts diff --git a/packages/testing/playwright/pages/DemoPage.ts b/packages/quality/testing/playwright/pages/DemoPage.ts similarity index 100% rename from packages/testing/playwright/pages/DemoPage.ts rename to packages/quality/testing/playwright/pages/DemoPage.ts diff --git a/packages/testing/playwright/pages/EvaluationComparePage.ts b/packages/quality/testing/playwright/pages/EvaluationComparePage.ts similarity index 100% rename from packages/testing/playwright/pages/EvaluationComparePage.ts rename to packages/quality/testing/playwright/pages/EvaluationComparePage.ts diff --git a/packages/testing/playwright/pages/ExecutionsPage.ts b/packages/quality/testing/playwright/pages/ExecutionsPage.ts similarity index 100% rename from packages/testing/playwright/pages/ExecutionsPage.ts rename to packages/quality/testing/playwright/pages/ExecutionsPage.ts diff --git a/packages/testing/playwright/pages/InstanceAiPage.ts b/packages/quality/testing/playwright/pages/InstanceAiPage.ts similarity index 100% rename from packages/testing/playwright/pages/InstanceAiPage.ts rename to packages/quality/testing/playwright/pages/InstanceAiPage.ts diff --git a/packages/testing/playwright/pages/KeycloakLoginPage.ts b/packages/quality/testing/playwright/pages/KeycloakLoginPage.ts similarity index 100% rename from packages/testing/playwright/pages/KeycloakLoginPage.ts rename to packages/quality/testing/playwright/pages/KeycloakLoginPage.ts diff --git a/packages/testing/playwright/pages/MfaLoginPage.ts b/packages/quality/testing/playwright/pages/MfaLoginPage.ts similarity index 100% rename from packages/testing/playwright/pages/MfaLoginPage.ts rename to packages/quality/testing/playwright/pages/MfaLoginPage.ts diff --git a/packages/testing/playwright/pages/MfaSetupModal.ts b/packages/quality/testing/playwright/pages/MfaSetupModal.ts similarity index 100% rename from packages/testing/playwright/pages/MfaSetupModal.ts rename to packages/quality/testing/playwright/pages/MfaSetupModal.ts diff --git a/packages/testing/playwright/pages/NodeDetailsViewPage.ts b/packages/quality/testing/playwright/pages/NodeDetailsViewPage.ts similarity index 100% rename from packages/testing/playwright/pages/NodeDetailsViewPage.ts rename to packages/quality/testing/playwright/pages/NodeDetailsViewPage.ts diff --git a/packages/testing/playwright/pages/NpsSurveyPage.ts b/packages/quality/testing/playwright/pages/NpsSurveyPage.ts similarity index 100% rename from packages/testing/playwright/pages/NpsSurveyPage.ts rename to packages/quality/testing/playwright/pages/NpsSurveyPage.ts diff --git a/packages/testing/playwright/pages/OAuthConsentPage.ts b/packages/quality/testing/playwright/pages/OAuthConsentPage.ts similarity index 100% rename from packages/testing/playwright/pages/OAuthConsentPage.ts rename to packages/quality/testing/playwright/pages/OAuthConsentPage.ts diff --git a/packages/testing/playwright/pages/ProjectSettingsPage.ts b/packages/quality/testing/playwright/pages/ProjectSettingsPage.ts similarity index 100% rename from packages/testing/playwright/pages/ProjectSettingsPage.ts rename to packages/quality/testing/playwright/pages/ProjectSettingsPage.ts diff --git a/packages/testing/playwright/pages/PublicFormPage.ts b/packages/quality/testing/playwright/pages/PublicFormPage.ts similarity index 100% rename from packages/testing/playwright/pages/PublicFormPage.ts rename to packages/quality/testing/playwright/pages/PublicFormPage.ts diff --git a/packages/testing/playwright/pages/SecretsProviderSettingsPage.ts b/packages/quality/testing/playwright/pages/SecretsProviderSettingsPage.ts similarity index 100% rename from packages/testing/playwright/pages/SecretsProviderSettingsPage.ts rename to packages/quality/testing/playwright/pages/SecretsProviderSettingsPage.ts diff --git a/packages/testing/playwright/pages/SecuritySettingsPage.ts b/packages/quality/testing/playwright/pages/SecuritySettingsPage.ts similarity index 100% rename from packages/testing/playwright/pages/SecuritySettingsPage.ts rename to packages/quality/testing/playwright/pages/SecuritySettingsPage.ts diff --git a/packages/testing/playwright/pages/SettingsEnvironmentPage.ts b/packages/quality/testing/playwright/pages/SettingsEnvironmentPage.ts similarity index 100% rename from packages/testing/playwright/pages/SettingsEnvironmentPage.ts rename to packages/quality/testing/playwright/pages/SettingsEnvironmentPage.ts diff --git a/packages/testing/playwright/pages/SettingsLogStreamingPage.ts b/packages/quality/testing/playwright/pages/SettingsLogStreamingPage.ts similarity index 100% rename from packages/testing/playwright/pages/SettingsLogStreamingPage.ts rename to packages/quality/testing/playwright/pages/SettingsLogStreamingPage.ts diff --git a/packages/testing/playwright/pages/SettingsMcpPage.ts b/packages/quality/testing/playwright/pages/SettingsMcpPage.ts similarity index 100% rename from packages/testing/playwright/pages/SettingsMcpPage.ts rename to packages/quality/testing/playwright/pages/SettingsMcpPage.ts diff --git a/packages/testing/playwright/pages/SettingsPersonalPage.ts b/packages/quality/testing/playwright/pages/SettingsPersonalPage.ts similarity index 100% rename from packages/testing/playwright/pages/SettingsPersonalPage.ts rename to packages/quality/testing/playwright/pages/SettingsPersonalPage.ts diff --git a/packages/testing/playwright/pages/SettingsSsoPage.ts b/packages/quality/testing/playwright/pages/SettingsSsoPage.ts similarity index 100% rename from packages/testing/playwright/pages/SettingsSsoPage.ts rename to packages/quality/testing/playwright/pages/SettingsSsoPage.ts diff --git a/packages/testing/playwright/pages/SettingsUsersPage.ts b/packages/quality/testing/playwright/pages/SettingsUsersPage.ts similarity index 100% rename from packages/testing/playwright/pages/SettingsUsersPage.ts rename to packages/quality/testing/playwright/pages/SettingsUsersPage.ts diff --git a/packages/testing/playwright/pages/SidebarPage.ts b/packages/quality/testing/playwright/pages/SidebarPage.ts similarity index 100% rename from packages/testing/playwright/pages/SidebarPage.ts rename to packages/quality/testing/playwright/pages/SidebarPage.ts diff --git a/packages/testing/playwright/pages/SignInPage.ts b/packages/quality/testing/playwright/pages/SignInPage.ts similarity index 100% rename from packages/testing/playwright/pages/SignInPage.ts rename to packages/quality/testing/playwright/pages/SignInPage.ts diff --git a/packages/testing/playwright/pages/SourceControlPullModal.ts b/packages/quality/testing/playwright/pages/SourceControlPullModal.ts similarity index 100% rename from packages/testing/playwright/pages/SourceControlPullModal.ts rename to packages/quality/testing/playwright/pages/SourceControlPullModal.ts diff --git a/packages/testing/playwright/pages/SourceControlPushModal.ts b/packages/quality/testing/playwright/pages/SourceControlPushModal.ts similarity index 100% rename from packages/testing/playwright/pages/SourceControlPushModal.ts rename to packages/quality/testing/playwright/pages/SourceControlPushModal.ts diff --git a/packages/testing/playwright/pages/TemplateCredentialSetupPage.ts b/packages/quality/testing/playwright/pages/TemplateCredentialSetupPage.ts similarity index 100% rename from packages/testing/playwright/pages/TemplateCredentialSetupPage.ts rename to packages/quality/testing/playwright/pages/TemplateCredentialSetupPage.ts diff --git a/packages/testing/playwright/pages/TemplatesPage.ts b/packages/quality/testing/playwright/pages/TemplatesPage.ts similarity index 100% rename from packages/testing/playwright/pages/TemplatesPage.ts rename to packages/quality/testing/playwright/pages/TemplatesPage.ts diff --git a/packages/testing/playwright/pages/VariablesPage.ts b/packages/quality/testing/playwright/pages/VariablesPage.ts similarity index 100% rename from packages/testing/playwright/pages/VariablesPage.ts rename to packages/quality/testing/playwright/pages/VariablesPage.ts diff --git a/packages/testing/playwright/pages/VersionsPage.ts b/packages/quality/testing/playwright/pages/VersionsPage.ts similarity index 100% rename from packages/testing/playwright/pages/VersionsPage.ts rename to packages/quality/testing/playwright/pages/VersionsPage.ts diff --git a/packages/testing/playwright/pages/WorkerViewPage.ts b/packages/quality/testing/playwright/pages/WorkerViewPage.ts similarity index 100% rename from packages/testing/playwright/pages/WorkerViewPage.ts rename to packages/quality/testing/playwright/pages/WorkerViewPage.ts diff --git a/packages/testing/playwright/pages/WorkflowActivationModal.ts b/packages/quality/testing/playwright/pages/WorkflowActivationModal.ts similarity index 100% rename from packages/testing/playwright/pages/WorkflowActivationModal.ts rename to packages/quality/testing/playwright/pages/WorkflowActivationModal.ts diff --git a/packages/testing/playwright/pages/WorkflowCredentialSetupModal.ts b/packages/quality/testing/playwright/pages/WorkflowCredentialSetupModal.ts similarity index 100% rename from packages/testing/playwright/pages/WorkflowCredentialSetupModal.ts rename to packages/quality/testing/playwright/pages/WorkflowCredentialSetupModal.ts diff --git a/packages/testing/playwright/pages/WorkflowReviewsPage.ts b/packages/quality/testing/playwright/pages/WorkflowReviewsPage.ts similarity index 100% rename from packages/testing/playwright/pages/WorkflowReviewsPage.ts rename to packages/quality/testing/playwright/pages/WorkflowReviewsPage.ts diff --git a/packages/testing/playwright/pages/WorkflowSettingsModal.ts b/packages/quality/testing/playwright/pages/WorkflowSettingsModal.ts similarity index 100% rename from packages/testing/playwright/pages/WorkflowSettingsModal.ts rename to packages/quality/testing/playwright/pages/WorkflowSettingsModal.ts diff --git a/packages/testing/playwright/pages/WorkflowSharingModal.ts b/packages/quality/testing/playwright/pages/WorkflowSharingModal.ts similarity index 100% rename from packages/testing/playwright/pages/WorkflowSharingModal.ts rename to packages/quality/testing/playwright/pages/WorkflowSharingModal.ts diff --git a/packages/testing/playwright/pages/WorkflowsPage.ts b/packages/quality/testing/playwright/pages/WorkflowsPage.ts similarity index 100% rename from packages/testing/playwright/pages/WorkflowsPage.ts rename to packages/quality/testing/playwright/pages/WorkflowsPage.ts diff --git a/packages/testing/playwright/pages/components/AIBuilderPage.ts b/packages/quality/testing/playwright/pages/components/AIBuilderPage.ts similarity index 100% rename from packages/testing/playwright/pages/components/AIBuilderPage.ts rename to packages/quality/testing/playwright/pages/components/AIBuilderPage.ts diff --git a/packages/testing/playwright/pages/components/ActionToggle.ts b/packages/quality/testing/playwright/pages/components/ActionToggle.ts similarity index 100% rename from packages/testing/playwright/pages/components/ActionToggle.ts rename to packages/quality/testing/playwright/pages/components/ActionToggle.ts diff --git a/packages/testing/playwright/pages/components/AddResource.ts b/packages/quality/testing/playwright/pages/components/AddResource.ts similarity index 100% rename from packages/testing/playwright/pages/components/AddResource.ts rename to packages/quality/testing/playwright/pages/components/AddResource.ts diff --git a/packages/testing/playwright/pages/components/BaseModal.ts b/packages/quality/testing/playwright/pages/components/BaseModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/BaseModal.ts rename to packages/quality/testing/playwright/pages/components/BaseModal.ts diff --git a/packages/testing/playwright/pages/components/Breadcrumbs.ts b/packages/quality/testing/playwright/pages/components/Breadcrumbs.ts similarity index 100% rename from packages/testing/playwright/pages/components/Breadcrumbs.ts rename to packages/quality/testing/playwright/pages/components/Breadcrumbs.ts diff --git a/packages/testing/playwright/pages/components/BuilderSetupWizard.ts b/packages/quality/testing/playwright/pages/components/BuilderSetupWizard.ts similarity index 100% rename from packages/testing/playwright/pages/components/BuilderSetupWizard.ts rename to packages/quality/testing/playwright/pages/components/BuilderSetupWizard.ts diff --git a/packages/testing/playwright/pages/components/ChatAgentCard.ts b/packages/quality/testing/playwright/pages/components/ChatAgentCard.ts similarity index 100% rename from packages/testing/playwright/pages/components/ChatAgentCard.ts rename to packages/quality/testing/playwright/pages/components/ChatAgentCard.ts diff --git a/packages/testing/playwright/pages/components/ChatHubCredentialModal.ts b/packages/quality/testing/playwright/pages/components/ChatHubCredentialModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/ChatHubCredentialModal.ts rename to packages/quality/testing/playwright/pages/components/ChatHubCredentialModal.ts diff --git a/packages/testing/playwright/pages/components/ChatHubPersonalAgentModal.ts b/packages/quality/testing/playwright/pages/components/ChatHubPersonalAgentModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/ChatHubPersonalAgentModal.ts rename to packages/quality/testing/playwright/pages/components/ChatHubPersonalAgentModal.ts diff --git a/packages/testing/playwright/pages/components/ChatHubProviderSettingsModal.ts b/packages/quality/testing/playwright/pages/components/ChatHubProviderSettingsModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/ChatHubProviderSettingsModal.ts rename to packages/quality/testing/playwright/pages/components/ChatHubProviderSettingsModal.ts diff --git a/packages/testing/playwright/pages/components/ChatHubSidebar.ts b/packages/quality/testing/playwright/pages/components/ChatHubSidebar.ts similarity index 100% rename from packages/testing/playwright/pages/components/ChatHubSidebar.ts rename to packages/quality/testing/playwright/pages/components/ChatHubSidebar.ts diff --git a/packages/testing/playwright/pages/components/ChatHubToolsModal.ts b/packages/quality/testing/playwright/pages/components/ChatHubToolsModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/ChatHubToolsModal.ts rename to packages/quality/testing/playwright/pages/components/ChatHubToolsModal.ts diff --git a/packages/testing/playwright/pages/components/CodeNodeEditor.ts b/packages/quality/testing/playwright/pages/components/CodeNodeEditor.ts similarity index 100% rename from packages/testing/playwright/pages/components/CodeNodeEditor.ts rename to packages/quality/testing/playwright/pages/components/CodeNodeEditor.ts diff --git a/packages/testing/playwright/pages/components/CommandBar.ts b/packages/quality/testing/playwright/pages/components/CommandBar.ts similarity index 100% rename from packages/testing/playwright/pages/components/CommandBar.ts rename to packages/quality/testing/playwright/pages/components/CommandBar.ts diff --git a/packages/testing/playwright/pages/components/ConvertToSubworkflowModal.ts b/packages/quality/testing/playwright/pages/components/ConvertToSubworkflowModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/ConvertToSubworkflowModal.ts rename to packages/quality/testing/playwright/pages/components/ConvertToSubworkflowModal.ts diff --git a/packages/testing/playwright/pages/components/CredentialModal.ts b/packages/quality/testing/playwright/pages/components/CredentialModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/CredentialModal.ts rename to packages/quality/testing/playwright/pages/components/CredentialModal.ts diff --git a/packages/testing/playwright/pages/components/DeleteSecretsProviderModal.ts b/packages/quality/testing/playwright/pages/components/DeleteSecretsProviderModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/DeleteSecretsProviderModal.ts rename to packages/quality/testing/playwright/pages/components/DeleteSecretsProviderModal.ts diff --git a/packages/testing/playwright/pages/components/FloatingUiHelper.ts b/packages/quality/testing/playwright/pages/components/FloatingUiHelper.ts similarity index 100% rename from packages/testing/playwright/pages/components/FloatingUiHelper.ts rename to packages/quality/testing/playwright/pages/components/FloatingUiHelper.ts diff --git a/packages/testing/playwright/pages/components/FocusPanel.ts b/packages/quality/testing/playwright/pages/components/FocusPanel.ts similarity index 100% rename from packages/testing/playwright/pages/components/FocusPanel.ts rename to packages/quality/testing/playwright/pages/components/FocusPanel.ts diff --git a/packages/testing/playwright/pages/components/InlineExpressionEditor.ts b/packages/quality/testing/playwright/pages/components/InlineExpressionEditor.ts similarity index 100% rename from packages/testing/playwright/pages/components/InlineExpressionEditor.ts rename to packages/quality/testing/playwright/pages/components/InlineExpressionEditor.ts diff --git a/packages/testing/playwright/pages/components/InstanceAiSidebar.ts b/packages/quality/testing/playwright/pages/components/InstanceAiSidebar.ts similarity index 100% rename from packages/testing/playwright/pages/components/InstanceAiSidebar.ts rename to packages/quality/testing/playwright/pages/components/InstanceAiSidebar.ts diff --git a/packages/testing/playwright/pages/components/InstanceAiWorkflowSetup.ts b/packages/quality/testing/playwright/pages/components/InstanceAiWorkflowSetup.ts similarity index 100% rename from packages/testing/playwright/pages/components/InstanceAiWorkflowSetup.ts rename to packages/quality/testing/playwright/pages/components/InstanceAiWorkflowSetup.ts diff --git a/packages/testing/playwright/pages/components/InteractionsPage.ts b/packages/quality/testing/playwright/pages/components/InteractionsPage.ts similarity index 100% rename from packages/testing/playwright/pages/components/InteractionsPage.ts rename to packages/quality/testing/playwright/pages/components/InteractionsPage.ts diff --git a/packages/testing/playwright/pages/components/LogsPanel.ts b/packages/quality/testing/playwright/pages/components/LogsPanel.ts similarity index 100% rename from packages/testing/playwright/pages/components/LogsPanel.ts rename to packages/quality/testing/playwright/pages/components/LogsPanel.ts diff --git a/packages/testing/playwright/pages/components/ManualChatModal.ts b/packages/quality/testing/playwright/pages/components/ManualChatModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/ManualChatModal.ts rename to packages/quality/testing/playwright/pages/components/ManualChatModal.ts diff --git a/packages/testing/playwright/pages/components/NodeCreator.ts b/packages/quality/testing/playwright/pages/components/NodeCreator.ts similarity index 100% rename from packages/testing/playwright/pages/components/NodeCreator.ts rename to packages/quality/testing/playwright/pages/components/NodeCreator.ts diff --git a/packages/testing/playwright/pages/components/NodeCredentials.ts b/packages/quality/testing/playwright/pages/components/NodeCredentials.ts similarity index 100% rename from packages/testing/playwright/pages/components/NodeCredentials.ts rename to packages/quality/testing/playwright/pages/components/NodeCredentials.ts diff --git a/packages/testing/playwright/pages/components/NotificationsPage.ts b/packages/quality/testing/playwright/pages/components/NotificationsPage.ts similarity index 100% rename from packages/testing/playwright/pages/components/NotificationsPage.ts rename to packages/quality/testing/playwright/pages/components/NotificationsPage.ts diff --git a/packages/testing/playwright/pages/components/ProjectHeader.ts b/packages/quality/testing/playwright/pages/components/ProjectHeader.ts similarity index 100% rename from packages/testing/playwright/pages/components/ProjectHeader.ts rename to packages/quality/testing/playwright/pages/components/ProjectHeader.ts diff --git a/packages/testing/playwright/pages/components/ProjectTabsComponent.ts b/packages/quality/testing/playwright/pages/components/ProjectTabsComponent.ts similarity index 100% rename from packages/testing/playwright/pages/components/ProjectTabsComponent.ts rename to packages/quality/testing/playwright/pages/components/ProjectTabsComponent.ts diff --git a/packages/testing/playwright/pages/components/ResourceCards.ts b/packages/quality/testing/playwright/pages/components/ResourceCards.ts similarity index 100% rename from packages/testing/playwright/pages/components/ResourceCards.ts rename to packages/quality/testing/playwright/pages/components/ResourceCards.ts diff --git a/packages/testing/playwright/pages/components/ResourceLocator.ts b/packages/quality/testing/playwright/pages/components/ResourceLocator.ts similarity index 100% rename from packages/testing/playwright/pages/components/ResourceLocator.ts rename to packages/quality/testing/playwright/pages/components/ResourceLocator.ts diff --git a/packages/testing/playwright/pages/components/ResourceMoveModal.ts b/packages/quality/testing/playwright/pages/components/ResourceMoveModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/ResourceMoveModal.ts rename to packages/quality/testing/playwright/pages/components/ResourceMoveModal.ts diff --git a/packages/testing/playwright/pages/components/RunDataPanel.ts b/packages/quality/testing/playwright/pages/components/RunDataPanel.ts similarity index 100% rename from packages/testing/playwright/pages/components/RunDataPanel.ts rename to packages/quality/testing/playwright/pages/components/RunDataPanel.ts diff --git a/packages/testing/playwright/pages/components/SaveChangesModal.ts b/packages/quality/testing/playwright/pages/components/SaveChangesModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/SaveChangesModal.ts rename to packages/quality/testing/playwright/pages/components/SaveChangesModal.ts diff --git a/packages/testing/playwright/pages/components/SecretsProviderConnectionModal.ts b/packages/quality/testing/playwright/pages/components/SecretsProviderConnectionModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/SecretsProviderConnectionModal.ts rename to packages/quality/testing/playwright/pages/components/SecretsProviderConnectionModal.ts diff --git a/packages/testing/playwright/pages/components/SettingsSidebar.ts b/packages/quality/testing/playwright/pages/components/SettingsSidebar.ts similarity index 100% rename from packages/testing/playwright/pages/components/SettingsSidebar.ts rename to packages/quality/testing/playwright/pages/components/SettingsSidebar.ts diff --git a/packages/testing/playwright/pages/components/SetupWorkflowCredentialsModal.ts b/packages/quality/testing/playwright/pages/components/SetupWorkflowCredentialsModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/SetupWorkflowCredentialsModal.ts rename to packages/quality/testing/playwright/pages/components/SetupWorkflowCredentialsModal.ts diff --git a/packages/testing/playwright/pages/components/StickyComponent.ts b/packages/quality/testing/playwright/pages/components/StickyComponent.ts similarity index 100% rename from packages/testing/playwright/pages/components/StickyComponent.ts rename to packages/quality/testing/playwright/pages/components/StickyComponent.ts diff --git a/packages/testing/playwright/pages/components/TagsManagerModal.ts b/packages/quality/testing/playwright/pages/components/TagsManagerModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/TagsManagerModal.ts rename to packages/quality/testing/playwright/pages/components/TagsManagerModal.ts diff --git a/packages/testing/playwright/pages/components/VariableModal.ts b/packages/quality/testing/playwright/pages/components/VariableModal.ts similarity index 100% rename from packages/testing/playwright/pages/components/VariableModal.ts rename to packages/quality/testing/playwright/pages/components/VariableModal.ts diff --git a/packages/testing/playwright/pages/components/WorkflowMenu.ts b/packages/quality/testing/playwright/pages/components/WorkflowMenu.ts similarity index 100% rename from packages/testing/playwright/pages/components/WorkflowMenu.ts rename to packages/quality/testing/playwright/pages/components/WorkflowMenu.ts diff --git a/packages/testing/playwright/pages/components/WorkflowReviewControls.ts b/packages/quality/testing/playwright/pages/components/WorkflowReviewControls.ts similarity index 100% rename from packages/testing/playwright/pages/components/WorkflowReviewControls.ts rename to packages/quality/testing/playwright/pages/components/WorkflowReviewControls.ts diff --git a/packages/testing/playwright/pages/components/dialogLocators.ts b/packages/quality/testing/playwright/pages/components/dialogLocators.ts similarity index 100% rename from packages/testing/playwright/pages/components/dialogLocators.ts rename to packages/quality/testing/playwright/pages/components/dialogLocators.ts diff --git a/packages/testing/playwright/pages/components/messageBoxLocators.ts b/packages/quality/testing/playwright/pages/components/messageBoxLocators.ts similarity index 100% rename from packages/testing/playwright/pages/components/messageBoxLocators.ts rename to packages/quality/testing/playwright/pages/components/messageBoxLocators.ts diff --git a/packages/testing/playwright/pages/components/nodes/EditFieldsNode.ts b/packages/quality/testing/playwright/pages/components/nodes/EditFieldsNode.ts similarity index 100% rename from packages/testing/playwright/pages/components/nodes/EditFieldsNode.ts rename to packages/quality/testing/playwright/pages/components/nodes/EditFieldsNode.ts diff --git a/packages/testing/playwright/pages/n8nPage.ts b/packages/quality/testing/playwright/pages/n8nPage.ts similarity index 100% rename from packages/testing/playwright/pages/n8nPage.ts rename to packages/quality/testing/playwright/pages/n8nPage.ts diff --git a/packages/testing/playwright/playwright-projects.ts b/packages/quality/testing/playwright/playwright-projects.ts similarity index 100% rename from packages/testing/playwright/playwright-projects.ts rename to packages/quality/testing/playwright/playwright-projects.ts diff --git a/packages/testing/playwright/playwright.config.ts b/packages/quality/testing/playwright/playwright.config.ts similarity index 99% rename from packages/testing/playwright/playwright.config.ts rename to packages/quality/testing/playwright/playwright.config.ts index 73f3f2faab4..59dfd35ef8b 100644 --- a/packages/testing/playwright/playwright.config.ts +++ b/packages/quality/testing/playwright/playwright.config.ts @@ -74,7 +74,7 @@ if (BACKEND_URL && !SKIP_WEB_SERVER) { const envHealthEndpoint: unknown = getTestEnv().N8N_ENDPOINT_HEALTH ?? process.env.N8N_ENDPOINT_HEALTH; webServer.push({ - command: 'pnpm --dir ../../.. start', + command: 'pnpm --dir ../../../.. start', url: getReadinessUrl( BACKEND_URL, typeof envHealthEndpoint === 'string' ? envHealthEndpoint : undefined, diff --git a/packages/testing/playwright/reporters/USAGE.md b/packages/quality/testing/playwright/reporters/USAGE.md similarity index 100% rename from packages/testing/playwright/reporters/USAGE.md rename to packages/quality/testing/playwright/reporters/USAGE.md diff --git a/packages/testing/playwright/reporters/a11y-reporter.test.ts b/packages/quality/testing/playwright/reporters/a11y-reporter.test.ts similarity index 100% rename from packages/testing/playwright/reporters/a11y-reporter.test.ts rename to packages/quality/testing/playwright/reporters/a11y-reporter.test.ts diff --git a/packages/testing/playwright/reporters/a11y-reporter.ts b/packages/quality/testing/playwright/reporters/a11y-reporter.ts similarity index 100% rename from packages/testing/playwright/reporters/a11y-reporter.ts rename to packages/quality/testing/playwright/reporters/a11y-reporter.ts diff --git a/packages/testing/playwright/reporters/benchmark-summary-reporter.ts b/packages/quality/testing/playwright/reporters/benchmark-summary-reporter.ts similarity index 100% rename from packages/testing/playwright/reporters/benchmark-summary-reporter.ts rename to packages/quality/testing/playwright/reporters/benchmark-summary-reporter.ts diff --git a/packages/testing/playwright/reporters/ci-metrics.test.ts b/packages/quality/testing/playwright/reporters/ci-metrics.test.ts similarity index 100% rename from packages/testing/playwright/reporters/ci-metrics.test.ts rename to packages/quality/testing/playwright/reporters/ci-metrics.test.ts diff --git a/packages/testing/playwright/reporters/ci-metrics.ts b/packages/quality/testing/playwright/reporters/ci-metrics.ts similarity index 100% rename from packages/testing/playwright/reporters/ci-metrics.ts rename to packages/quality/testing/playwright/reporters/ci-metrics.ts diff --git a/packages/testing/playwright/reporters/langsmith-eval.ts b/packages/quality/testing/playwright/reporters/langsmith-eval.ts similarity index 100% rename from packages/testing/playwright/reporters/langsmith-eval.ts rename to packages/quality/testing/playwright/reporters/langsmith-eval.ts diff --git a/packages/testing/playwright/reporters/metrics-reporter.ts b/packages/quality/testing/playwright/reporters/metrics-reporter.ts similarity index 100% rename from packages/testing/playwright/reporters/metrics-reporter.ts rename to packages/quality/testing/playwright/reporters/metrics-reporter.ts diff --git a/packages/testing/playwright/scripts/__fixtures__/sizing-matrix/README.md b/packages/quality/testing/playwright/scripts/__fixtures__/sizing-matrix/README.md similarity index 100% rename from packages/testing/playwright/scripts/__fixtures__/sizing-matrix/README.md rename to packages/quality/testing/playwright/scripts/__fixtures__/sizing-matrix/README.md diff --git a/packages/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-kafka-shard-1/test-results.json b/packages/quality/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-kafka-shard-1/test-results.json similarity index 100% rename from packages/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-kafka-shard-1/test-results.json rename to packages/quality/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-kafka-shard-1/test-results.json diff --git a/packages/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-kafka-shard-2/test-results.json b/packages/quality/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-kafka-shard-2/test-results.json similarity index 100% rename from packages/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-kafka-shard-2/test-results.json rename to packages/quality/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-kafka-shard-2/test-results.json diff --git a/packages/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-webhook-shard-1/test-results.json b/packages/quality/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-webhook-shard-1/test-results.json similarity index 100% rename from packages/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-webhook-shard-1/test-results.json rename to packages/quality/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-webhook-shard-1/test-results.json diff --git a/packages/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-webhook-shard-2/test-results.json b/packages/quality/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-webhook-shard-2/test-results.json similarity index 100% rename from packages/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-webhook-shard-2/test-results.json rename to packages/quality/testing/playwright/scripts/__fixtures__/sizing-matrix/benchmark-webhook-shard-2/test-results.json diff --git a/packages/testing/playwright/scripts/aggregate-coverage.mjs b/packages/quality/testing/playwright/scripts/aggregate-coverage.mjs similarity index 99% rename from packages/testing/playwright/scripts/aggregate-coverage.mjs rename to packages/quality/testing/playwright/scripts/aggregate-coverage.mjs index 0474641cf72..e114949bdd8 100644 --- a/packages/testing/playwright/scripts/aggregate-coverage.mjs +++ b/packages/quality/testing/playwright/scripts/aggregate-coverage.mjs @@ -33,7 +33,7 @@ import { fileURLToPath } from 'node:url'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const JANITOR_CLI = path.resolve(__dirname, '..', '..', 'janitor', 'dist', 'cli.js'); // scripts/ → playwright/ → testing/ → packages/ → repo root -const REPO_ROOT = path.resolve(__dirname, '..', '..', '..', '..') + path.sep; +const REPO_ROOT = path.resolve(__dirname, '..', '..', '..', '..', '..') + path.sep; const arg = (name, fallback) => process.argv.find((a) => a.startsWith(`--${name}=`))?.slice(name.length + 3) ?? fallback; diff --git a/packages/testing/playwright/scripts/ast-viewer.ts b/packages/quality/testing/playwright/scripts/ast-viewer.ts similarity index 100% rename from packages/testing/playwright/scripts/ast-viewer.ts rename to packages/quality/testing/playwright/scripts/ast-viewer.ts diff --git a/packages/testing/playwright/scripts/backend-coverage-resolver.ts b/packages/quality/testing/playwright/scripts/backend-coverage-resolver.ts similarity index 98% rename from packages/testing/playwright/scripts/backend-coverage-resolver.ts rename to packages/quality/testing/playwright/scripts/backend-coverage-resolver.ts index 5c73cd34798..c4e8bc22fd9 100644 --- a/packages/testing/playwright/scripts/backend-coverage-resolver.ts +++ b/packages/quality/testing/playwright/scripts/backend-coverage-resolver.ts @@ -17,7 +17,7 @@ import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs'; import { dirname, join, resolve } from 'node:path'; import { pathToFileURL } from 'node:url'; -export const REPO_ROOT = resolve(process.cwd(), '../../..'); +export const REPO_ROOT = resolve(process.cwd(), '../../../..'); // Where `docker cp` placed the image's n8n package tree, and the in-image root // those urls are prefixed with (see docker/images/n8n/Dockerfile). const IMAGE_DIST_ROOT = process.env.IMAGE_DIST_ROOT; diff --git a/packages/testing/playwright/scripts/build-test-image.mjs b/packages/quality/testing/playwright/scripts/build-test-image.mjs similarity index 97% rename from packages/testing/playwright/scripts/build-test-image.mjs rename to packages/quality/testing/playwright/scripts/build-test-image.mjs index 9f7bccc1fa8..43b0e3e8db8 100644 --- a/packages/testing/playwright/scripts/build-test-image.mjs +++ b/packages/quality/testing/playwright/scripts/build-test-image.mjs @@ -7,7 +7,7 @@ import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const repoRoot = path.resolve(__dirname, '../../../..'); +const repoRoot = path.resolve(__dirname, '../../../../..'); function execCommand(command, options = {}) { return execSync(command, { cwd: repoRoot, stdio: 'inherit', ...options }); diff --git a/packages/testing/playwright/scripts/canvas-perf-sentinels.mjs b/packages/quality/testing/playwright/scripts/canvas-perf-sentinels.mjs similarity index 99% rename from packages/testing/playwright/scripts/canvas-perf-sentinels.mjs rename to packages/quality/testing/playwright/scripts/canvas-perf-sentinels.mjs index dc7e8f4af49..14b0ce32989 100755 --- a/packages/testing/playwright/scripts/canvas-perf-sentinels.mjs +++ b/packages/quality/testing/playwright/scripts/canvas-perf-sentinels.mjs @@ -58,7 +58,7 @@ function findResultsPaths() { if (explicit.length > 0) return explicit.map((path) => resolve(path)); const candidates = [ 'test-results.json', - 'packages/testing/playwright/test-results.json', + 'packages/quality/testing/playwright/test-results.json', 'playwright/test-results.json', ]; for (const candidate of candidates) { diff --git a/packages/testing/playwright/scripts/count-test-distribution.mjs b/packages/quality/testing/playwright/scripts/count-test-distribution.mjs similarity index 100% rename from packages/testing/playwright/scripts/count-test-distribution.mjs rename to packages/quality/testing/playwright/scripts/count-test-distribution.mjs diff --git a/packages/testing/playwright/scripts/coverage-analysis.mjs b/packages/quality/testing/playwright/scripts/coverage-analysis.mjs similarity index 100% rename from packages/testing/playwright/scripts/coverage-analysis.mjs rename to packages/quality/testing/playwright/scripts/coverage-analysis.mjs diff --git a/packages/testing/playwright/scripts/coverage-pipeline.test.ts b/packages/quality/testing/playwright/scripts/coverage-pipeline.test.ts similarity index 100% rename from packages/testing/playwright/scripts/coverage-pipeline.test.ts rename to packages/quality/testing/playwright/scripts/coverage-pipeline.test.ts diff --git a/packages/testing/playwright/scripts/coverage-workflow.md b/packages/quality/testing/playwright/scripts/coverage-workflow.md similarity index 97% rename from packages/testing/playwright/scripts/coverage-workflow.md rename to packages/quality/testing/playwright/scripts/coverage-workflow.md index d2468876586..6a99ca439e8 100644 --- a/packages/testing/playwright/scripts/coverage-workflow.md +++ b/packages/quality/testing/playwright/scripts/coverage-workflow.md @@ -32,7 +32,7 @@ Run your Playwright tests with coverage collection enabled: ```bash # From the playwright package directory -cd packages/testing/playwright +cd packages/quality/testing/playwright # Run E2E tests pnpm test:e2e @@ -67,7 +67,7 @@ Open the generated HTML report in your browser: open coverage/index.html # Or navigate to: -file:///path/to/packages/testing/playwright/coverage/index.html +file:///path/to/packages/quality/testing/playwright/coverage/index.html ``` ## Understanding the Coverage Report @@ -153,7 +153,7 @@ lines: 80 After running the coverage workflow, you'll have: ``` -packages/testing/playwright/ +packages/quality/testing/playwright/ ├── coverage/ # HTML coverage reports │ ├── index.html # Main coverage report │ ├── base.css # Report styling diff --git a/packages/testing/playwright/scripts/distribute-tests.mjs b/packages/quality/testing/playwright/scripts/distribute-tests.mjs similarity index 99% rename from packages/testing/playwright/scripts/distribute-tests.mjs rename to packages/quality/testing/playwright/scripts/distribute-tests.mjs index 1aaf55a4da1..caff2847775 100644 --- a/packages/testing/playwright/scripts/distribute-tests.mjs +++ b/packages/quality/testing/playwright/scripts/distribute-tests.mjs @@ -8,7 +8,7 @@ * then maps capabilities to n8n-specific Docker images for the CI matrix. * * Impact scoping is a domain-partitioned UNION of two analyzers (DEVP-364): - * - app-source partition (changes outside packages/testing/playwright/) + * - app-source partition (changes outside packages/quality/testing/playwright/) * → V8 coverage map via `janitor select-e2e` (see select-affected-e2e.mjs) * - playwright-internal partition (changes inside the playwright package) * → AST walk via `janitor impact --test-list` @@ -38,7 +38,7 @@ import { getRequiredImages } from './distribution-images.mjs'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const PLAYWRIGHT_DIR = path.resolve(__dirname, '..'); -const REPO_ROOT = path.resolve(__dirname, '..', '..', '..', '..'); +const REPO_ROOT = path.resolve(__dirname, '..', '..', '..', '..', '..'); const JANITOR_CLI = path.resolve(__dirname, '..', '..', 'janitor', 'dist', 'cli.js'); const SELECT_AFFECTED_E2E = path.resolve(__dirname, 'select-affected-e2e.mjs'); const DISTRIBUTION_REPORTER = path.resolve(__dirname, 'distribution-counter-reporter.ts'); diff --git a/packages/testing/playwright/scripts/distribution-counter-reporter.ts b/packages/quality/testing/playwright/scripts/distribution-counter-reporter.ts similarity index 100% rename from packages/testing/playwright/scripts/distribution-counter-reporter.ts rename to packages/quality/testing/playwright/scripts/distribution-counter-reporter.ts diff --git a/packages/testing/playwright/scripts/distribution-counter.mjs b/packages/quality/testing/playwright/scripts/distribution-counter.mjs similarity index 100% rename from packages/testing/playwright/scripts/distribution-counter.mjs rename to packages/quality/testing/playwright/scripts/distribution-counter.mjs diff --git a/packages/testing/playwright/scripts/distribution-counter.test.mjs b/packages/quality/testing/playwright/scripts/distribution-counter.test.mjs similarity index 100% rename from packages/testing/playwright/scripts/distribution-counter.test.mjs rename to packages/quality/testing/playwright/scripts/distribution-counter.test.mjs diff --git a/packages/testing/playwright/scripts/distribution-groups.mjs b/packages/quality/testing/playwright/scripts/distribution-groups.mjs similarity index 100% rename from packages/testing/playwright/scripts/distribution-groups.mjs rename to packages/quality/testing/playwright/scripts/distribution-groups.mjs diff --git a/packages/testing/playwright/scripts/distribution-groups.test.mjs b/packages/quality/testing/playwright/scripts/distribution-groups.test.mjs similarity index 100% rename from packages/testing/playwright/scripts/distribution-groups.test.mjs rename to packages/quality/testing/playwright/scripts/distribution-groups.test.mjs diff --git a/packages/testing/playwright/scripts/distribution-images.mjs b/packages/quality/testing/playwright/scripts/distribution-images.mjs similarity index 100% rename from packages/testing/playwright/scripts/distribution-images.mjs rename to packages/quality/testing/playwright/scripts/distribution-images.mjs diff --git a/packages/testing/playwright/scripts/distribution-images.test.mjs b/packages/quality/testing/playwright/scripts/distribution-images.test.mjs similarity index 100% rename from packages/testing/playwright/scripts/distribution-images.test.mjs rename to packages/quality/testing/playwright/scripts/distribution-images.test.mjs diff --git a/packages/testing/playwright/scripts/emit-shard-coverage.ts b/packages/quality/testing/playwright/scripts/emit-shard-coverage.ts similarity index 100% rename from packages/testing/playwright/scripts/emit-shard-coverage.ts rename to packages/quality/testing/playwright/scripts/emit-shard-coverage.ts diff --git a/packages/testing/playwright/scripts/emit-spec-backend-lcovs.test.ts b/packages/quality/testing/playwright/scripts/emit-spec-backend-lcovs.test.ts similarity index 100% rename from packages/testing/playwright/scripts/emit-spec-backend-lcovs.test.ts rename to packages/quality/testing/playwright/scripts/emit-spec-backend-lcovs.test.ts diff --git a/packages/testing/playwright/scripts/emit-spec-backend-lcovs.ts b/packages/quality/testing/playwright/scripts/emit-spec-backend-lcovs.ts similarity index 100% rename from packages/testing/playwright/scripts/emit-spec-backend-lcovs.ts rename to packages/quality/testing/playwright/scripts/emit-spec-backend-lcovs.ts diff --git a/packages/testing/playwright/scripts/emit-spec-lcovs.ts b/packages/quality/testing/playwright/scripts/emit-spec-lcovs.ts similarity index 100% rename from packages/testing/playwright/scripts/emit-spec-lcovs.ts rename to packages/quality/testing/playwright/scripts/emit-spec-lcovs.ts diff --git a/packages/testing/playwright/scripts/fetch-currents-metrics.mjs b/packages/quality/testing/playwright/scripts/fetch-currents-metrics.mjs similarity index 93% rename from packages/testing/playwright/scripts/fetch-currents-metrics.mjs rename to packages/quality/testing/playwright/scripts/fetch-currents-metrics.mjs index 51e1c5967ea..038a9c35813 100644 --- a/packages/testing/playwright/scripts/fetch-currents-metrics.mjs +++ b/packages/quality/testing/playwright/scripts/fetch-currents-metrics.mjs @@ -4,7 +4,7 @@ * Fetches test duration metrics from Currents API for test orchestration. * * Usage: - * CURRENTS_API_KEY= node packages/testing/playwright/scripts/fetch-currents-metrics.mjs --project=nHHLA5 + * CURRENTS_API_KEY= node packages/quality/testing/playwright/scripts/fetch-currents-metrics.mjs --project=nHHLA5 * * Output: .github/test-metrics/playwright.json */ @@ -15,8 +15,8 @@ import { fileURLToPath } from 'url'; import { execSync } from 'child_process'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); -const ROOT_DIR = path.resolve(__dirname, '../../../..'); -const PLAYWRIGHT_DIR = path.join(ROOT_DIR, 'packages', 'testing', 'playwright'); +const ROOT_DIR = path.resolve(__dirname, '../../../../..'); +const PLAYWRIGHT_DIR = path.join(ROOT_DIR, 'packages', 'quality', 'testing', 'playwright'); const OUTPUT_PATH = path.join(ROOT_DIR, '.github', 'test-metrics', 'playwright.json'); const CURRENTS_API = 'https://api.currents.dev/v1'; diff --git a/packages/testing/playwright/scripts/impact-map.md b/packages/quality/testing/playwright/scripts/impact-map.md similarity index 100% rename from packages/testing/playwright/scripts/impact-map.md rename to packages/quality/testing/playwright/scripts/impact-map.md diff --git a/packages/testing/playwright/scripts/impact-map.mjs b/packages/quality/testing/playwright/scripts/impact-map.mjs similarity index 100% rename from packages/testing/playwright/scripts/impact-map.mjs rename to packages/quality/testing/playwright/scripts/impact-map.mjs diff --git a/packages/testing/playwright/scripts/import-jaeger-traces.mjs b/packages/quality/testing/playwright/scripts/import-jaeger-traces.mjs similarity index 100% rename from packages/testing/playwright/scripts/import-jaeger-traces.mjs rename to packages/quality/testing/playwright/scripts/import-jaeger-traces.mjs diff --git a/packages/testing/playwright/scripts/import-victoria-data.mjs b/packages/quality/testing/playwright/scripts/import-victoria-data.mjs similarity index 100% rename from packages/testing/playwright/scripts/import-victoria-data.mjs rename to packages/quality/testing/playwright/scripts/import-victoria-data.mjs diff --git a/packages/testing/playwright/scripts/run-coverage-shard.mjs b/packages/quality/testing/playwright/scripts/run-coverage-shard.mjs similarity index 100% rename from packages/testing/playwright/scripts/run-coverage-shard.mjs rename to packages/quality/testing/playwright/scripts/run-coverage-shard.mjs diff --git a/packages/testing/playwright/scripts/run-local-instance-ai.mjs b/packages/quality/testing/playwright/scripts/run-local-instance-ai.mjs similarity index 100% rename from packages/testing/playwright/scripts/run-local-instance-ai.mjs rename to packages/quality/testing/playwright/scripts/run-local-instance-ai.mjs diff --git a/packages/testing/playwright/scripts/run-local-isolated.mjs b/packages/quality/testing/playwright/scripts/run-local-isolated.mjs similarity index 99% rename from packages/testing/playwright/scripts/run-local-isolated.mjs rename to packages/quality/testing/playwright/scripts/run-local-isolated.mjs index 9491367e591..ec85e40331c 100644 --- a/packages/testing/playwright/scripts/run-local-isolated.mjs +++ b/packages/quality/testing/playwright/scripts/run-local-isolated.mjs @@ -45,7 +45,7 @@ import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const playwrightDir = path.resolve(__dirname, '..'); -const repoRoot = path.resolve(playwrightDir, '../../..'); +const repoRoot = path.resolve(playwrightDir, '../../../..'); /** Ask the OS for a free TCP port. Race-y by nature (the port can be claimed * between close() and the consumer's bind), but acceptable for a dev script. */ diff --git a/packages/testing/playwright/scripts/select-affected-e2e.mjs b/packages/quality/testing/playwright/scripts/select-affected-e2e.mjs similarity index 99% rename from packages/testing/playwright/scripts/select-affected-e2e.mjs rename to packages/quality/testing/playwright/scripts/select-affected-e2e.mjs index 69dbcba7643..e8ec1d4548f 100644 --- a/packages/testing/playwright/scripts/select-affected-e2e.mjs +++ b/packages/quality/testing/playwright/scripts/select-affected-e2e.mjs @@ -23,7 +23,7 @@ import { fileURLToPath } from 'node:url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); -const REPO_ROOT = path.resolve(__dirname, '..', '..', '..', '..'); +const REPO_ROOT = path.resolve(__dirname, '..', '..', '..', '..', '..'); const JANITOR_CLI = path.resolve(__dirname, '..', '..', 'janitor', 'dist', 'cli.js'); const COMMITTED_MAP = path.join(REPO_ROOT, '.github', 'test-metrics', 'e2e-impact-map.json'); diff --git a/packages/testing/playwright/scripts/select-affected-e2e.test.ts b/packages/quality/testing/playwright/scripts/select-affected-e2e.test.ts similarity index 100% rename from packages/testing/playwright/scripts/select-affected-e2e.test.ts rename to packages/quality/testing/playwright/scripts/select-affected-e2e.test.ts diff --git a/packages/testing/playwright/scripts/sizing-matrix-aggregate.test.ts b/packages/quality/testing/playwright/scripts/sizing-matrix-aggregate.test.ts similarity index 100% rename from packages/testing/playwright/scripts/sizing-matrix-aggregate.test.ts rename to packages/quality/testing/playwright/scripts/sizing-matrix-aggregate.test.ts diff --git a/packages/testing/playwright/scripts/sizing-matrix-aggregate.ts b/packages/quality/testing/playwright/scripts/sizing-matrix-aggregate.ts similarity index 98% rename from packages/testing/playwright/scripts/sizing-matrix-aggregate.ts rename to packages/quality/testing/playwright/scripts/sizing-matrix-aggregate.ts index 48de9487742..deafe7c8510 100644 --- a/packages/testing/playwright/scripts/sizing-matrix-aggregate.ts +++ b/packages/quality/testing/playwright/scripts/sizing-matrix-aggregate.ts @@ -1,7 +1,7 @@ /** * Aggregates N `run-report.json` files into a `sizing-matrix.json`. * - * npx tsx packages/testing/playwright/scripts/sizing-matrix-aggregate.ts \ + * npx tsx packages/quality/testing/playwright/scripts/sizing-matrix-aggregate.ts \ * --input [--out ] [--mapping ] * * CURRENTS_API_KEY=… ... --currents-run @@ -28,7 +28,7 @@ const RUN_REPORT_ATTACHMENT = 'run-report.json'; // Repo root anchored to this file's location, so version/sha auto-detection // works regardless of the cwd the script is invoked from. -const REPO_ROOT = resolve(__dirname, '../../../..'); +const REPO_ROOT = resolve(__dirname, '../../../../..'); import type { RunReport } from '../utils/benchmark/run-report'; import { diff --git a/packages/testing/playwright/scripts/sizing-matrix-topologies.test.ts b/packages/quality/testing/playwright/scripts/sizing-matrix-topologies.test.ts similarity index 98% rename from packages/testing/playwright/scripts/sizing-matrix-topologies.test.ts rename to packages/quality/testing/playwright/scripts/sizing-matrix-topologies.test.ts index 87614c700a1..5f005120ab4 100644 --- a/packages/testing/playwright/scripts/sizing-matrix-topologies.test.ts +++ b/packages/quality/testing/playwright/scripts/sizing-matrix-topologies.test.ts @@ -68,7 +68,7 @@ describe('sizing-matrix concurrency schema (DEVP-516)', () => { // default. If the CLI default changes, every published matrix cell silently // mislabels concurrency — so fail CI here instead. it('keeps QUEUE_WORKER_CONCURRENCY in sync with the worker CLI default', () => { - const workerCmd = resolve(__dirname, '../../../cli/src/commands/worker.ts'); + const workerCmd = resolve(__dirname, '../../../../cli/src/commands/worker.ts'); const source = readFileSync(workerCmd, 'utf8'); const match = source.match(/concurrency:\s*z\.number\(\)\.int\(\)\.default\((\d+)\)/); expect( diff --git a/packages/testing/playwright/scripts/sizing-matrix-topologies.ts b/packages/quality/testing/playwright/scripts/sizing-matrix-topologies.ts similarity index 100% rename from packages/testing/playwright/scripts/sizing-matrix-topologies.ts rename to packages/quality/testing/playwright/scripts/sizing-matrix-topologies.ts diff --git a/packages/testing/playwright/scripts/verify-lint-config.mjs b/packages/quality/testing/playwright/scripts/verify-lint-config.mjs similarity index 100% rename from packages/testing/playwright/scripts/verify-lint-config.mjs rename to packages/quality/testing/playwright/scripts/verify-lint-config.mjs diff --git a/packages/testing/playwright/services/agent-api-helper.ts b/packages/quality/testing/playwright/services/agent-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/agent-api-helper.ts rename to packages/quality/testing/playwright/services/agent-api-helper.ts diff --git a/packages/testing/playwright/services/api-helper.ts b/packages/quality/testing/playwright/services/api-helper.ts similarity index 100% rename from packages/testing/playwright/services/api-helper.ts rename to packages/quality/testing/playwright/services/api-helper.ts diff --git a/packages/testing/playwright/services/credential-api-helper.ts b/packages/quality/testing/playwright/services/credential-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/credential-api-helper.ts rename to packages/quality/testing/playwright/services/credential-api-helper.ts diff --git a/packages/testing/playwright/services/dynamic-credential-api-helper.ts b/packages/quality/testing/playwright/services/dynamic-credential-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/dynamic-credential-api-helper.ts rename to packages/quality/testing/playwright/services/dynamic-credential-api-helper.ts diff --git a/packages/testing/playwright/services/external-secrets-api-helper.ts b/packages/quality/testing/playwright/services/external-secrets-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/external-secrets-api-helper.ts rename to packages/quality/testing/playwright/services/external-secrets-api-helper.ts diff --git a/packages/testing/playwright/services/instance-ai-api-helper.ts b/packages/quality/testing/playwright/services/instance-ai-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/instance-ai-api-helper.ts rename to packages/quality/testing/playwright/services/instance-ai-api-helper.ts diff --git a/packages/testing/playwright/services/mcp-api-helper.ts b/packages/quality/testing/playwright/services/mcp-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/mcp-api-helper.ts rename to packages/quality/testing/playwright/services/mcp-api-helper.ts diff --git a/packages/testing/playwright/services/mcp-oauth-api-helper.ts b/packages/quality/testing/playwright/services/mcp-oauth-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/mcp-oauth-api-helper.ts rename to packages/quality/testing/playwright/services/mcp-oauth-api-helper.ts diff --git a/packages/testing/playwright/services/metrics-api-helper.ts b/packages/quality/testing/playwright/services/metrics-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/metrics-api-helper.ts rename to packages/quality/testing/playwright/services/metrics-api-helper.ts diff --git a/packages/testing/playwright/services/node-parameter-api-helper.ts b/packages/quality/testing/playwright/services/node-parameter-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/node-parameter-api-helper.ts rename to packages/quality/testing/playwright/services/node-parameter-api-helper.ts diff --git a/packages/testing/playwright/services/project-api-helper.ts b/packages/quality/testing/playwright/services/project-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/project-api-helper.ts rename to packages/quality/testing/playwright/services/project-api-helper.ts diff --git a/packages/testing/playwright/services/public-api-helper.ts b/packages/quality/testing/playwright/services/public-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/public-api-helper.ts rename to packages/quality/testing/playwright/services/public-api-helper.ts diff --git a/packages/testing/playwright/services/role-api-helper.ts b/packages/quality/testing/playwright/services/role-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/role-api-helper.ts rename to packages/quality/testing/playwright/services/role-api-helper.ts diff --git a/packages/testing/playwright/services/security-settings-api-helper.ts b/packages/quality/testing/playwright/services/security-settings-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/security-settings-api-helper.ts rename to packages/quality/testing/playwright/services/security-settings-api-helper.ts diff --git a/packages/testing/playwright/services/source-control-api-helper.ts b/packages/quality/testing/playwright/services/source-control-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/source-control-api-helper.ts rename to packages/quality/testing/playwright/services/source-control-api-helper.ts diff --git a/packages/testing/playwright/services/tag-api-helper.ts b/packages/quality/testing/playwright/services/tag-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/tag-api-helper.ts rename to packages/quality/testing/playwright/services/tag-api-helper.ts diff --git a/packages/testing/playwright/services/token-exchange-api-helper.ts b/packages/quality/testing/playwright/services/token-exchange-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/token-exchange-api-helper.ts rename to packages/quality/testing/playwright/services/token-exchange-api-helper.ts diff --git a/packages/testing/playwright/services/type-policy-api-helper.ts b/packages/quality/testing/playwright/services/type-policy-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/type-policy-api-helper.ts rename to packages/quality/testing/playwright/services/type-policy-api-helper.ts diff --git a/packages/testing/playwright/services/user-api-helper.ts b/packages/quality/testing/playwright/services/user-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/user-api-helper.ts rename to packages/quality/testing/playwright/services/user-api-helper.ts diff --git a/packages/testing/playwright/services/variables-api-helper.ts b/packages/quality/testing/playwright/services/variables-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/variables-api-helper.ts rename to packages/quality/testing/playwright/services/variables-api-helper.ts diff --git a/packages/testing/playwright/services/webhook-api-helper.ts b/packages/quality/testing/playwright/services/webhook-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/webhook-api-helper.ts rename to packages/quality/testing/playwright/services/webhook-api-helper.ts diff --git a/packages/testing/playwright/services/workflow-api-helper.test.ts b/packages/quality/testing/playwright/services/workflow-api-helper.test.ts similarity index 100% rename from packages/testing/playwright/services/workflow-api-helper.test.ts rename to packages/quality/testing/playwright/services/workflow-api-helper.test.ts diff --git a/packages/testing/playwright/services/workflow-api-helper.ts b/packages/quality/testing/playwright/services/workflow-api-helper.ts similarity index 100% rename from packages/testing/playwright/services/workflow-api-helper.ts rename to packages/quality/testing/playwright/services/workflow-api-helper.ts diff --git a/packages/testing/playwright/tests/cli-workflows/README.md b/packages/quality/testing/playwright/tests/cli-workflows/README.md similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/README.md rename to packages/quality/testing/playwright/tests/cli-workflows/README.md diff --git a/packages/testing/playwright/tests/cli-workflows/credentials.json b/packages/quality/testing/playwright/tests/cli-workflows/credentials.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/credentials.json rename to packages/quality/testing/playwright/tests/cli-workflows/credentials.json diff --git a/packages/testing/playwright/tests/cli-workflows/setup-workflow-tests.ts b/packages/quality/testing/playwright/tests/cli-workflows/setup-workflow-tests.ts similarity index 99% rename from packages/testing/playwright/tests/cli-workflows/setup-workflow-tests.ts rename to packages/quality/testing/playwright/tests/cli-workflows/setup-workflow-tests.ts index b247d416fb6..ff5c1926b0f 100644 --- a/packages/testing/playwright/tests/cli-workflows/setup-workflow-tests.ts +++ b/packages/quality/testing/playwright/tests/cli-workflows/setup-workflow-tests.ts @@ -11,7 +11,7 @@ const execFileAsync = promisify(execFile); const CREDENTIALS_FILE_NAME = 'credentials.json'; const WORKFLOWS_DIR_NAME = 'workflows'; -const ASSETS_SOURCE_PATH = path.join(__dirname, '../../../../../assets'); +const ASSETS_SOURCE_PATH = path.join(__dirname, '../../../../../../assets'); const PDF_SOURCE_DIR = path.join(__dirname, 'testData', 'pdfs'); const BASE_TMP_DIR = '/tmp'; diff --git a/packages/testing/playwright/tests/cli-workflows/testData/pdfs/04-valid.pdf b/packages/quality/testing/playwright/tests/cli-workflows/testData/pdfs/04-valid.pdf similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/testData/pdfs/04-valid.pdf rename to packages/quality/testing/playwright/tests/cli-workflows/testData/pdfs/04-valid.pdf diff --git a/packages/testing/playwright/tests/cli-workflows/testData/pdfs/05-versions-space.pdf b/packages/quality/testing/playwright/tests/cli-workflows/testData/pdfs/05-versions-space.pdf similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/testData/pdfs/05-versions-space.pdf rename to packages/quality/testing/playwright/tests/cli-workflows/testData/pdfs/05-versions-space.pdf diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-101-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-101-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-101-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-101-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-103-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-103-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-103-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-103-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-105-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-105-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-105-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-105-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-108-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-108-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-108-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-108-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-109-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-109-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-109-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-109-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-11-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-11-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-11-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-11-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-110-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-110-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-110-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-110-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-111-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-111-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-111-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-111-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-114-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-114-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-114-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-114-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-132-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-132-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-132-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-132-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-133-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-133-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-133-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-133-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-139-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-139-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-139-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-139-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-140-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-140-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-140-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-140-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-144-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-144-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-144-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-144-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-147-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-147-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-147-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-147-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-148-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-148-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-148-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-148-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-15-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-15-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-15-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-15-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-150-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-150-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-150-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-150-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-152-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-152-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-152-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-152-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-153-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-153-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-153-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-153-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-154-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-154-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-154-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-154-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-155-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-155-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-155-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-155-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-156-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-156-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-156-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-156-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-16-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-16-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-16-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-16-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-161-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-161-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-161-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-161-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-162-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-162-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-162-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-162-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-164-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-164-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-164-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-164-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-166-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-166-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-166-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-166-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-17-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-17-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-17-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-17-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-172-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-172-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-172-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-172-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-174-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-174-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-174-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-174-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-182-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-182-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-182-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-182-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-184-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-184-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-184-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-184-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-185-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-185-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-185-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-185-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-186-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-186-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-186-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-186-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-19-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-19-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-19-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-19-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-202-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-202-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-202-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-202-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-203-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-203-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-203-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-203-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-205-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-205-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-205-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-205-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-209-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-209-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-209-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-209-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-212-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-212-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-212-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-212-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-216-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-216-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-216-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-216-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-229-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-229-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-229-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-229-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-230-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-230-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-230-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-230-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-231-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-231-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-231-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-231-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-234-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-234-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-234-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-234-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-235-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-235-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-235-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-235-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-236-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-236-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-236-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-236-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-237-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-237-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-237-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-237-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-238-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-238-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-238-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-238-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-239-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-239-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-239-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-239-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-240-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-240-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-240-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-240-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-241-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-241-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-241-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-241-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-242-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-242-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-242-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-242-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-243-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-243-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-243-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-243-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-244-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-244-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-244-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-244-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-245-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-245-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-245-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-245-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-246-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-246-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-246-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-246-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-247-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-247-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-247-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-247-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-248-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-248-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-248-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-248-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-249-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-249-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-249-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-249-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-250-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-250-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-250-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-250-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-251-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-251-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-251-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-251-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-253-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-253-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-253-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-253-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-254-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-254-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-254-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-254-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-255-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-255-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-255-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-255-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-256-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-256-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-256-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-256-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-257-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-257-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-257-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-257-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-258-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-258-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-258-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-258-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-259-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-259-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-259-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-259-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-260-schema-cli-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-260-schema-cli-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-260-schema-cli-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-260-schema-cli-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-261-schema-cli-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-261-schema-cli-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-261-schema-cli-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-261-schema-cli-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-262-schema-cli-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-262-schema-cli-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-262-schema-cli-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-262-schema-cli-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-263-schema-cli-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-263-schema-cli-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-263-schema-cli-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-263-schema-cli-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-264-schema-cli-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-264-schema-cli-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-264-schema-cli-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-264-schema-cli-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-265-schema-cli-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-265-schema-cli-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-265-schema-cli-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-265-schema-cli-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-266-schema-cli-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-266-schema-cli-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-266-schema-cli-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-266-schema-cli-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-267-schema-cli-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-267-schema-cli-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-267-schema-cli-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-267-schema-cli-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-268-schema-cli-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-268-schema-cli-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-268-schema-cli-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-268-schema-cli-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-32-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-32-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-32-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-32-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-34-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-34-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-34-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-34-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-35-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-35-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-35-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-35-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-36-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-36-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-36-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-36-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-37-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-37-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-37-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-37-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-44-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-44-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-44-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-44-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-48-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-48-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-48-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-48-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-49-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-49-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-49-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-49-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-5-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-5-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-5-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-5-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-50-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-50-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-50-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-50-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-52-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-52-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-52-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-52-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-53-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-53-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-53-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-53-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-55-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-55-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-55-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-55-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-58-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-58-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-58-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-58-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-6-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-6-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-6-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-6-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-60-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-60-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-60-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-60-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-61-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-61-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-61-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-61-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-62-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-62-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-62-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-62-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-63-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-63-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-63-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-63-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-67-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-67-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-67-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-67-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-70-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-70-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-70-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-70-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-71-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-71-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-71-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-71-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-72-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-72-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-72-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-72-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-81-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-81-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-81-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-81-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-83-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-83-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-83-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-83-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-84-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-84-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-84-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-84-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-90-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-90-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-90-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-90-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-91-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-91-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-91-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-91-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-93-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-93-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-93-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-93-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-95-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-95-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-95-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-95-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-96-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-96-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-96-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-96-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-97-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-97-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-97-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-97-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-98-schema-mode-workflows.snap b/packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-98-schema-mode-workflows.snap similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-98-schema-mode-workflows.snap rename to packages/quality/testing/playwright/tests/cli-workflows/workflow-tests.spec.ts-snapshots/workflow-98-schema-mode-workflows.snap diff --git a/packages/testing/playwright/tests/cli-workflows/workflowConfig.json b/packages/quality/testing/playwright/tests/cli-workflows/workflowConfig.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflowConfig.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflowConfig.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/1.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/1.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/1.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/1.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/10.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/10.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/10.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/10.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/101.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/101.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/101.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/101.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/102.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/102.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/102.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/102.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/103.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/103.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/103.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/103.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/104.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/104.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/104.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/104.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/105.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/105.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/105.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/105.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/106.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/106.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/106.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/106.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/108.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/108.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/108.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/108.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/109.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/109.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/109.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/109.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/11.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/11.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/11.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/11.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/110.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/110.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/110.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/110.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/111.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/111.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/111.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/111.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/112.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/112.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/112.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/112.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/113.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/113.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/113.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/113.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/114.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/114.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/114.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/114.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/115.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/115.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/115.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/115.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/116.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/116.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/116.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/116.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/117.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/117.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/117.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/117.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/118.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/118.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/118.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/118.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/119.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/119.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/119.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/119.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/120.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/120.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/120.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/120.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/121.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/121.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/121.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/121.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/122.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/122.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/122.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/122.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/123.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/123.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/123.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/123.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/124.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/124.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/124.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/124.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/125.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/125.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/125.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/125.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/126.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/126.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/126.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/126.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/127.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/127.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/127.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/127.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/128.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/128.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/128.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/128.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/129.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/129.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/129.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/129.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/130.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/130.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/130.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/130.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/131.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/131.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/131.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/131.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/132.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/132.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/132.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/132.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/133.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/133.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/133.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/133.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/134.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/134.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/134.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/134.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/135.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/135.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/135.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/135.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/136.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/136.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/136.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/136.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/137.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/137.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/137.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/137.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/138.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/138.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/138.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/138.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/139.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/139.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/139.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/139.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/140.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/140.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/140.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/140.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/141.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/141.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/141.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/141.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/142.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/142.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/142.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/142.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/143.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/143.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/143.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/143.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/144.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/144.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/144.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/144.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/145.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/145.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/145.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/145.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/146.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/146.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/146.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/146.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/147.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/147.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/147.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/147.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/148.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/148.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/148.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/148.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/149.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/149.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/149.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/149.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/15.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/15.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/15.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/15.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/150.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/150.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/150.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/150.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/151.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/151.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/151.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/151.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/152.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/152.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/152.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/152.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/153.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/153.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/153.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/153.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/154.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/154.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/154.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/154.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/155.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/155.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/155.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/155.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/156.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/156.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/156.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/156.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/157.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/157.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/157.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/157.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/158.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/158.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/158.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/158.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/159.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/159.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/159.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/159.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/16.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/16.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/16.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/16.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/160.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/160.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/160.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/160.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/161.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/161.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/161.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/161.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/162.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/162.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/162.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/162.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/163.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/163.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/163.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/163.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/164.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/164.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/164.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/164.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/165.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/165.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/165.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/165.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/166.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/166.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/166.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/166.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/167.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/167.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/167.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/167.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/168.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/168.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/168.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/168.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/169.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/169.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/169.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/169.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/17.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/17.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/17.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/17.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/170.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/170.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/170.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/170.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/171.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/171.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/171.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/171.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/172.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/172.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/172.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/172.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/173.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/173.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/173.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/173.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/174.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/174.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/174.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/174.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/176.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/176.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/176.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/176.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/177.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/177.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/177.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/177.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/179.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/179.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/179.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/179.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/180.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/180.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/180.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/180.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/182.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/182.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/182.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/182.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/183.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/183.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/183.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/183.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/184.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/184.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/184.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/184.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/185.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/185.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/185.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/185.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/186.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/186.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/186.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/186.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/187.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/187.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/187.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/187.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/188.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/188.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/188.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/188.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/189.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/189.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/189.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/189.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/19.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/19.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/19.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/19.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/190.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/190.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/190.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/190.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/191.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/191.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/191.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/191.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/192.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/192.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/192.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/192.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/193.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/193.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/193.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/193.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/194.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/194.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/194.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/194.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/196.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/196.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/196.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/196.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/197.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/197.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/197.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/197.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/198.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/198.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/198.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/198.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/199.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/199.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/199.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/199.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/20.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/20.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/20.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/20.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/200.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/200.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/200.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/200.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/201.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/201.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/201.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/201.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/202.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/202.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/202.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/202.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/203.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/203.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/203.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/203.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/204.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/204.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/204.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/204.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/205.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/205.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/205.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/205.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/206.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/206.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/206.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/206.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/207.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/207.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/207.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/207.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/208.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/208.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/208.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/208.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/209.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/209.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/209.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/209.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/21.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/21.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/21.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/21.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/212.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/212.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/212.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/212.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/214.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/214.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/214.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/214.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/215.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/215.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/215.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/215.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/216.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/216.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/216.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/216.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/217.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/217.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/217.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/217.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/218.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/218.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/218.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/218.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/219.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/219.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/219.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/219.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/22.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/22.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/22.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/22.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/220.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/220.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/220.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/220.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/221.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/221.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/221.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/221.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/222.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/222.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/222.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/222.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/223.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/223.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/223.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/223.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/224.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/224.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/224.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/224.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/225.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/225.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/225.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/225.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/226.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/226.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/226.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/226.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/227.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/227.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/227.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/227.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/229.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/229.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/229.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/229.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/230.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/230.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/230.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/230.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/231.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/231.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/231.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/231.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/233.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/233.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/233.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/233.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/234.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/234.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/234.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/234.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/235.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/235.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/235.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/235.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/236.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/236.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/236.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/236.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/237.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/237.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/237.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/237.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/238.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/238.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/238.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/238.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/239.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/239.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/239.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/239.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/240.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/240.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/240.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/240.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/241.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/241.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/241.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/241.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/242.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/242.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/242.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/242.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/243.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/243.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/243.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/243.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/244.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/244.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/244.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/244.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/245.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/245.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/245.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/245.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/246.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/246.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/246.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/246.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/247.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/247.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/247.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/247.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/248.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/248.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/248.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/248.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/249.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/249.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/249.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/249.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/250.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/250.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/250.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/250.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/251.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/251.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/251.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/251.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/252.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/252.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/252.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/252.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/253.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/253.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/253.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/253.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/254.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/254.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/254.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/254.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/255.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/255.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/255.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/255.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/256.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/256.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/256.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/256.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/257.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/257.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/257.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/257.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/258.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/258.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/258.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/258.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/259.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/259.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/259.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/259.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/26.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/26.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/26.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/26.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/260.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/260.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/260.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/260.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/261.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/261.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/261.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/261.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/262.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/262.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/262.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/262.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/263.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/263.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/263.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/263.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/264.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/264.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/264.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/264.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/265.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/265.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/265.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/265.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/266.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/266.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/266.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/266.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/267.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/267.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/267.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/267.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/268.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/268.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/268.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/268.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/27.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/27.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/27.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/27.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/28.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/28.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/28.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/28.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/29.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/29.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/29.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/29.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/30.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/30.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/30.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/30.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/31.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/31.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/31.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/31.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/32.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/32.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/32.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/32.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/33.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/33.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/33.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/33.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/34.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/34.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/34.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/34.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/35.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/35.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/35.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/35.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/36.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/36.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/36.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/36.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/37.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/37.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/37.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/37.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/38.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/38.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/38.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/38.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/39.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/39.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/39.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/39.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/4.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/4.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/4.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/4.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/40.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/40.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/40.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/40.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/41.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/41.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/41.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/41.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/42.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/42.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/42.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/42.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/43.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/43.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/43.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/43.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/44.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/44.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/44.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/44.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/45.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/45.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/45.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/45.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/46.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/46.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/46.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/46.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/47.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/47.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/47.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/47.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/48.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/48.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/48.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/48.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/49.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/49.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/49.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/49.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/5.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/5.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/5.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/5.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/50.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/50.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/50.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/50.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/51.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/51.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/51.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/51.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/52.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/52.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/52.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/52.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/53.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/53.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/53.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/53.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/54.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/54.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/54.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/54.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/55.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/55.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/55.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/55.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/56.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/56.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/56.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/56.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/57.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/57.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/57.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/57.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/58.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/58.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/58.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/58.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/59.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/59.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/59.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/59.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/6.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/6.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/6.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/6.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/60.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/60.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/60.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/60.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/61.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/61.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/61.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/61.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/62.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/62.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/62.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/62.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/63.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/63.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/63.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/63.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/64.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/64.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/64.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/64.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/66.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/66.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/66.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/66.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/67.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/67.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/67.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/67.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/68.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/68.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/68.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/68.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/69.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/69.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/69.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/69.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/70.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/70.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/70.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/70.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/71.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/71.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/71.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/71.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/72.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/72.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/72.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/72.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/73.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/73.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/73.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/73.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/74.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/74.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/74.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/74.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/75.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/75.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/75.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/75.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/76.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/76.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/76.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/76.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/77.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/77.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/77.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/77.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/78.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/78.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/78.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/78.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/79.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/79.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/79.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/79.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/80.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/80.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/80.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/80.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/81.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/81.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/81.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/81.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/82.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/82.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/82.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/82.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/83.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/83.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/83.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/83.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/84.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/84.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/84.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/84.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/85.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/85.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/85.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/85.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/86.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/86.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/86.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/86.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/87.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/87.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/87.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/87.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/88.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/88.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/88.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/88.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/89.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/89.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/89.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/89.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/90.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/90.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/90.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/90.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/91.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/91.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/91.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/91.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/92.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/92.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/92.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/92.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/93.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/93.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/93.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/93.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/94.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/94.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/94.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/94.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/95.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/95.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/95.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/95.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/96.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/96.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/96.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/96.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/97.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/97.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/97.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/97.json diff --git a/packages/testing/playwright/tests/cli-workflows/workflows/98.json b/packages/quality/testing/playwright/tests/cli-workflows/workflows/98.json similarity index 100% rename from packages/testing/playwright/tests/cli-workflows/workflows/98.json rename to packages/quality/testing/playwright/tests/cli-workflows/workflows/98.json diff --git a/packages/testing/playwright/tests/dev-server-smoke/dev-server-boots.spec.ts b/packages/quality/testing/playwright/tests/dev-server-smoke/dev-server-boots.spec.ts similarity index 100% rename from packages/testing/playwright/tests/dev-server-smoke/dev-server-boots.spec.ts rename to packages/quality/testing/playwright/tests/dev-server-smoke/dev-server-boots.spec.ts diff --git a/packages/testing/playwright/tests/dev-server-smoke/user-folder.spec.ts b/packages/quality/testing/playwright/tests/dev-server-smoke/user-folder.spec.ts similarity index 100% rename from packages/testing/playwright/tests/dev-server-smoke/user-folder.spec.ts rename to packages/quality/testing/playwright/tests/dev-server-smoke/user-folder.spec.ts diff --git a/packages/testing/playwright/tests/e2e/a11y/a11y-landmark-structure.spec.ts b/packages/quality/testing/playwright/tests/e2e/a11y/a11y-landmark-structure.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/a11y/a11y-landmark-structure.spec.ts rename to packages/quality/testing/playwright/tests/e2e/a11y/a11y-landmark-structure.spec.ts diff --git a/packages/testing/playwright/tests/e2e/agents/agent-builder-write-lock.spec.ts b/packages/quality/testing/playwright/tests/e2e/agents/agent-builder-write-lock.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/agents/agent-builder-write-lock.spec.ts rename to packages/quality/testing/playwright/tests/e2e/agents/agent-builder-write-lock.spec.ts diff --git a/packages/testing/playwright/tests/e2e/agents/agent-sessions.spec.ts b/packages/quality/testing/playwright/tests/e2e/agents/agent-sessions.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/agents/agent-sessions.spec.ts rename to packages/quality/testing/playwright/tests/e2e/agents/agent-sessions.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/ai-2505-pdf-embed.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/ai-2505-pdf-embed.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/ai-2505-pdf-embed.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/ai-2505-pdf-embed.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/assistant-basic.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/assistant-basic.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/assistant-basic.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/assistant-basic.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/assistant-code-help.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/assistant-code-help.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/assistant-code-help.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/assistant-code-help.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/assistant-credential-help.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/assistant-credential-help.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/assistant-credential-help.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/assistant-credential-help.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/assistant-support-chat.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/assistant-support-chat.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/assistant-support-chat.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/assistant-support-chat.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/builder-setup-wizard.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/builder-setup-wizard.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/builder-setup-wizard.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/builder-setup-wizard.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/chat-session.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/chat-session.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/chat-session.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/chat-session.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/eval-collections-compare.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/eval-collections-compare.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/eval-collections-compare.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/eval-collections-compare.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/evaluations.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/evaluations.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/evaluations.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/evaluations.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/hitl-for-tools.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/hitl-for-tools.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/hitl-for-tools.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/hitl-for-tools.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/langchain-agents.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/langchain-agents.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/langchain-agents.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/langchain-agents.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/langchain-chains.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/langchain-chains.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/langchain-chains.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/langchain-chains.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/langchain-memory.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/langchain-memory.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/langchain-memory.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/langchain-memory.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/langchain-tools.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/langchain-tools.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/langchain-tools.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/langchain-tools.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/langchain-vectorstores.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/langchain-vectorstores.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/langchain-vectorstores.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/langchain-vectorstores.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/rag-callout.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/rag-callout.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/rag-callout.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/rag-callout.spec.ts diff --git a/packages/testing/playwright/tests/e2e/ai/workflow-builder.spec.ts b/packages/quality/testing/playwright/tests/e2e/ai/workflow-builder.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/ai/workflow-builder.spec.ts rename to packages/quality/testing/playwright/tests/e2e/ai/workflow-builder.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/binary-data-xss.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/binary-data-xss.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/binary-data-xss.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/binary-data-xss.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/discovery.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/discovery.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/discovery.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/discovery.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/form-endpoint-isolation.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/form-endpoint-isolation.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/form-endpoint-isolation.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/form-endpoint-isolation.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/manual-run-outcome.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/manual-run-outcome.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/manual-run-outcome.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/manual-run-outcome.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/wait-form-resume.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/wait-form-resume.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/wait-form-resume.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/wait-form-resume.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/wait-webhook-deadline.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/wait-webhook-deadline.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/wait-webhook-deadline.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/wait-webhook-deadline.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/waiting-endpoint-security.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/waiting-endpoint-security.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/waiting-endpoint-security.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/waiting-endpoint-security.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/webhook-external.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/webhook-external.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/webhook-external.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/webhook-external.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/webhook-isolate-skip.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/webhook-isolate-skip.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/webhook-isolate-skip.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/webhook-isolate-skip.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/webhook-isolation.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/webhook-isolation.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/webhook-isolation.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/webhook-isolation.spec.ts diff --git a/packages/testing/playwright/tests/e2e/api/workflow-publication-service.spec.ts b/packages/quality/testing/playwright/tests/e2e/api/workflow-publication-service.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/api/workflow-publication-service.spec.ts rename to packages/quality/testing/playwright/tests/e2e/api/workflow-publication-service.spec.ts diff --git a/packages/testing/playwright/tests/e2e/app-config/demo-reimport.spec.ts b/packages/quality/testing/playwright/tests/e2e/app-config/demo-reimport.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/app-config/demo-reimport.spec.ts rename to packages/quality/testing/playwright/tests/e2e/app-config/demo-reimport.spec.ts diff --git a/packages/testing/playwright/tests/e2e/app-config/demo.spec.ts b/packages/quality/testing/playwright/tests/e2e/app-config/demo.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/app-config/demo.spec.ts rename to packages/quality/testing/playwright/tests/e2e/app-config/demo.spec.ts diff --git a/packages/testing/playwright/tests/e2e/app-config/env-feature-flags.spec.ts b/packages/quality/testing/playwright/tests/e2e/app-config/env-feature-flags.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/app-config/env-feature-flags.spec.ts rename to packages/quality/testing/playwright/tests/e2e/app-config/env-feature-flags.spec.ts diff --git a/packages/testing/playwright/tests/e2e/app-config/nps-survey.spec.ts b/packages/quality/testing/playwright/tests/e2e/app-config/nps-survey.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/app-config/nps-survey.spec.ts rename to packages/quality/testing/playwright/tests/e2e/app-config/nps-survey.spec.ts diff --git a/packages/testing/playwright/tests/e2e/app-config/security-notifications.spec.ts b/packages/quality/testing/playwright/tests/e2e/app-config/security-notifications.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/app-config/security-notifications.spec.ts rename to packages/quality/testing/playwright/tests/e2e/app-config/security-notifications.spec.ts diff --git a/packages/testing/playwright/tests/e2e/app-config/versions.spec.ts b/packages/quality/testing/playwright/tests/e2e/app-config/versions.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/app-config/versions.spec.ts rename to packages/quality/testing/playwright/tests/e2e/app-config/versions.spec.ts diff --git a/packages/testing/playwright/tests/e2e/auth/admin-smoke.spec.ts b/packages/quality/testing/playwright/tests/e2e/auth/admin-smoke.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/auth/admin-smoke.spec.ts rename to packages/quality/testing/playwright/tests/e2e/auth/admin-smoke.spec.ts diff --git a/packages/testing/playwright/tests/e2e/auth/authenticated.spec.ts b/packages/quality/testing/playwright/tests/e2e/auth/authenticated.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/auth/authenticated.spec.ts rename to packages/quality/testing/playwright/tests/e2e/auth/authenticated.spec.ts diff --git a/packages/testing/playwright/tests/e2e/auth/oidc.spec.ts b/packages/quality/testing/playwright/tests/e2e/auth/oidc.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/auth/oidc.spec.ts rename to packages/quality/testing/playwright/tests/e2e/auth/oidc.spec.ts diff --git a/packages/testing/playwright/tests/e2e/auth/password-reset.spec.ts b/packages/quality/testing/playwright/tests/e2e/auth/password-reset.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/auth/password-reset.spec.ts rename to packages/quality/testing/playwright/tests/e2e/auth/password-reset.spec.ts diff --git a/packages/testing/playwright/tests/e2e/auth/signin.spec.ts b/packages/quality/testing/playwright/tests/e2e/auth/signin.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/auth/signin.spec.ts rename to packages/quality/testing/playwright/tests/e2e/auth/signin.spec.ts diff --git a/packages/testing/playwright/tests/e2e/auth/token-exchange.spec.ts b/packages/quality/testing/playwright/tests/e2e/auth/token-exchange.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/auth/token-exchange.spec.ts rename to packages/quality/testing/playwright/tests/e2e/auth/token-exchange.spec.ts diff --git a/packages/testing/playwright/tests/e2e/building-blocks/canvas-actions.spec.ts b/packages/quality/testing/playwright/tests/e2e/building-blocks/canvas-actions.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/building-blocks/canvas-actions.spec.ts rename to packages/quality/testing/playwright/tests/e2e/building-blocks/canvas-actions.spec.ts diff --git a/packages/testing/playwright/tests/e2e/building-blocks/credential-mismatch.spec.ts b/packages/quality/testing/playwright/tests/e2e/building-blocks/credential-mismatch.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/building-blocks/credential-mismatch.spec.ts rename to packages/quality/testing/playwright/tests/e2e/building-blocks/credential-mismatch.spec.ts diff --git a/packages/testing/playwright/tests/e2e/building-blocks/credentials.spec.ts b/packages/quality/testing/playwright/tests/e2e/building-blocks/credentials.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/building-blocks/credentials.spec.ts rename to packages/quality/testing/playwright/tests/e2e/building-blocks/credentials.spec.ts diff --git a/packages/testing/playwright/tests/e2e/building-blocks/node-details-configuration.spec.ts b/packages/quality/testing/playwright/tests/e2e/building-blocks/node-details-configuration.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/building-blocks/node-details-configuration.spec.ts rename to packages/quality/testing/playwright/tests/e2e/building-blocks/node-details-configuration.spec.ts diff --git a/packages/testing/playwright/tests/e2e/building-blocks/user-service.spec.ts b/packages/quality/testing/playwright/tests/e2e/building-blocks/user-service.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/building-blocks/user-service.spec.ts rename to packages/quality/testing/playwright/tests/e2e/building-blocks/user-service.spec.ts diff --git a/packages/testing/playwright/tests/e2e/building-blocks/workflow-entry-points.spec.ts b/packages/quality/testing/playwright/tests/e2e/building-blocks/workflow-entry-points.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/building-blocks/workflow-entry-points.spec.ts rename to packages/quality/testing/playwright/tests/e2e/building-blocks/workflow-entry-points.spec.ts diff --git a/packages/testing/playwright/tests/e2e/capabilities/proxy-server.spec.ts b/packages/quality/testing/playwright/tests/e2e/capabilities/proxy-server.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/capabilities/proxy-server.spec.ts rename to packages/quality/testing/playwright/tests/e2e/capabilities/proxy-server.spec.ts diff --git a/packages/testing/playwright/tests/e2e/capabilities/task-runner.spec.ts b/packages/quality/testing/playwright/tests/e2e/capabilities/task-runner.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/capabilities/task-runner.spec.ts rename to packages/quality/testing/playwright/tests/e2e/capabilities/task-runner.spec.ts diff --git a/packages/testing/playwright/tests/e2e/chat-hub/chat-hub-attachment.spec.ts b/packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-attachment.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/chat-hub/chat-hub-attachment.spec.ts rename to packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-attachment.spec.ts diff --git a/packages/testing/playwright/tests/e2e/chat-hub/chat-hub-basic.spec.ts b/packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-basic.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/chat-hub/chat-hub-basic.spec.ts rename to packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-basic.spec.ts diff --git a/packages/testing/playwright/tests/e2e/chat-hub/chat-hub-chat-user.spec.ts b/packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-chat-user.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/chat-hub/chat-hub-chat-user.spec.ts rename to packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-chat-user.spec.ts diff --git a/packages/testing/playwright/tests/e2e/chat-hub/chat-hub-personal-agent.spec.ts b/packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-personal-agent.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/chat-hub/chat-hub-personal-agent.spec.ts rename to packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-personal-agent.spec.ts diff --git a/packages/testing/playwright/tests/e2e/chat-hub/chat-hub-settings.spec.ts b/packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-settings.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/chat-hub/chat-hub-settings.spec.ts rename to packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-settings.spec.ts diff --git a/packages/testing/playwright/tests/e2e/chat-hub/chat-hub-tools.spec.ts b/packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-tools.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/chat-hub/chat-hub-tools.spec.ts rename to packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-tools.spec.ts diff --git a/packages/testing/playwright/tests/e2e/chat-hub/chat-hub-workflow-agent.spec.ts b/packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-workflow-agent.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/chat-hub/chat-hub-workflow-agent.spec.ts rename to packages/quality/testing/playwright/tests/e2e/chat-hub/chat-hub-workflow-agent.spec.ts diff --git a/packages/testing/playwright/tests/e2e/chat-hub/fixtures.ts b/packages/quality/testing/playwright/tests/e2e/chat-hub/fixtures.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/chat-hub/fixtures.ts rename to packages/quality/testing/playwright/tests/e2e/chat-hub/fixtures.ts diff --git a/packages/testing/playwright/tests/e2e/cloud/cloud.spec.ts b/packages/quality/testing/playwright/tests/e2e/cloud/cloud.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/cloud/cloud.spec.ts rename to packages/quality/testing/playwright/tests/e2e/cloud/cloud.spec.ts diff --git a/packages/testing/playwright/tests/e2e/credentials/api-operations.spec.ts b/packages/quality/testing/playwright/tests/e2e/credentials/api-operations.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/credentials/api-operations.spec.ts rename to packages/quality/testing/playwright/tests/e2e/credentials/api-operations.spec.ts diff --git a/packages/testing/playwright/tests/e2e/credentials/crud.spec.ts b/packages/quality/testing/playwright/tests/e2e/credentials/crud.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/credentials/crud.spec.ts rename to packages/quality/testing/playwright/tests/e2e/credentials/crud.spec.ts diff --git a/packages/testing/playwright/tests/e2e/credentials/global.spec.ts b/packages/quality/testing/playwright/tests/e2e/credentials/global.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/credentials/global.spec.ts rename to packages/quality/testing/playwright/tests/e2e/credentials/global.spec.ts diff --git a/packages/testing/playwright/tests/e2e/credentials/oauth.spec.ts b/packages/quality/testing/playwright/tests/e2e/credentials/oauth.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/credentials/oauth.spec.ts rename to packages/quality/testing/playwright/tests/e2e/credentials/oauth.spec.ts diff --git a/packages/testing/playwright/tests/e2e/data-tables/details.spec.ts b/packages/quality/testing/playwright/tests/e2e/data-tables/details.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/data-tables/details.spec.ts rename to packages/quality/testing/playwright/tests/e2e/data-tables/details.spec.ts diff --git a/packages/testing/playwright/tests/e2e/data-tables/tables.spec.ts b/packages/quality/testing/playwright/tests/e2e/data-tables/tables.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/data-tables/tables.spec.ts rename to packages/quality/testing/playwright/tests/e2e/data-tables/tables.spec.ts diff --git a/packages/testing/playwright/tests/e2e/dynamic-credentials/execution-status.spec.ts b/packages/quality/testing/playwright/tests/e2e/dynamic-credentials/execution-status.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/dynamic-credentials/execution-status.spec.ts rename to packages/quality/testing/playwright/tests/e2e/dynamic-credentials/execution-status.spec.ts diff --git a/packages/testing/playwright/tests/e2e/dynamic-credentials/external-user-trigger.spec.ts b/packages/quality/testing/playwright/tests/e2e/dynamic-credentials/external-user-trigger.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/dynamic-credentials/external-user-trigger.spec.ts rename to packages/quality/testing/playwright/tests/e2e/dynamic-credentials/external-user-trigger.spec.ts diff --git a/packages/testing/playwright/tests/e2e/dynamic-credentials/form-trigger-end-user-credential-shell.spec.ts b/packages/quality/testing/playwright/tests/e2e/dynamic-credentials/form-trigger-end-user-credential-shell.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/dynamic-credentials/form-trigger-end-user-credential-shell.spec.ts rename to packages/quality/testing/playwright/tests/e2e/dynamic-credentials/form-trigger-end-user-credential-shell.spec.ts diff --git a/packages/testing/playwright/tests/e2e/dynamic-credentials/form-trigger-submit-gate-client.spec.ts b/packages/quality/testing/playwright/tests/e2e/dynamic-credentials/form-trigger-submit-gate-client.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/dynamic-credentials/form-trigger-submit-gate-client.spec.ts rename to packages/quality/testing/playwright/tests/e2e/dynamic-credentials/form-trigger-submit-gate-client.spec.ts diff --git a/packages/testing/playwright/tests/e2e/dynamic-credentials/mcp-trigger-credential-gate.spec.ts b/packages/quality/testing/playwright/tests/e2e/dynamic-credentials/mcp-trigger-credential-gate.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/dynamic-credentials/mcp-trigger-credential-gate.spec.ts rename to packages/quality/testing/playwright/tests/e2e/dynamic-credentials/mcp-trigger-credential-gate.spec.ts diff --git a/packages/testing/playwright/tests/e2e/dynamic-credentials/resolver-deletion.spec.ts b/packages/quality/testing/playwright/tests/e2e/dynamic-credentials/resolver-deletion.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/dynamic-credentials/resolver-deletion.spec.ts rename to packages/quality/testing/playwright/tests/e2e/dynamic-credentials/resolver-deletion.spec.ts diff --git a/packages/testing/playwright/tests/e2e/dynamic-credentials/webhook-trigger-private-credential.spec.ts b/packages/quality/testing/playwright/tests/e2e/dynamic-credentials/webhook-trigger-private-credential.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/dynamic-credentials/webhook-trigger-private-credential.spec.ts rename to packages/quality/testing/playwright/tests/e2e/dynamic-credentials/webhook-trigger-private-credential.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/README.md b/packages/quality/testing/playwright/tests/e2e/instance-ai/README.md similarity index 99% rename from packages/testing/playwright/tests/e2e/instance-ai/README.md rename to packages/quality/testing/playwright/tests/e2e/instance-ai/README.md index f06aa8b6914..4ac51904987 100644 --- a/packages/testing/playwright/tests/e2e/instance-ai/README.md +++ b/packages/quality/testing/playwright/tests/e2e/instance-ai/README.md @@ -56,7 +56,7 @@ against your local n8n build, without the docker proxy stack. Tests hit the real Anthropic API directly — no recording, no replay. ```bash -cd packages/testing/playwright +cd packages/quality/testing/playwright export ANTHROPIC_API_KEY=sk-ant-... pnpm test:local:instance-ai ``` diff --git a/packages/testing/playwright/tests/e2e/instance-ai/fixtures.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/fixtures.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/fixtures.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/fixtures.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-artifacts.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-artifacts.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-artifacts.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-artifacts.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-attachments.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-attachments.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-attachments.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-attachments.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-background-lifecycle.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-background-lifecycle.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-background-lifecycle.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-background-lifecycle.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-chat-basics.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-chat-basics.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-chat-basics.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-chat-basics.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-confirmations.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-confirmations.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-confirmations.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-confirmations.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-mentions.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-mentions.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-mentions.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-mentions.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-multimain.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-multimain.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-multimain.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-multimain.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-onboarding.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-onboarding.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-onboarding.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-onboarding.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-out-of-credits.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-out-of-credits.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-out-of-credits.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-out-of-credits.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-oversized-attachments.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-oversized-attachments.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-oversized-attachments.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-oversized-attachments.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-remediation-guard.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-remediation-guard.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-remediation-guard.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-remediation-guard.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-sidebar.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-sidebar.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-sidebar.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-sidebar.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-timeouts.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-timeouts.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-timeouts.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-timeouts.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-execution.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-execution.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-execution.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-execution.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-preview.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-preview.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-preview.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-preview.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-setup.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-setup.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-setup.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/instance-ai-workflow-setup.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/open-by-default.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/open-by-default.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/open-by-default.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/open-by-default.spec.ts diff --git a/packages/testing/playwright/tests/e2e/instance-ai/thread-launcher.spec.ts b/packages/quality/testing/playwright/tests/e2e/instance-ai/thread-launcher.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/instance-ai/thread-launcher.spec.ts rename to packages/quality/testing/playwright/tests/e2e/instance-ai/thread-launcher.spec.ts diff --git a/packages/testing/playwright/tests/e2e/journeys/admin-views-executions-list.spec.ts b/packages/quality/testing/playwright/tests/e2e/journeys/admin-views-executions-list.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/journeys/admin-views-executions-list.spec.ts rename to packages/quality/testing/playwright/tests/e2e/journeys/admin-views-executions-list.spec.ts diff --git a/packages/testing/playwright/tests/e2e/mcp-registry/mcp-registry.spec.ts b/packages/quality/testing/playwright/tests/e2e/mcp-registry/mcp-registry.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/mcp-registry/mcp-registry.spec.ts rename to packages/quality/testing/playwright/tests/e2e/mcp-registry/mcp-registry.spec.ts diff --git a/packages/testing/playwright/tests/e2e/mcp/mcp-copy-button-hover.spec.ts b/packages/quality/testing/playwright/tests/e2e/mcp/mcp-copy-button-hover.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/mcp/mcp-copy-button-hover.spec.ts rename to packages/quality/testing/playwright/tests/e2e/mcp/mcp-copy-button-hover.spec.ts diff --git a/packages/testing/playwright/tests/e2e/mcp/mcp-oauth.spec.ts b/packages/quality/testing/playwright/tests/e2e/mcp/mcp-oauth.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/mcp/mcp-oauth.spec.ts rename to packages/quality/testing/playwright/tests/e2e/mcp/mcp-oauth.spec.ts diff --git a/packages/testing/playwright/tests/e2e/mcp/mcp-service.spec.ts b/packages/quality/testing/playwright/tests/e2e/mcp/mcp-service.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/mcp/mcp-service.spec.ts rename to packages/quality/testing/playwright/tests/e2e/mcp/mcp-service.spec.ts diff --git a/packages/testing/playwright/tests/e2e/node-creator/actions.spec.ts b/packages/quality/testing/playwright/tests/e2e/node-creator/actions.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/node-creator/actions.spec.ts rename to packages/quality/testing/playwright/tests/e2e/node-creator/actions.spec.ts diff --git a/packages/testing/playwright/tests/e2e/node-creator/categories.spec.ts b/packages/quality/testing/playwright/tests/e2e/node-creator/categories.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/node-creator/categories.spec.ts rename to packages/quality/testing/playwright/tests/e2e/node-creator/categories.spec.ts diff --git a/packages/testing/playwright/tests/e2e/node-creator/navigation.spec.ts b/packages/quality/testing/playwright/tests/e2e/node-creator/navigation.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/node-creator/navigation.spec.ts rename to packages/quality/testing/playwright/tests/e2e/node-creator/navigation.spec.ts diff --git a/packages/testing/playwright/tests/e2e/node-creator/special-nodes.spec.ts b/packages/quality/testing/playwright/tests/e2e/node-creator/special-nodes.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/node-creator/special-nodes.spec.ts rename to packages/quality/testing/playwright/tests/e2e/node-creator/special-nodes.spec.ts diff --git a/packages/testing/playwright/tests/e2e/node-creator/vector-stores.spec.ts b/packages/quality/testing/playwright/tests/e2e/node-creator/vector-stores.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/node-creator/vector-stores.spec.ts rename to packages/quality/testing/playwright/tests/e2e/node-creator/vector-stores.spec.ts diff --git a/packages/testing/playwright/tests/e2e/node-creator/workflows.spec.ts b/packages/quality/testing/playwright/tests/e2e/node-creator/workflows.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/node-creator/workflows.spec.ts rename to packages/quality/testing/playwright/tests/e2e/node-creator/workflows.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/code-node-api.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/code-node-api.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/code-node-api.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/code-node-api.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/community-nodes.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/community-nodes.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/community-nodes.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/community-nodes.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/email-send-node.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/email-send-node.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/email-send-node.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/email-send-node.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/form-trigger-node.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/form-trigger-node.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/form-trigger-node.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/form-trigger-node.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/http-request-node.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/http-request-node.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/http-request-node.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/http-request-node.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/if-node.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/if-node.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/if-node.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/if-node.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/kafka-nodes.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/kafka-nodes.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/kafka-nodes.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/kafka-nodes.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/mcp-trigger.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/mcp-trigger.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/mcp-trigger.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/mcp-trigger.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/n8n-trigger.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/n8n-trigger.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/n8n-trigger.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/n8n-trigger.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/pdf-node.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/pdf-node.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/pdf-node.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/pdf-node.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/schedule-trigger-node.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/schedule-trigger-node.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/schedule-trigger-node.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/schedule-trigger-node.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/send-and-wait.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/send-and-wait.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/send-and-wait.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/send-and-wait.spec.ts diff --git a/packages/testing/playwright/tests/e2e/nodes/webhook.spec.ts b/packages/quality/testing/playwright/tests/e2e/nodes/webhook.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/nodes/webhook.spec.ts rename to packages/quality/testing/playwright/tests/e2e/nodes/webhook.spec.ts diff --git a/packages/testing/playwright/tests/e2e/projects/folders-advanced.spec.ts b/packages/quality/testing/playwright/tests/e2e/projects/folders-advanced.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/projects/folders-advanced.spec.ts rename to packages/quality/testing/playwright/tests/e2e/projects/folders-advanced.spec.ts diff --git a/packages/testing/playwright/tests/e2e/projects/folders-basic.spec.ts b/packages/quality/testing/playwright/tests/e2e/projects/folders-basic.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/projects/folders-basic.spec.ts rename to packages/quality/testing/playwright/tests/e2e/projects/folders-basic.spec.ts diff --git a/packages/testing/playwright/tests/e2e/projects/folders-operations.spec.ts b/packages/quality/testing/playwright/tests/e2e/projects/folders-operations.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/projects/folders-operations.spec.ts rename to packages/quality/testing/playwright/tests/e2e/projects/folders-operations.spec.ts diff --git a/packages/testing/playwright/tests/e2e/projects/project-settings.spec.ts b/packages/quality/testing/playwright/tests/e2e/projects/project-settings.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/projects/project-settings.spec.ts rename to packages/quality/testing/playwright/tests/e2e/projects/project-settings.spec.ts diff --git a/packages/testing/playwright/tests/e2e/projects/projects-move-resources.spec.ts b/packages/quality/testing/playwright/tests/e2e/projects/projects-move-resources.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/projects/projects-move-resources.spec.ts rename to packages/quality/testing/playwright/tests/e2e/projects/projects-move-resources.spec.ts diff --git a/packages/testing/playwright/tests/e2e/projects/projects.spec.ts b/packages/quality/testing/playwright/tests/e2e/projects/projects.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/projects/projects.spec.ts rename to packages/quality/testing/playwright/tests/e2e/projects/projects.spec.ts diff --git a/packages/testing/playwright/tests/e2e/push/sse-push-backend.spec.ts b/packages/quality/testing/playwright/tests/e2e/push/sse-push-backend.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/push/sse-push-backend.spec.ts rename to packages/quality/testing/playwright/tests/e2e/push/sse-push-backend.spec.ts diff --git a/packages/testing/playwright/tests/e2e/redaction-enforcement/redaction-enforcement.spec.ts b/packages/quality/testing/playwright/tests/e2e/redaction-enforcement/redaction-enforcement.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/redaction-enforcement/redaction-enforcement.spec.ts rename to packages/quality/testing/playwright/tests/e2e/redaction-enforcement/redaction-enforcement.spec.ts diff --git a/packages/testing/playwright/tests/e2e/redaction-enforcement/redaction-helpers.ts b/packages/quality/testing/playwright/tests/e2e/redaction-enforcement/redaction-helpers.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/redaction-enforcement/redaction-helpers.ts rename to packages/quality/testing/playwright/tests/e2e/redaction-enforcement/redaction-helpers.ts diff --git a/packages/testing/playwright/tests/e2e/regression/ADO-1338-ndv-missing-input-panel.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/ADO-1338-ndv-missing-input-panel.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/ADO-1338-ndv-missing-input-panel.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/ADO-1338-ndv-missing-input-panel.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/ADO-2230-ndv-reset-data-pagination.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/ADO-2230-ndv-reset-data-pagination.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/ADO-2230-ndv-reset-data-pagination.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/ADO-2230-ndv-reset-data-pagination.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/ADO-2372-prevent-clipping-params.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/ADO-2372-prevent-clipping-params.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/ADO-2372-prevent-clipping-params.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/ADO-2372-prevent-clipping-params.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/ADO-2929-can-load-old-switch-node-workflows.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/ADO-2929-can-load-old-switch-node-workflows.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/ADO-2929-can-load-old-switch-node-workflows.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/ADO-2929-can-load-old-switch-node-workflows.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/ADO-4462-template-setup-experiment.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/ADO-4462-template-setup-experiment.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/ADO-4462-template-setup-experiment.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/ADO-4462-template-setup-experiment.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/ADO-5630-execute-button-layout.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/ADO-5630-execute-button-layout.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/ADO-5630-execute-button-layout.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/ADO-5630-execute-button-layout.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/ADO-5808-stale-node-execution-data.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/ADO-5808-stale-node-execution-data.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/ADO-5808-stale-node-execution-data.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/ADO-5808-stale-node-execution-data.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/AI-1401-sub-nodes-input-panel.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/AI-1401-sub-nodes-input-panel.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/AI-1401-sub-nodes-input-panel.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/AI-1401-sub-nodes-input-panel.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/AI-2795-chat-panel-header-height.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/AI-2795-chat-panel-header-height.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/AI-2795-chat-panel-header-height.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/AI-2795-chat-panel-header-height.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/AI-716-correctly-set-up-agent-model-shows-error.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/AI-716-correctly-set-up-agent-model-shows-error.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/AI-716-correctly-set-up-agent-model-shows-error.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/AI-716-correctly-set-up-agent-model-shows-error.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/AI-812-partial-execs-broken-when-using-chat-trigger.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/AI-812-partial-execs-broken-when-using-chat-trigger.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/AI-812-partial-execs-broken-when-using-chat-trigger.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/AI-812-partial-execs-broken-when-using-chat-trigger.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/CAT-2395-node-spacing.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/CAT-2395-node-spacing.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/CAT-2395-node-spacing.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/CAT-2395-node-spacing.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/CAT-726-canvas-node-connectors-not-rendered-when-nodes-inserted.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/CAT-726-canvas-node-connectors-not-rendered-when-nodes-inserted.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/CAT-726-canvas-node-connectors-not-rendered-when-nodes-inserted.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/CAT-726-canvas-node-connectors-not-rendered-when-nodes-inserted.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/PAY-4367-node-shifting-cyclic.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/PAY-4367-node-shifting-cyclic.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/PAY-4367-node-shifting-cyclic.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/PAY-4367-node-shifting-cyclic.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/SUG-121-fields-reset-after-closing-ndv.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/SUG-121-fields-reset-after-closing-ndv.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/SUG-121-fields-reset-after-closing-ndv.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/SUG-121-fields-reset-after-closing-ndv.spec.ts diff --git a/packages/testing/playwright/tests/e2e/regression/SUG-38-inline-expression-preview.spec.ts b/packages/quality/testing/playwright/tests/e2e/regression/SUG-38-inline-expression-preview.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/regression/SUG-38-inline-expression-preview.spec.ts rename to packages/quality/testing/playwright/tests/e2e/regression/SUG-38-inline-expression-preview.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/poll-trigger-backoff.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-backoff.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/poll-trigger-backoff.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-backoff.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/poll-trigger-cursor-migrated.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-cursor-migrated.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/poll-trigger-cursor-migrated.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-cursor-migrated.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/poll-trigger-cursor-unmigrated.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-cursor-unmigrated.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/poll-trigger-cursor-unmigrated.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-cursor-unmigrated.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/poll-trigger-durable.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-durable.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/poll-trigger-durable.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-durable.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/poll-trigger-helpers.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-helpers.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/poll-trigger-helpers.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-helpers.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/poll-trigger-legacy.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-legacy.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/poll-trigger-legacy.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-legacy.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/poll-trigger-misfire-skip.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-misfire-skip.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/poll-trigger-misfire-skip.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-misfire-skip.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/poll-trigger-workflow.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-workflow.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/poll-trigger-workflow.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/poll-trigger-workflow.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-durable.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-durable.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-durable.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-durable.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-helpers.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-helpers.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-helpers.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-helpers.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-legacy.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-legacy.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-legacy.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-legacy.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-misfire-coalesce.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-misfire-coalesce.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-misfire-coalesce.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-misfire-coalesce.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-multimain.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-multimain.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-multimain.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-multimain.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-restart.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-restart.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-restart.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-restart.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-timezone.spec.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-timezone.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-timezone.spec.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-timezone.spec.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-workflow.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-workflow.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/schedule-trigger-workflow.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/schedule-trigger-workflow.ts diff --git a/packages/testing/playwright/tests/e2e/scheduling/scheduler-test-config.ts b/packages/quality/testing/playwright/tests/e2e/scheduling/scheduler-test-config.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/scheduling/scheduler-test-config.ts rename to packages/quality/testing/playwright/tests/e2e/scheduling/scheduler-test-config.ts diff --git a/packages/testing/playwright/tests/e2e/sentry/sentry-baseline.spec.ts b/packages/quality/testing/playwright/tests/e2e/sentry/sentry-baseline.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/sentry/sentry-baseline.spec.ts rename to packages/quality/testing/playwright/tests/e2e/sentry/sentry-baseline.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/community-nodes/community-nodes.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/community-nodes/community-nodes.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/community-nodes/community-nodes.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/community-nodes/community-nodes.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/environments/source-control.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/environments/source-control.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/environments/source-control.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/environments/source-control.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/environments/variables.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/environments/variables.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/environments/variables.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/environments/variables.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/external-secrets/aws-secrets-manager.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/external-secrets/aws-secrets-manager.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/external-secrets/aws-secrets-manager.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/external-secrets/aws-secrets-manager.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/external-secrets/secret-providers-connections-ui.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/external-secrets/secret-providers-connections-ui.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/external-secrets/secret-providers-connections-ui.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/external-secrets/secret-providers-connections-ui.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/external-secrets/secret-providers-connections.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/external-secrets/secret-providers-connections.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/external-secrets/secret-providers-connections.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/external-secrets/secret-providers-connections.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-delivery.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-delivery.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-delivery.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-delivery.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-observability.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-observability.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-observability.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-observability.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-ui-e2e.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-ui-e2e.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-ui-e2e.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/log-streaming/log-streaming-ui-e2e.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/log-streaming/log-streaming.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/log-streaming/log-streaming.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/log-streaming/log-streaming.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/log-streaming/log-streaming.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/personal/personal.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/personal/personal.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/personal/personal.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/personal/personal.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/personal/two-factor-authentication.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/personal/two-factor-authentication.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/personal/two-factor-authentication.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/personal/two-factor-authentication.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/users/users.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/users/users.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/users/users.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/users/users.spec.ts diff --git a/packages/testing/playwright/tests/e2e/settings/workers/workers.spec.ts b/packages/quality/testing/playwright/tests/e2e/settings/workers/workers.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/settings/workers/workers.spec.ts rename to packages/quality/testing/playwright/tests/e2e/settings/workers/workers.spec.ts diff --git a/packages/testing/playwright/tests/e2e/sharing/access-control.spec.ts b/packages/quality/testing/playwright/tests/e2e/sharing/access-control.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/sharing/access-control.spec.ts rename to packages/quality/testing/playwright/tests/e2e/sharing/access-control.spec.ts diff --git a/packages/testing/playwright/tests/e2e/sharing/credential-picker-scope.spec.ts b/packages/quality/testing/playwright/tests/e2e/sharing/credential-picker-scope.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/sharing/credential-picker-scope.spec.ts rename to packages/quality/testing/playwright/tests/e2e/sharing/credential-picker-scope.spec.ts diff --git a/packages/testing/playwright/tests/e2e/sharing/credential-sharing.spec.ts b/packages/quality/testing/playwright/tests/e2e/sharing/credential-sharing.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/sharing/credential-sharing.spec.ts rename to packages/quality/testing/playwright/tests/e2e/sharing/credential-sharing.spec.ts diff --git a/packages/testing/playwright/tests/e2e/sharing/credential-visibility.spec.ts b/packages/quality/testing/playwright/tests/e2e/sharing/credential-visibility.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/sharing/credential-visibility.spec.ts rename to packages/quality/testing/playwright/tests/e2e/sharing/credential-visibility.spec.ts diff --git a/packages/testing/playwright/tests/e2e/sharing/workflow-sharing.spec.ts b/packages/quality/testing/playwright/tests/e2e/sharing/workflow-sharing.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/sharing/workflow-sharing.spec.ts rename to packages/quality/testing/playwright/tests/e2e/sharing/workflow-sharing.spec.ts diff --git a/packages/testing/playwright/tests/e2e/source-control/pull.spec.ts b/packages/quality/testing/playwright/tests/e2e/source-control/pull.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/source-control/pull.spec.ts rename to packages/quality/testing/playwright/tests/e2e/source-control/pull.spec.ts diff --git a/packages/testing/playwright/tests/e2e/source-control/push.spec.ts b/packages/quality/testing/playwright/tests/e2e/source-control/push.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/source-control/push.spec.ts rename to packages/quality/testing/playwright/tests/e2e/source-control/push.spec.ts diff --git a/packages/testing/playwright/tests/e2e/type-availability-policies/credential-type-policy-worker.spec.ts b/packages/quality/testing/playwright/tests/e2e/type-availability-policies/credential-type-policy-worker.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/type-availability-policies/credential-type-policy-worker.spec.ts rename to packages/quality/testing/playwright/tests/e2e/type-availability-policies/credential-type-policy-worker.spec.ts diff --git a/packages/testing/playwright/tests/e2e/type-availability-policies/credential-type-policy.spec.ts b/packages/quality/testing/playwright/tests/e2e/type-availability-policies/credential-type-policy.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/type-availability-policies/credential-type-policy.spec.ts rename to packages/quality/testing/playwright/tests/e2e/type-availability-policies/credential-type-policy.spec.ts diff --git a/packages/testing/playwright/tests/e2e/type-availability-policies/node-type-policy.spec.ts b/packages/quality/testing/playwright/tests/e2e/type-availability-policies/node-type-policy.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/type-availability-policies/node-type-policy.spec.ts rename to packages/quality/testing/playwright/tests/e2e/type-availability-policies/node-type-policy.spec.ts diff --git a/packages/testing/playwright/tests/e2e/type-availability-policies/policy-helpers.ts b/packages/quality/testing/playwright/tests/e2e/type-availability-policies/policy-helpers.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/type-availability-policies/policy-helpers.ts rename to packages/quality/testing/playwright/tests/e2e/type-availability-policies/policy-helpers.ts diff --git a/packages/testing/playwright/tests/e2e/webhooks/webhook-trigger-oauth2.spec.ts b/packages/quality/testing/playwright/tests/e2e/webhooks/webhook-trigger-oauth2.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/webhooks/webhook-trigger-oauth2.spec.ts rename to packages/quality/testing/playwright/tests/e2e/webhooks/webhook-trigger-oauth2.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflow-reviews/review-round-trip.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflow-reviews/review-round-trip.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflow-reviews/review-round-trip.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflow-reviews/review-round-trip.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/checklist/production-checklist.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/checklist/production-checklist.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/checklist/production-checklist.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/checklist/production-checklist.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/demo-diff.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/demo-diff.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/demo-diff.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/demo-diff.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/demo-executable-chat-trigger.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/demo-executable-chat-trigger.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/demo-executable-chat-trigger.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/demo-executable-chat-trigger.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/canvas/actions.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/actions.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/canvas/actions.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/actions.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/canvas/canvas-nodes.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/canvas-nodes.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/canvas/canvas-nodes.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/canvas-nodes.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/canvas/canvas-zoom.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/canvas-zoom.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/canvas/canvas-zoom.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/canvas-zoom.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/canvas/focus-panel.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/focus-panel.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/canvas/focus-panel.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/focus-panel.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/canvas/node-groups.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/node-groups.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/canvas/node-groups.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/node-groups.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/canvas/stickies.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/stickies.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/canvas/stickies.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/stickies.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/canvas/undo-redo.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/undo-redo.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/canvas/undo-redo.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/canvas/undo-redo.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/code/code-node.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/code/code-node.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/code/code-node.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/code/code-node.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/code/editors.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/code/editors.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/code/editors.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/code/editors.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/editor-after-route-changes.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/editor-after-route-changes.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/editor-after-route-changes.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/editor-after-route-changes.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/execution/debug.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/debug.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/execution/debug.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/debug.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/execution/execution.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/execution.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/execution/execution.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/execution.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/execution/executions-list-infinite-scroll.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/executions-list-infinite-scroll.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/execution/executions-list-infinite-scroll.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/executions-list-infinite-scroll.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/execution/fixtures.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/fixtures.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/execution/fixtures.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/fixtures.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/execution/inject-previous.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/inject-previous.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/execution/inject-previous.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/inject-previous.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/execution/logs.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/logs.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/execution/logs.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/logs.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/execution/partial.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/partial.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/execution/partial.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/partial.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/execution/previous-nodes.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/previous-nodes.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/execution/previous-nodes.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/previous-nodes.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/execution/subworkflow-stop.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/subworkflow-stop.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/execution/subworkflow-stop.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/execution/subworkflow-stop.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/expressions/env-access.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/env-access.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/expressions/env-access.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/env-access.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/expressions/inline.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/inline.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/expressions/inline.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/inline.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/expressions/mapping.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/mapping.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/expressions/mapping.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/mapping.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/expressions/modal.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/modal.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/expressions/modal.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/modal.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/expressions/quickjs-engine.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/quickjs-engine.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/expressions/quickjs-engine.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/quickjs-engine.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/expressions/transformation.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/transformation.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/expressions/transformation.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/expressions/transformation.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/ndv/io-filter.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/io-filter.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/ndv/io-filter.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/io-filter.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-core.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-core.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-core.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-core.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-data-display.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-data-display.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-data-display.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-data-display.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-floating-nodes.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-floating-nodes.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-floating-nodes.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-floating-nodes.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-parameters.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-parameters.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-parameters.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/ndv-parameters.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/ndv/paired-item.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/paired-item.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/ndv/paired-item.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/paired-item.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/ndv/pinning.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/pinning.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/ndv/pinning.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/pinning.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/ndv/resource-locator.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/resource-locator.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/ndv/resource-locator.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/resource-locator.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/ndv/resource-mapper.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/resource-mapper.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/ndv/resource-mapper.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/resource-mapper.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/ndv/schema-preview.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/schema-preview.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/ndv/schema-preview.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/ndv/schema-preview.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/routing.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/routing.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/routing.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/routing.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/debugging.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/debugging.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/debugging.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/debugging.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/extraction.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/extraction.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/extraction.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/extraction.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/output.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/output.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/output.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/output.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/subworkflow-version-resolution.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/subworkflow-version-resolution.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/subworkflow-version-resolution.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/subworkflow-version-resolution.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/wait.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/wait.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/wait.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/wait.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/workflow-selector.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/workflow-selector.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/subworkflows/workflow-selector.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/subworkflows/workflow-selector.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/tags.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/tags.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/tags.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/tags.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/viewer-permissions.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/viewer-permissions.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/viewer-permissions.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/viewer-permissions.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/archive.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/archive.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/archive.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/archive.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/copy-paste.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/copy-paste.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/copy-paste.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/copy-paste.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/duplicate.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/duplicate.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/duplicate.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/duplicate.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/publish.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/publish.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/publish.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/publish.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/run.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/run.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/run.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/run.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/settings.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/settings.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/editor/workflow-actions/settings.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/editor/workflow-actions/settings.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/executions/filter.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/executions/filter.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/executions/filter.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/executions/filter.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/executions/list.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/executions/list.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/executions/list.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/executions/list.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/executions/preview-isolation.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/executions/preview-isolation.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/executions/preview-isolation.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/executions/preview-isolation.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/list/import.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/list/import.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/list/import.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/list/import.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/list/workflows.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/list/workflows.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/list/workflows.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/list/workflows.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/templates/credentials-setup.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/templates/credentials-setup.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/templates/credentials-setup.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/templates/credentials-setup.spec.ts diff --git a/packages/testing/playwright/tests/e2e/workflows/templates/templates.spec.ts b/packages/quality/testing/playwright/tests/e2e/workflows/templates/templates.spec.ts similarity index 100% rename from packages/testing/playwright/tests/e2e/workflows/templates/templates.spec.ts rename to packages/quality/testing/playwright/tests/e2e/workflows/templates/templates.spec.ts diff --git a/packages/testing/playwright/tests/evals/_smoke/anthropic.spec.ts b/packages/quality/testing/playwright/tests/evals/_smoke/anthropic.spec.ts similarity index 100% rename from packages/testing/playwright/tests/evals/_smoke/anthropic.spec.ts rename to packages/quality/testing/playwright/tests/evals/_smoke/anthropic.spec.ts diff --git a/packages/testing/playwright/tests/evals/_smoke/langsmith-fixture.spec.ts b/packages/quality/testing/playwright/tests/evals/_smoke/langsmith-fixture.spec.ts similarity index 100% rename from packages/testing/playwright/tests/evals/_smoke/langsmith-fixture.spec.ts rename to packages/quality/testing/playwright/tests/evals/_smoke/langsmith-fixture.spec.ts diff --git a/packages/testing/playwright/tests/evals/instance-ai/fixtures/weather-alert.json b/packages/quality/testing/playwright/tests/evals/instance-ai/fixtures/weather-alert.json similarity index 100% rename from packages/testing/playwright/tests/evals/instance-ai/fixtures/weather-alert.json rename to packages/quality/testing/playwright/tests/evals/instance-ai/fixtures/weather-alert.json diff --git a/packages/testing/playwright/tests/evals/instance-ai/weather-alert.spec.ts b/packages/quality/testing/playwright/tests/evals/instance-ai/weather-alert.spec.ts similarity index 100% rename from packages/testing/playwright/tests/evals/instance-ai/weather-alert.spec.ts rename to packages/quality/testing/playwright/tests/evals/instance-ai/weather-alert.spec.ts diff --git a/packages/testing/playwright/tests/framework/consumers.ts b/packages/quality/testing/playwright/tests/framework/consumers.ts similarity index 100% rename from packages/testing/playwright/tests/framework/consumers.ts rename to packages/quality/testing/playwright/tests/framework/consumers.ts diff --git a/packages/testing/playwright/tests/framework/harness-contract.test.ts b/packages/quality/testing/playwright/tests/framework/harness-contract.test.ts similarity index 100% rename from packages/testing/playwright/tests/framework/harness-contract.test.ts rename to packages/quality/testing/playwright/tests/framework/harness-contract.test.ts diff --git a/packages/testing/playwright/tests/framework/playwright.config.ts b/packages/quality/testing/playwright/tests/framework/playwright.config.ts similarity index 100% rename from packages/testing/playwright/tests/framework/playwright.config.ts rename to packages/quality/testing/playwright/tests/framework/playwright.config.ts diff --git a/packages/testing/playwright/tests/framework/support.ts b/packages/quality/testing/playwright/tests/framework/support.ts similarity index 100% rename from packages/testing/playwright/tests/framework/support.ts rename to packages/quality/testing/playwright/tests/framework/support.ts diff --git a/packages/testing/playwright/tests/infrastructure/agents/message-queue.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/agents/message-queue.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/agents/message-queue.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/agents/message-queue.spec.ts diff --git a/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/README.md b/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/README.md new file mode 100644 index 00000000000..6d06f33df36 --- /dev/null +++ b/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/README.md @@ -0,0 +1,19 @@ +# Run local-only memory benchmarks + +These Playwright specs measure memory across Instance AI actions. The `benchmark-memory-instanceai:infrastructure` project starts a container stack with observability services. It does not run in Docker-free local-server mode. + +1. Build the n8n image from the repository root when product code changed: + + ```bash + pnpm build:docker + ``` + +2. Set `N8N_AI_OPENAI_API_KEY` in your shell for the default `openai/gpt-4o-mini` model. You can set `N8N_INSTANCE_AI_MODEL` to select another model. Supply the matching provider key. + +3. Run the project from the repository root: + + ```bash + pnpm --filter n8n-playwright exec playwright test --project=benchmark-memory-instanceai:infrastructure + ``` + +The [memory harness](harness/memory-harness.ts) measures heap and RSS between phases and can save heap snapshots. Use the [MemLab analysis script](../../../utils/benchmark/run-heap-analysis.ts) to compare saved snapshots. diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks-local/harness/memory-harness.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/harness/memory-harness.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks-local/harness/memory-harness.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/harness/memory-harness.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/cancel-abort.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/cancel-abort.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/cancel-abort.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/cancel-abort.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/fixtures.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/fixtures.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/fixtures.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/fixtures.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/single-thread-lifecycle.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/single-thread-lifecycle.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/single-thread-lifecycle.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/single-thread-lifecycle.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/sse-reconnection.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/sse-reconnection.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/sse-reconnection.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/sse-reconnection.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn-datatables.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn-datatables.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn-datatables.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn-datatables.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn-delegation.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn-delegation.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn-delegation.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn-delegation.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks-local/instance-ai/thread-churn.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/AGENTS.md b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/AGENTS.md similarity index 93% rename from packages/testing/playwright/tests/infrastructure/benchmarks/AGENTS.md rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/AGENTS.md index 56026ddcebe..c74614f574b 100644 --- a/packages/testing/playwright/tests/infrastructure/benchmarks/AGENTS.md +++ b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/AGENTS.md @@ -33,5 +33,5 @@ pnpm janitor pnpm test:benchmark ``` -Run commands from `packages/testing/playwright`. Build the n8n image first when +Run commands from `packages/quality/testing/playwright`. Build the n8n image first when the benchmark must include product-code changes. diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/README.md b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/README.md similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/README.md rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/README.md diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/harness/bulk-seed-executions.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/bulk-seed-executions.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/harness/bulk-seed-executions.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/bulk-seed-executions.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/harness/docker-stats-fallback.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/docker-stats-fallback.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/harness/docker-stats-fallback.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/docker-stats-fallback.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/harness/kafka-backlog-harness.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/kafka-backlog-harness.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/harness/kafka-backlog-harness.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/kafka-backlog-harness.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/harness/load-harness.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/load-harness.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/harness/load-harness.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/load-harness.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/harness/loop-ui-scenario.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/loop-ui-scenario.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/harness/loop-ui-scenario.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/loop-ui-scenario.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/harness/measure-load-impact.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/measure-load-impact.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/harness/measure-load-impact.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/measure-load-impact.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/harness/orchestration.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/orchestration.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/harness/orchestration.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/orchestration.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/harness/single-instance-webhook-harness.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/single-instance-webhook-harness.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/harness/single-instance-webhook-harness.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/single-instance-webhook-harness.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/harness/webhook-throughput-harness.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/webhook-throughput-harness.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/harness/webhook-throughput-harness.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/harness/webhook-throughput-harness.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/kafka/burst-drain-capacity.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/burst-drain-capacity.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/kafka/burst-drain-capacity.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/burst-drain-capacity.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/kafka/node-count-scaling.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/node-count-scaling.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/kafka/node-count-scaling.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/node-count-scaling.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/kafka/output-size-impact.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/output-size-impact.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/kafka/output-size-impact.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/output-size-impact.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/kafka/queue-mode-sustained-rate.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/queue-mode-sustained-rate.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/kafka/queue-mode-sustained-rate.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/queue-mode-sustained-rate.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2-lazy-cache.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2-lazy-cache.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2-lazy-cache.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2-lazy-cache.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2-split-db.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2-split-db.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2-split-db.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2-split-db.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-engine-v2.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-lazy-cache.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-lazy-cache.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-lazy-cache.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling-lazy-cache.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/single-instance-ceiling.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/kafka/steady-rate-breaking-point.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/steady-rate-breaking-point.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/kafka/steady-rate-breaking-point.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/kafka/steady-rate-breaking-point.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/ui/executions-list-customer-scale.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/ui/executions-list-customer-scale.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/ui/executions-list-customer-scale.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/ui/executions-list-customer-scale.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-2wp-1w.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-2wp-1w.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-2wp-1w.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-2wp-1w.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-2wp-2w.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-2wp-2w.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-2wp-2w.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-2wp-2w.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-baseline.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-baseline.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-baseline.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-dedicated-proc-baseline.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-save-data-overhead.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-save-data-overhead.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-save-data-overhead.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-save-data-overhead.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2-lazy-cache.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2-lazy-cache.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2-lazy-cache.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2-lazy-cache.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2-split-db.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2-split-db.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2-split-db.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2-split-db.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-engine-v2.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-lazy-cache.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-lazy-cache.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-lazy-cache.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance-lazy-cache.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-single-instance.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-sync-latency-floor.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-sync-latency-floor.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-sync-latency-floor.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/benchmarks/webhook/webhook-sync-latency-floor.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/chaos/multimain.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/chaos/multimain.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/chaos/multimain.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/chaos/multimain.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/chaos/postgres.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/chaos/postgres.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/chaos/postgres.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/chaos/postgres.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/encryption/README.md b/packages/quality/testing/playwright/tests/infrastructure/encryption/README.md similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/README.md rename to packages/quality/testing/playwright/tests/infrastructure/encryption/README.md diff --git a/packages/testing/playwright/tests/infrastructure/encryption/api.ts b/packages/quality/testing/playwright/tests/infrastructure/encryption/api.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/api.ts rename to packages/quality/testing/playwright/tests/infrastructure/encryption/api.ts diff --git a/packages/testing/playwright/tests/infrastructure/encryption/cycles.ts b/packages/quality/testing/playwright/tests/infrastructure/encryption/cycles.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/cycles.ts rename to packages/quality/testing/playwright/tests/infrastructure/encryption/cycles.ts diff --git a/packages/testing/playwright/tests/infrastructure/encryption/db.ts b/packages/quality/testing/playwright/tests/infrastructure/encryption/db.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/db.ts rename to packages/quality/testing/playwright/tests/infrastructure/encryption/db.ts diff --git a/packages/testing/playwright/tests/infrastructure/encryption/harness.ts b/packages/quality/testing/playwright/tests/infrastructure/encryption/harness.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/harness.ts rename to packages/quality/testing/playwright/tests/infrastructure/encryption/harness.ts diff --git a/packages/testing/playwright/tests/infrastructure/encryption/instances.ts b/packages/quality/testing/playwright/tests/infrastructure/encryption/instances.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/instances.ts rename to packages/quality/testing/playwright/tests/infrastructure/encryption/instances.ts diff --git a/packages/testing/playwright/tests/infrastructure/encryption/journeys.ts b/packages/quality/testing/playwright/tests/infrastructure/encryption/journeys.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/journeys.ts rename to packages/quality/testing/playwright/tests/infrastructure/encryption/journeys.ts diff --git a/packages/testing/playwright/tests/infrastructure/encryption/node-sqlite.d.ts b/packages/quality/testing/playwright/tests/infrastructure/encryption/node-sqlite.d.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/node-sqlite.d.ts rename to packages/quality/testing/playwright/tests/infrastructure/encryption/node-sqlite.d.ts diff --git a/packages/testing/playwright/tests/infrastructure/encryption/rotation-cycle.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/encryption/rotation-cycle.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/rotation-cycle.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/encryption/rotation-cycle.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/encryption/spec-helpers.ts b/packages/quality/testing/playwright/tests/infrastructure/encryption/spec-helpers.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/spec-helpers.ts rename to packages/quality/testing/playwright/tests/infrastructure/encryption/spec-helpers.ts diff --git a/packages/testing/playwright/tests/infrastructure/encryption/upgrade-cycle.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/encryption/upgrade-cycle.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/encryption/upgrade-cycle.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/encryption/upgrade-cycle.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/instance-registry/cluster-membership.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/instance-registry/cluster-membership.spec.ts similarity index 96% rename from packages/testing/playwright/tests/infrastructure/instance-registry/cluster-membership.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/instance-registry/cluster-membership.spec.ts index 6b4ba74fe59..f1750cd8435 100644 --- a/packages/testing/playwright/tests/infrastructure/instance-registry/cluster-membership.spec.ts +++ b/packages/quality/testing/playwright/tests/infrastructure/instance-registry/cluster-membership.spec.ts @@ -3,7 +3,7 @@ * * Runs the Instance Registry against a real Redis inside the container * stack (queue mode implies `mains: 2, workers: 1` -> Redis container is - * provisioned by `packages/testing/containers/services/redis.ts`). + * provisioned by `packages/quality/environments/containers/services/redis.ts`). * * Exercises the Lua scripts end-to-end via the public cluster-info * endpoint: diff --git a/packages/testing/playwright/tests/infrastructure/observability/multi-main-observability.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/observability/multi-main-observability.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/observability/multi-main-observability.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/observability/multi-main-observability.spec.ts diff --git a/packages/testing/playwright/tests/infrastructure/webhook-proc/chat-send-and-wait.spec.ts b/packages/quality/testing/playwright/tests/infrastructure/webhook-proc/chat-send-and-wait.spec.ts similarity index 100% rename from packages/testing/playwright/tests/infrastructure/webhook-proc/chat-send-and-wait.spec.ts rename to packages/quality/testing/playwright/tests/infrastructure/webhook-proc/chat-send-and-wait.spec.ts diff --git a/packages/testing/playwright/tests/performance/README.md b/packages/quality/testing/playwright/tests/performance/README.md similarity index 100% rename from packages/testing/playwright/tests/performance/README.md rename to packages/quality/testing/playwright/tests/performance/README.md diff --git a/packages/testing/playwright/tests/performance/canvas/canvas-execution.spec.ts b/packages/quality/testing/playwright/tests/performance/canvas/canvas-execution.spec.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/canvas-execution.spec.ts rename to packages/quality/testing/playwright/tests/performance/canvas/canvas-execution.spec.ts diff --git a/packages/testing/playwright/tests/performance/canvas/canvas-interactions.spec.ts b/packages/quality/testing/playwright/tests/performance/canvas/canvas-interactions.spec.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/canvas-interactions.spec.ts rename to packages/quality/testing/playwright/tests/performance/canvas/canvas-interactions.spec.ts diff --git a/packages/testing/playwright/tests/performance/canvas/canvas-load.spec.ts b/packages/quality/testing/playwright/tests/performance/canvas/canvas-load.spec.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/canvas-load.spec.ts rename to packages/quality/testing/playwright/tests/performance/canvas/canvas-load.spec.ts diff --git a/packages/testing/playwright/tests/performance/canvas/fixtures/generate-workflow.ts b/packages/quality/testing/playwright/tests/performance/canvas/fixtures/generate-workflow.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/fixtures/generate-workflow.ts rename to packages/quality/testing/playwright/tests/performance/canvas/fixtures/generate-workflow.ts diff --git a/packages/testing/playwright/tests/performance/canvas/fixtures/pinned-payloads.ts b/packages/quality/testing/playwright/tests/performance/canvas/fixtures/pinned-payloads.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/fixtures/pinned-payloads.ts rename to packages/quality/testing/playwright/tests/performance/canvas/fixtures/pinned-payloads.ts diff --git a/packages/testing/playwright/tests/performance/canvas/helpers/canvas-ready.ts b/packages/quality/testing/playwright/tests/performance/canvas/helpers/canvas-ready.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/helpers/canvas-ready.ts rename to packages/quality/testing/playwright/tests/performance/canvas/helpers/canvas-ready.ts diff --git a/packages/testing/playwright/tests/performance/canvas/helpers/cdp-metrics.ts b/packages/quality/testing/playwright/tests/performance/canvas/helpers/cdp-metrics.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/helpers/cdp-metrics.ts rename to packages/quality/testing/playwright/tests/performance/canvas/helpers/cdp-metrics.ts diff --git a/packages/testing/playwright/tests/performance/canvas/helpers/frame-stats.ts b/packages/quality/testing/playwright/tests/performance/canvas/helpers/frame-stats.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/helpers/frame-stats.ts rename to packages/quality/testing/playwright/tests/performance/canvas/helpers/frame-stats.ts diff --git a/packages/testing/playwright/tests/performance/canvas/helpers/iterate.ts b/packages/quality/testing/playwright/tests/performance/canvas/helpers/iterate.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/helpers/iterate.ts rename to packages/quality/testing/playwright/tests/performance/canvas/helpers/iterate.ts diff --git a/packages/testing/playwright/tests/performance/canvas/helpers/post-exec-heap.ts b/packages/quality/testing/playwright/tests/performance/canvas/helpers/post-exec-heap.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/helpers/post-exec-heap.ts rename to packages/quality/testing/playwright/tests/performance/canvas/helpers/post-exec-heap.ts diff --git a/packages/testing/playwright/tests/performance/canvas/helpers/render-stats.ts b/packages/quality/testing/playwright/tests/performance/canvas/helpers/render-stats.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/helpers/render-stats.ts rename to packages/quality/testing/playwright/tests/performance/canvas/helpers/render-stats.ts diff --git a/packages/testing/playwright/tests/performance/canvas/helpers/report.ts b/packages/quality/testing/playwright/tests/performance/canvas/helpers/report.ts similarity index 100% rename from packages/testing/playwright/tests/performance/canvas/helpers/report.ts rename to packages/quality/testing/playwright/tests/performance/canvas/helpers/report.ts diff --git a/packages/testing/playwright/tests/performance/large-node-cloud.spec.ts b/packages/quality/testing/playwright/tests/performance/large-node-cloud.spec.ts similarity index 100% rename from packages/testing/playwright/tests/performance/large-node-cloud.spec.ts rename to packages/quality/testing/playwright/tests/performance/large-node-cloud.spec.ts diff --git a/packages/testing/playwright/tests/performance/memory-baseline.ts b/packages/quality/testing/playwright/tests/performance/memory-baseline.ts similarity index 100% rename from packages/testing/playwright/tests/performance/memory-baseline.ts rename to packages/quality/testing/playwright/tests/performance/memory-baseline.ts diff --git a/packages/testing/playwright/tests/performance/memory-consumption-agents.spec.ts b/packages/quality/testing/playwright/tests/performance/memory-consumption-agents.spec.ts similarity index 100% rename from packages/testing/playwright/tests/performance/memory-consumption-agents.spec.ts rename to packages/quality/testing/playwright/tests/performance/memory-consumption-agents.spec.ts diff --git a/packages/testing/playwright/tests/performance/memory-consumption-cloud.spec.ts b/packages/quality/testing/playwright/tests/performance/memory-consumption-cloud.spec.ts similarity index 100% rename from packages/testing/playwright/tests/performance/memory-consumption-cloud.spec.ts rename to packages/quality/testing/playwright/tests/performance/memory-consumption-cloud.spec.ts diff --git a/packages/testing/playwright/tests/performance/memory-consumption-instance-ai.spec.ts b/packages/quality/testing/playwright/tests/performance/memory-consumption-instance-ai.spec.ts similarity index 100% rename from packages/testing/playwright/tests/performance/memory-consumption-instance-ai.spec.ts rename to packages/quality/testing/playwright/tests/performance/memory-consumption-instance-ai.spec.ts diff --git a/packages/testing/playwright/tests/performance/memory-consumption-no-mcp-only.spec.ts b/packages/quality/testing/playwright/tests/performance/memory-consumption-no-mcp-only.spec.ts similarity index 100% rename from packages/testing/playwright/tests/performance/memory-consumption-no-mcp-only.spec.ts rename to packages/quality/testing/playwright/tests/performance/memory-consumption-no-mcp-only.spec.ts diff --git a/packages/testing/playwright/tests/performance/memory-consumption-no-mcp-registry.spec.ts b/packages/quality/testing/playwright/tests/performance/memory-consumption-no-mcp-registry.spec.ts similarity index 100% rename from packages/testing/playwright/tests/performance/memory-consumption-no-mcp-registry.spec.ts rename to packages/quality/testing/playwright/tests/performance/memory-consumption-no-mcp-registry.spec.ts diff --git a/packages/testing/playwright/tests/performance/memory-retention.spec.ts b/packages/quality/testing/playwright/tests/performance/memory-retention.spec.ts similarity index 100% rename from packages/testing/playwright/tests/performance/memory-retention.spec.ts rename to packages/quality/testing/playwright/tests/performance/memory-retention.spec.ts diff --git a/packages/testing/playwright/tsconfig.json b/packages/quality/testing/playwright/tsconfig.json similarity index 68% rename from packages/testing/playwright/tsconfig.json rename to packages/quality/testing/playwright/tsconfig.json index 13264d8b5b7..f2e7cf8cac0 100644 --- a/packages/testing/playwright/tsconfig.json +++ b/packages/quality/testing/playwright/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../../tsconfig.json", "compilerOptions": { "sourceMap": false, "declaration": false, @@ -8,5 +8,5 @@ }, "include": ["**/*.ts", "janitor.config.mjs"], "exclude": ["**/dist/**/*", "**/node_modules/**/*"], - "references": [{ "path": "../../workflow/tsconfig.build.esm.json" }] + "references": [{ "path": "../../../workflow/tsconfig.build.esm.json" }] } diff --git a/packages/testing/playwright/utils/a11y-landmark-check.ts b/packages/quality/testing/playwright/utils/a11y-landmark-check.ts similarity index 100% rename from packages/testing/playwright/utils/a11y-landmark-check.ts rename to packages/quality/testing/playwright/utils/a11y-landmark-check.ts diff --git a/packages/testing/playwright/utils/benchmark/diagnostics.ts b/packages/quality/testing/playwright/utils/benchmark/diagnostics.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/diagnostics.ts rename to packages/quality/testing/playwright/utils/benchmark/diagnostics.ts diff --git a/packages/testing/playwright/utils/benchmark/execution-sampler.ts b/packages/quality/testing/playwright/utils/benchmark/execution-sampler.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/execution-sampler.ts rename to packages/quality/testing/playwright/utils/benchmark/execution-sampler.ts diff --git a/packages/testing/playwright/utils/benchmark/expression-benchmark-profiles.ts b/packages/quality/testing/playwright/utils/benchmark/expression-benchmark-profiles.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/expression-benchmark-profiles.ts rename to packages/quality/testing/playwright/utils/benchmark/expression-benchmark-profiles.ts diff --git a/packages/testing/playwright/utils/benchmark/heap-analysis.ts b/packages/quality/testing/playwright/utils/benchmark/heap-analysis.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/heap-analysis.ts rename to packages/quality/testing/playwright/utils/benchmark/heap-analysis.ts diff --git a/packages/testing/playwright/utils/benchmark/index.ts b/packages/quality/testing/playwright/utils/benchmark/index.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/index.ts rename to packages/quality/testing/playwright/utils/benchmark/index.ts diff --git a/packages/testing/playwright/utils/benchmark/instance-ai-driver.ts b/packages/quality/testing/playwright/utils/benchmark/instance-ai-driver.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/instance-ai-driver.ts rename to packages/quality/testing/playwright/utils/benchmark/instance-ai-driver.ts diff --git a/packages/testing/playwright/utils/benchmark/kafka-driver.ts b/packages/quality/testing/playwright/utils/benchmark/kafka-driver.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/kafka-driver.ts rename to packages/quality/testing/playwright/utils/benchmark/kafka-driver.ts diff --git a/packages/testing/playwright/utils/benchmark/load-executors.ts b/packages/quality/testing/playwright/utils/benchmark/load-executors.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/load-executors.ts rename to packages/quality/testing/playwright/utils/benchmark/load-executors.ts diff --git a/packages/testing/playwright/utils/benchmark/run-heap-analysis.ts b/packages/quality/testing/playwright/utils/benchmark/run-heap-analysis.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/run-heap-analysis.ts rename to packages/quality/testing/playwright/utils/benchmark/run-heap-analysis.ts diff --git a/packages/testing/playwright/utils/benchmark/run-report.ts b/packages/quality/testing/playwright/utils/benchmark/run-report.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/run-report.ts rename to packages/quality/testing/playwright/utils/benchmark/run-report.ts diff --git a/packages/testing/playwright/utils/benchmark/sizing-matrix.ts b/packages/quality/testing/playwright/utils/benchmark/sizing-matrix.ts similarity index 99% rename from packages/testing/playwright/utils/benchmark/sizing-matrix.ts rename to packages/quality/testing/playwright/utils/benchmark/sizing-matrix.ts index 0fa8f80370d..c42385b326b 100644 --- a/packages/testing/playwright/utils/benchmark/sizing-matrix.ts +++ b/packages/quality/testing/playwright/utils/benchmark/sizing-matrix.ts @@ -547,7 +547,7 @@ export function renderMarkdown(matrix: SizingMatrix): string { lines.push('## Methodology'); lines.push(''); lines.push( - 'Cells are aggregated by the substrate at `packages/testing/playwright/utils/benchmark/sizing-matrix.ts` from per-run `run-report.json` files. ' + + 'Cells are aggregated by the substrate at `packages/quality/testing/playwright/utils/benchmark/sizing-matrix.ts` from per-run `run-report.json` files. ' + 'The headline **ceiling** is the p50 `execPerSec` across cold runs; the full p50/p95/max is in cell detail. ' + '**sustained** is a headroom-derived figure (throughput at which main CPU < 75%, PG CPU < 70%, event-loop lag < 25 ms would hold), capped at the ceiling p50. ' + 'It is a raw computed signal, not a vetted recommendation. ' + diff --git a/packages/testing/playwright/utils/benchmark/throughput-measure.test.ts b/packages/quality/testing/playwright/utils/benchmark/throughput-measure.test.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/throughput-measure.test.ts rename to packages/quality/testing/playwright/utils/benchmark/throughput-measure.test.ts diff --git a/packages/testing/playwright/utils/benchmark/throughput-measure.ts b/packages/quality/testing/playwright/utils/benchmark/throughput-measure.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/throughput-measure.ts rename to packages/quality/testing/playwright/utils/benchmark/throughput-measure.ts diff --git a/packages/testing/playwright/utils/benchmark/types.ts b/packages/quality/testing/playwright/utils/benchmark/types.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/types.ts rename to packages/quality/testing/playwright/utils/benchmark/types.ts diff --git a/packages/testing/playwright/utils/benchmark/webhook-driver.ts b/packages/quality/testing/playwright/utils/benchmark/webhook-driver.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/webhook-driver.ts rename to packages/quality/testing/playwright/utils/benchmark/webhook-driver.ts diff --git a/packages/testing/playwright/utils/benchmark/workflow-builder.ts b/packages/quality/testing/playwright/utils/benchmark/workflow-builder.ts similarity index 100% rename from packages/testing/playwright/utils/benchmark/workflow-builder.ts rename to packages/quality/testing/playwright/utils/benchmark/workflow-builder.ts diff --git a/packages/testing/playwright/utils/index-helper.ts b/packages/quality/testing/playwright/utils/index-helper.ts similarity index 100% rename from packages/testing/playwright/utils/index-helper.ts rename to packages/quality/testing/playwright/utils/index-helper.ts diff --git a/packages/testing/playwright/utils/path-helper.ts b/packages/quality/testing/playwright/utils/path-helper.ts similarity index 100% rename from packages/testing/playwright/utils/path-helper.ts rename to packages/quality/testing/playwright/utils/path-helper.ts diff --git a/packages/testing/playwright/utils/performance-helper.ts b/packages/quality/testing/playwright/utils/performance-helper.ts similarity index 100% rename from packages/testing/playwright/utils/performance-helper.ts rename to packages/quality/testing/playwright/utils/performance-helper.ts diff --git a/packages/testing/playwright/utils/requirements.ts b/packages/quality/testing/playwright/utils/requirements.ts similarity index 100% rename from packages/testing/playwright/utils/requirements.ts rename to packages/quality/testing/playwright/utils/requirements.ts diff --git a/packages/testing/playwright/utils/retry-utils.ts b/packages/quality/testing/playwright/utils/retry-utils.ts similarity index 100% rename from packages/testing/playwright/utils/retry-utils.ts rename to packages/quality/testing/playwright/utils/retry-utils.ts diff --git a/packages/testing/playwright/utils/source-control-helper.ts b/packages/quality/testing/playwright/utils/source-control-helper.ts similarity index 100% rename from packages/testing/playwright/utils/source-control-helper.ts rename to packages/quality/testing/playwright/utils/source-control-helper.ts diff --git a/packages/testing/playwright/utils/url-helper.test.ts b/packages/quality/testing/playwright/utils/url-helper.test.ts similarity index 100% rename from packages/testing/playwright/utils/url-helper.test.ts rename to packages/quality/testing/playwright/utils/url-helper.test.ts diff --git a/packages/testing/playwright/utils/url-helper.ts b/packages/quality/testing/playwright/utils/url-helper.ts similarity index 100% rename from packages/testing/playwright/utils/url-helper.ts rename to packages/quality/testing/playwright/utils/url-helper.ts diff --git a/packages/testing/playwright/vitest.config.ts b/packages/quality/testing/playwright/vitest.config.ts similarity index 100% rename from packages/testing/playwright/vitest.config.ts rename to packages/quality/testing/playwright/vitest.config.ts diff --git a/packages/testing/playwright/vitest.harness.config.ts b/packages/quality/testing/playwright/vitest.harness.config.ts similarity index 100% rename from packages/testing/playwright/vitest.harness.config.ts rename to packages/quality/testing/playwright/vitest.harness.config.ts diff --git a/packages/testing/playwright/workflows/ADO-5808-erroring-code-node.json b/packages/quality/testing/playwright/workflows/ADO-5808-erroring-code-node.json similarity index 100% rename from packages/testing/playwright/workflows/ADO-5808-erroring-code-node.json rename to packages/quality/testing/playwright/workflows/ADO-5808-erroring-code-node.json diff --git a/packages/testing/playwright/workflows/AI-2505_pdf_embed_fake_embeddings.json b/packages/quality/testing/playwright/workflows/AI-2505_pdf_embed_fake_embeddings.json similarity index 100% rename from packages/testing/playwright/workflows/AI-2505_pdf_embed_fake_embeddings.json rename to packages/quality/testing/playwright/workflows/AI-2505_pdf_embed_fake_embeddings.json diff --git a/packages/testing/playwright/workflows/Bug_node_insertions_between_stickies.json b/packages/quality/testing/playwright/workflows/Bug_node_insertions_between_stickies.json similarity index 100% rename from packages/testing/playwright/workflows/Bug_node_insertions_between_stickies.json rename to packages/quality/testing/playwright/workflows/Bug_node_insertions_between_stickies.json diff --git a/packages/testing/playwright/workflows/Bug_node_insertions_sticky.json b/packages/quality/testing/playwright/workflows/Bug_node_insertions_sticky.json similarity index 100% rename from packages/testing/playwright/workflows/Bug_node_insertions_sticky.json rename to packages/quality/testing/playwright/workflows/Bug_node_insertions_sticky.json diff --git a/packages/testing/playwright/workflows/Canvas-node-groups-fixture.json b/packages/quality/testing/playwright/workflows/Canvas-node-groups-fixture.json similarity index 100% rename from packages/testing/playwright/workflows/Canvas-node-groups-fixture.json rename to packages/quality/testing/playwright/workflows/Canvas-node-groups-fixture.json diff --git a/packages/testing/playwright/workflows/Canvas-node-groups-if-fixture.json b/packages/quality/testing/playwright/workflows/Canvas-node-groups-if-fixture.json similarity index 100% rename from packages/testing/playwright/workflows/Canvas-node-groups-if-fixture.json rename to packages/quality/testing/playwright/workflows/Canvas-node-groups-if-fixture.json diff --git a/packages/testing/playwright/workflows/Canvas-node-groups-persisted-fixture.json b/packages/quality/testing/playwright/workflows/Canvas-node-groups-persisted-fixture.json similarity index 100% rename from packages/testing/playwright/workflows/Canvas-node-groups-persisted-fixture.json rename to packages/quality/testing/playwright/workflows/Canvas-node-groups-persisted-fixture.json diff --git a/packages/testing/playwright/workflows/Canvas-node-groups-sticky-fixture.json b/packages/quality/testing/playwright/workflows/Canvas-node-groups-sticky-fixture.json similarity index 100% rename from packages/testing/playwright/workflows/Canvas-node-groups-sticky-fixture.json rename to packages/quality/testing/playwright/workflows/Canvas-node-groups-sticky-fixture.json diff --git a/packages/testing/playwright/workflows/Check_manual_node_run_for_pinned_and_rundata.json b/packages/quality/testing/playwright/workflows/Check_manual_node_run_for_pinned_and_rundata.json similarity index 100% rename from packages/testing/playwright/workflows/Check_manual_node_run_for_pinned_and_rundata.json rename to packages/quality/testing/playwright/workflows/Check_manual_node_run_for_pinned_and_rundata.json diff --git a/packages/testing/playwright/workflows/Custom_credential.json b/packages/quality/testing/playwright/workflows/Custom_credential.json similarity index 100% rename from packages/testing/playwright/workflows/Custom_credential.json rename to packages/quality/testing/playwright/workflows/Custom_credential.json diff --git a/packages/testing/playwright/workflows/Custom_node.json b/packages/quality/testing/playwright/workflows/Custom_node.json similarity index 100% rename from packages/testing/playwright/workflows/Custom_node.json rename to packages/quality/testing/playwright/workflows/Custom_node.json diff --git a/packages/testing/playwright/workflows/Custom_node_custom_credential.json b/packages/quality/testing/playwright/workflows/Custom_node_custom_credential.json similarity index 100% rename from packages/testing/playwright/workflows/Custom_node_custom_credential.json rename to packages/quality/testing/playwright/workflows/Custom_node_custom_credential.json diff --git a/packages/testing/playwright/workflows/Custom_node_n8n_credential.json b/packages/quality/testing/playwright/workflows/Custom_node_n8n_credential.json similarity index 100% rename from packages/testing/playwright/workflows/Custom_node_n8n_credential.json rename to packages/quality/testing/playwright/workflows/Custom_node_n8n_credential.json diff --git a/packages/testing/playwright/workflows/Cyclic_workflow_for_insertion_test.json b/packages/quality/testing/playwright/workflows/Cyclic_workflow_for_insertion_test.json similarity index 100% rename from packages/testing/playwright/workflows/Cyclic_workflow_for_insertion_test.json rename to packages/quality/testing/playwright/workflows/Cyclic_workflow_for_insertion_test.json diff --git a/packages/testing/playwright/workflows/Ecommerce_starter_pack_template_collection.json b/packages/quality/testing/playwright/workflows/Ecommerce_starter_pack_template_collection.json similarity index 100% rename from packages/testing/playwright/workflows/Ecommerce_starter_pack_template_collection.json rename to packages/quality/testing/playwright/workflows/Ecommerce_starter_pack_template_collection.json diff --git a/packages/testing/playwright/workflows/Floating_Nodes.json b/packages/quality/testing/playwright/workflows/Floating_Nodes.json similarity index 100% rename from packages/testing/playwright/workflows/Floating_Nodes.json rename to packages/quality/testing/playwright/workflows/Floating_Nodes.json diff --git a/packages/testing/playwright/workflows/In_memory_vector_store_fake_embeddings.json b/packages/quality/testing/playwright/workflows/In_memory_vector_store_fake_embeddings.json similarity index 100% rename from packages/testing/playwright/workflows/In_memory_vector_store_fake_embeddings.json rename to packages/quality/testing/playwright/workflows/In_memory_vector_store_fake_embeddings.json diff --git a/packages/testing/playwright/workflows/Lots_of_nodes.json b/packages/quality/testing/playwright/workflows/Lots_of_nodes.json similarity index 100% rename from packages/testing/playwright/workflows/Lots_of_nodes.json rename to packages/quality/testing/playwright/workflows/Lots_of_nodes.json diff --git a/packages/testing/playwright/workflows/Manual_wait_set.json b/packages/quality/testing/playwright/workflows/Manual_wait_set.json similarity index 100% rename from packages/testing/playwright/workflows/Manual_wait_set.json rename to packages/quality/testing/playwright/workflows/Manual_wait_set.json diff --git a/packages/testing/playwright/workflows/Multiple_trigger_node_rerun.json b/packages/quality/testing/playwright/workflows/Multiple_trigger_node_rerun.json similarity index 100% rename from packages/testing/playwright/workflows/Multiple_trigger_node_rerun.json rename to packages/quality/testing/playwright/workflows/Multiple_trigger_node_rerun.json diff --git a/packages/testing/playwright/workflows/NDV-debug-generate-data.json b/packages/quality/testing/playwright/workflows/NDV-debug-generate-data.json similarity index 100% rename from packages/testing/playwright/workflows/NDV-debug-generate-data.json rename to packages/quality/testing/playwright/workflows/NDV-debug-generate-data.json diff --git a/packages/testing/playwright/workflows/NDV-test-select-input.json b/packages/quality/testing/playwright/workflows/NDV-test-select-input.json similarity index 100% rename from packages/testing/playwright/workflows/NDV-test-select-input.json rename to packages/quality/testing/playwright/workflows/NDV-test-select-input.json diff --git a/packages/testing/playwright/workflows/Node_IO_filter.json b/packages/quality/testing/playwright/workflows/Node_IO_filter.json similarity index 100% rename from packages/testing/playwright/workflows/Node_IO_filter.json rename to packages/quality/testing/playwright/workflows/Node_IO_filter.json diff --git a/packages/testing/playwright/workflows/Onboarding_workflow.json b/packages/quality/testing/playwright/workflows/Onboarding_workflow.json similarity index 100% rename from packages/testing/playwright/workflows/Onboarding_workflow.json rename to packages/quality/testing/playwright/workflows/Onboarding_workflow.json diff --git a/packages/testing/playwright/workflows/Pinned_webhook_node.json b/packages/quality/testing/playwright/workflows/Pinned_webhook_node.json similarity index 100% rename from packages/testing/playwright/workflows/Pinned_webhook_node.json rename to packages/quality/testing/playwright/workflows/Pinned_webhook_node.json diff --git a/packages/testing/playwright/workflows/Simple_chain_4nodes.json b/packages/quality/testing/playwright/workflows/Simple_chain_4nodes.json similarity index 100% rename from packages/testing/playwright/workflows/Simple_chain_4nodes.json rename to packages/quality/testing/playwright/workflows/Simple_chain_4nodes.json diff --git a/packages/testing/playwright/workflows/Simple_workflow_with_http_node.json b/packages/quality/testing/playwright/workflows/Simple_workflow_with_http_node.json similarity index 100% rename from packages/testing/playwright/workflows/Simple_workflow_with_http_node.json rename to packages/quality/testing/playwright/workflows/Simple_workflow_with_http_node.json diff --git a/packages/testing/playwright/workflows/Subworkflow-debugging-execute-workflow.json b/packages/quality/testing/playwright/workflows/Subworkflow-debugging-execute-workflow.json similarity index 100% rename from packages/testing/playwright/workflows/Subworkflow-debugging-execute-workflow.json rename to packages/quality/testing/playwright/workflows/Subworkflow-debugging-execute-workflow.json diff --git a/packages/testing/playwright/workflows/Subworkflow-extraction-disconnected.json b/packages/quality/testing/playwright/workflows/Subworkflow-extraction-disconnected.json similarity index 100% rename from packages/testing/playwright/workflows/Subworkflow-extraction-disconnected.json rename to packages/quality/testing/playwright/workflows/Subworkflow-extraction-disconnected.json diff --git a/packages/testing/playwright/workflows/Subworkflow-extraction-workflow.json b/packages/quality/testing/playwright/workflows/Subworkflow-extraction-workflow.json similarity index 100% rename from packages/testing/playwright/workflows/Subworkflow-extraction-workflow.json rename to packages/quality/testing/playwright/workflows/Subworkflow-extraction-workflow.json diff --git a/packages/testing/playwright/workflows/Switch_node_with_null_connection.json b/packages/quality/testing/playwright/workflows/Switch_node_with_null_connection.json similarity index 100% rename from packages/testing/playwright/workflows/Switch_node_with_null_connection.json rename to packages/quality/testing/playwright/workflows/Switch_node_with_null_connection.json diff --git a/packages/testing/playwright/workflows/Test-workflow-with-long-parameters.json b/packages/quality/testing/playwright/workflows/Test-workflow-with-long-parameters.json similarity index 100% rename from packages/testing/playwright/workflows/Test-workflow-with-long-parameters.json rename to packages/quality/testing/playwright/workflows/Test-workflow-with-long-parameters.json diff --git a/packages/testing/playwright/workflows/Test_9999_SUG_38.json b/packages/quality/testing/playwright/workflows/Test_9999_SUG_38.json similarity index 100% rename from packages/testing/playwright/workflows/Test_9999_SUG_38.json rename to packages/quality/testing/playwright/workflows/Test_9999_SUG_38.json diff --git a/packages/testing/playwright/workflows/Test_Subworkflow_Get_Weather.json b/packages/quality/testing/playwright/workflows/Test_Subworkflow_Get_Weather.json similarity index 100% rename from packages/testing/playwright/workflows/Test_Subworkflow_Get_Weather.json rename to packages/quality/testing/playwright/workflows/Test_Subworkflow_Get_Weather.json diff --git a/packages/testing/playwright/workflows/Test_Subworkflow_Search_DB.json b/packages/quality/testing/playwright/workflows/Test_Subworkflow_Search_DB.json similarity index 100% rename from packages/testing/playwright/workflows/Test_Subworkflow_Search_DB.json rename to packages/quality/testing/playwright/workflows/Test_Subworkflow_Search_DB.json diff --git a/packages/testing/playwright/workflows/Test_Template_1.json b/packages/quality/testing/playwright/workflows/Test_Template_1.json similarity index 100% rename from packages/testing/playwright/workflows/Test_Template_1.json rename to packages/quality/testing/playwright/workflows/Test_Template_1.json diff --git a/packages/testing/playwright/workflows/Test_Template_2.json b/packages/quality/testing/playwright/workflows/Test_Template_2.json similarity index 100% rename from packages/testing/playwright/workflows/Test_Template_2.json rename to packages/quality/testing/playwright/workflows/Test_Template_2.json diff --git a/packages/testing/playwright/workflows/Test_Workflow_pairedItem_incomplete_manual_bug.json b/packages/quality/testing/playwright/workflows/Test_Workflow_pairedItem_incomplete_manual_bug.json similarity index 100% rename from packages/testing/playwright/workflows/Test_Workflow_pairedItem_incomplete_manual_bug.json rename to packages/quality/testing/playwright/workflows/Test_Workflow_pairedItem_incomplete_manual_bug.json diff --git a/packages/testing/playwright/workflows/Test_ado_1338.json b/packages/quality/testing/playwright/workflows/Test_ado_1338.json similarity index 100% rename from packages/testing/playwright/workflows/Test_ado_1338.json rename to packages/quality/testing/playwright/workflows/Test_ado_1338.json diff --git a/packages/testing/playwright/workflows/Test_ai_1401.json b/packages/quality/testing/playwright/workflows/Test_ai_1401.json similarity index 100% rename from packages/testing/playwright/workflows/Test_ai_1401.json rename to packages/quality/testing/playwright/workflows/Test_ai_1401.json diff --git a/packages/testing/playwright/workflows/Test_chat_partial_execution.json b/packages/quality/testing/playwright/workflows/Test_chat_partial_execution.json similarity index 100% rename from packages/testing/playwright/workflows/Test_chat_partial_execution.json rename to packages/quality/testing/playwright/workflows/Test_chat_partial_execution.json diff --git a/packages/testing/playwright/workflows/Test_ndv_search.json b/packages/quality/testing/playwright/workflows/Test_ndv_search.json similarity index 100% rename from packages/testing/playwright/workflows/Test_ndv_search.json rename to packages/quality/testing/playwright/workflows/Test_ndv_search.json diff --git a/packages/testing/playwright/workflows/Test_ndv_two_branches_of_same_parent_false_populated.json b/packages/quality/testing/playwright/workflows/Test_ndv_two_branches_of_same_parent_false_populated.json similarity index 100% rename from packages/testing/playwright/workflows/Test_ndv_two_branches_of_same_parent_false_populated.json rename to packages/quality/testing/playwright/workflows/Test_ndv_two_branches_of_same_parent_false_populated.json diff --git a/packages/testing/playwright/workflows/Test_workflow-actions_import_nodes_empty_name.json b/packages/quality/testing/playwright/workflows/Test_workflow-actions_import_nodes_empty_name.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow-actions_import_nodes_empty_name.json rename to packages/quality/testing/playwright/workflows/Test_workflow-actions_import_nodes_empty_name.json diff --git a/packages/testing/playwright/workflows/Test_workflow-actions_paste-data.json b/packages/quality/testing/playwright/workflows/Test_workflow-actions_paste-data.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow-actions_paste-data.json rename to packages/quality/testing/playwright/workflows/Test_workflow-actions_paste-data.json diff --git a/packages/testing/playwright/workflows/Test_workflow_4_executions_view.json b/packages/quality/testing/playwright/workflows/Test_workflow_4_executions_view.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_4_executions_view.json rename to packages/quality/testing/playwright/workflows/Test_workflow_4_executions_view.json diff --git a/packages/testing/playwright/workflows/Test_workflow_chat_partial_execution.json b/packages/quality/testing/playwright/workflows/Test_workflow_chat_partial_execution.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_chat_partial_execution.json rename to packages/quality/testing/playwright/workflows/Test_workflow_chat_partial_execution.json diff --git a/packages/testing/playwright/workflows/Test_workflow_filter.json b/packages/quality/testing/playwright/workflows/Test_workflow_filter.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_filter.json rename to packages/quality/testing/playwright/workflows/Test_workflow_filter.json diff --git a/packages/testing/playwright/workflows/Test_workflow_form_switch.json b/packages/quality/testing/playwright/workflows/Test_workflow_form_switch.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_form_switch.json rename to packages/quality/testing/playwright/workflows/Test_workflow_form_switch.json diff --git a/packages/testing/playwright/workflows/Test_workflow_multiple_outputs.json b/packages/quality/testing/playwright/workflows/Test_workflow_multiple_outputs.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_multiple_outputs.json rename to packages/quality/testing/playwright/workflows/Test_workflow_multiple_outputs.json diff --git a/packages/testing/playwright/workflows/Test_workflow_ndv_errors.json b/packages/quality/testing/playwright/workflows/Test_workflow_ndv_errors.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_ndv_errors.json rename to packages/quality/testing/playwright/workflows/Test_workflow_ndv_errors.json diff --git a/packages/testing/playwright/workflows/Test_workflow_ndv_paired_item_single_output.json b/packages/quality/testing/playwright/workflows/Test_workflow_ndv_paired_item_single_output.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_ndv_paired_item_single_output.json rename to packages/quality/testing/playwright/workflows/Test_workflow_ndv_paired_item_single_output.json diff --git a/packages/testing/playwright/workflows/Test_workflow_ndv_run_error.json b/packages/quality/testing/playwright/workflows/Test_workflow_ndv_run_error.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_ndv_run_error.json rename to packages/quality/testing/playwright/workflows/Test_workflow_ndv_run_error.json diff --git a/packages/testing/playwright/workflows/Test_workflow_ndv_version.json b/packages/quality/testing/playwright/workflows/Test_workflow_ndv_version.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_ndv_version.json rename to packages/quality/testing/playwright/workflows/Test_workflow_ndv_version.json diff --git a/packages/testing/playwright/workflows/Test_workflow_partial_execution_v2.json b/packages/quality/testing/playwright/workflows/Test_workflow_partial_execution_v2.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_partial_execution_v2.json rename to packages/quality/testing/playwright/workflows/Test_workflow_partial_execution_v2.json diff --git a/packages/testing/playwright/workflows/Test_workflow_partial_execution_with_missing_credentials.json b/packages/quality/testing/playwright/workflows/Test_workflow_partial_execution_with_missing_credentials.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_partial_execution_with_missing_credentials.json rename to packages/quality/testing/playwright/workflows/Test_workflow_partial_execution_with_missing_credentials.json diff --git a/packages/testing/playwright/workflows/Test_workflow_schema_test.json b/packages/quality/testing/playwright/workflows/Test_workflow_schema_test.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_schema_test.json rename to packages/quality/testing/playwright/workflows/Test_workflow_schema_test.json diff --git a/packages/testing/playwright/workflows/Test_workflow_schema_test_pinned_data.json b/packages/quality/testing/playwright/workflows/Test_workflow_schema_test_pinned_data.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_schema_test_pinned_data.json rename to packages/quality/testing/playwright/workflows/Test_workflow_schema_test_pinned_data.json diff --git a/packages/testing/playwright/workflows/Test_workflow_webhook_with_pin_data.json b/packages/quality/testing/playwright/workflows/Test_workflow_webhook_with_pin_data.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_webhook_with_pin_data.json rename to packages/quality/testing/playwright/workflows/Test_workflow_webhook_with_pin_data.json diff --git a/packages/testing/playwright/workflows/Test_workflow_xml_output.json b/packages/quality/testing/playwright/workflows/Test_workflow_xml_output.json similarity index 100% rename from packages/testing/playwright/workflows/Test_workflow_xml_output.json rename to packages/quality/testing/playwright/workflows/Test_workflow_xml_output.json diff --git a/packages/testing/playwright/workflows/Two_schedule_triggers.json b/packages/quality/testing/playwright/workflows/Two_schedule_triggers.json similarity index 100% rename from packages/testing/playwright/workflows/Two_schedule_triggers.json rename to packages/quality/testing/playwright/workflows/Two_schedule_triggers.json diff --git a/packages/testing/playwright/workflows/Webhook_set_pinned.json b/packages/quality/testing/playwright/workflows/Webhook_set_pinned.json similarity index 100% rename from packages/testing/playwright/workflows/Webhook_set_pinned.json rename to packages/quality/testing/playwright/workflows/Webhook_set_pinned.json diff --git a/packages/testing/playwright/workflows/Webhook_wait_set.json b/packages/quality/testing/playwright/workflows/Webhook_wait_set.json similarity index 100% rename from packages/testing/playwright/workflows/Webhook_wait_set.json rename to packages/quality/testing/playwright/workflows/Webhook_wait_set.json diff --git a/packages/testing/playwright/workflows/Workflow_ai_agent.json b/packages/quality/testing/playwright/workflows/Workflow_ai_agent.json similarity index 100% rename from packages/testing/playwright/workflows/Workflow_ai_agent.json rename to packages/quality/testing/playwright/workflows/Workflow_ai_agent.json diff --git a/packages/testing/playwright/workflows/Workflow_if.json b/packages/quality/testing/playwright/workflows/Workflow_if.json similarity index 100% rename from packages/testing/playwright/workflows/Workflow_if.json rename to packages/quality/testing/playwright/workflows/Workflow_if.json diff --git a/packages/testing/playwright/workflows/Workflow_loop.json b/packages/quality/testing/playwright/workflows/Workflow_loop.json similarity index 100% rename from packages/testing/playwright/workflows/Workflow_loop.json rename to packages/quality/testing/playwright/workflows/Workflow_loop.json diff --git a/packages/testing/playwright/workflows/Workflow_template_write_http_query.json b/packages/quality/testing/playwright/workflows/Workflow_template_write_http_query.json similarity index 100% rename from packages/testing/playwright/workflows/Workflow_template_write_http_query.json rename to packages/quality/testing/playwright/workflows/Workflow_template_write_http_query.json diff --git a/packages/testing/playwright/workflows/Workflow_wait_for_webhook.json b/packages/quality/testing/playwright/workflows/Workflow_wait_for_webhook.json similarity index 100% rename from packages/testing/playwright/workflows/Workflow_wait_for_webhook.json rename to packages/quality/testing/playwright/workflows/Workflow_wait_for_webhook.json diff --git a/packages/testing/playwright/workflows/ado-5857-child.json b/packages/quality/testing/playwright/workflows/ado-5857-child.json similarity index 100% rename from packages/testing/playwright/workflows/ado-5857-child.json rename to packages/quality/testing/playwright/workflows/ado-5857-child.json diff --git a/packages/testing/playwright/workflows/ado-5857-parent.json b/packages/quality/testing/playwright/workflows/ado-5857-parent.json similarity index 100% rename from packages/testing/playwright/workflows/ado-5857-parent.json rename to packages/quality/testing/playwright/workflows/ado-5857-parent.json diff --git a/packages/testing/playwright/workflows/ai_assistant_test_workflow.json b/packages/quality/testing/playwright/workflows/ai_assistant_test_workflow.json similarity index 100% rename from packages/testing/playwright/workflows/ai_assistant_test_workflow.json rename to packages/quality/testing/playwright/workflows/ai_assistant_test_workflow.json diff --git a/packages/testing/playwright/workflows/all_templates_search_response.json b/packages/quality/testing/playwright/workflows/all_templates_search_response.json similarity index 100% rename from packages/testing/playwright/workflows/all_templates_search_response.json rename to packages/quality/testing/playwright/workflows/all_templates_search_response.json diff --git a/packages/testing/playwright/workflows/cat-1801-child.json b/packages/quality/testing/playwright/workflows/cat-1801-child.json similarity index 100% rename from packages/testing/playwright/workflows/cat-1801-child.json rename to packages/quality/testing/playwright/workflows/cat-1801-child.json diff --git a/packages/testing/playwright/workflows/cat-1801-parent.json b/packages/quality/testing/playwright/workflows/cat-1801-parent.json similarity index 100% rename from packages/testing/playwright/workflows/cat-1801-parent.json rename to packages/quality/testing/playwright/workflows/cat-1801-parent.json diff --git a/packages/testing/playwright/workflows/cat-1854-wait-execution-history.json b/packages/quality/testing/playwright/workflows/cat-1854-wait-execution-history.json similarity index 100% rename from packages/testing/playwright/workflows/cat-1854-wait-execution-history.json rename to packages/quality/testing/playwright/workflows/cat-1854-wait-execution-history.json diff --git a/packages/testing/playwright/workflows/cat-1929-child-two-waits.json b/packages/quality/testing/playwright/workflows/cat-1929-child-two-waits.json similarity index 100% rename from packages/testing/playwright/workflows/cat-1929-child-two-waits.json rename to packages/quality/testing/playwright/workflows/cat-1929-child-two-waits.json diff --git a/packages/testing/playwright/workflows/cat-1929-parent.json b/packages/quality/testing/playwright/workflows/cat-1929-parent.json similarity index 100% rename from packages/testing/playwright/workflows/cat-1929-parent.json rename to packages/quality/testing/playwright/workflows/cat-1929-parent.json diff --git a/packages/testing/playwright/workflows/cat-2662-child.json b/packages/quality/testing/playwright/workflows/cat-2662-child.json similarity index 100% rename from packages/testing/playwright/workflows/cat-2662-child.json rename to packages/quality/testing/playwright/workflows/cat-2662-child.json diff --git a/packages/testing/playwright/workflows/cat-2662-parent.json b/packages/quality/testing/playwright/workflows/cat-2662-parent.json similarity index 100% rename from packages/testing/playwright/workflows/cat-2662-parent.json rename to packages/quality/testing/playwright/workflows/cat-2662-parent.json diff --git a/packages/testing/playwright/workflows/cat-3263-child.json b/packages/quality/testing/playwright/workflows/cat-3263-child.json similarity index 100% rename from packages/testing/playwright/workflows/cat-3263-child.json rename to packages/quality/testing/playwright/workflows/cat-3263-child.json diff --git a/packages/testing/playwright/workflows/chat-hub-workflow-agent.json b/packages/quality/testing/playwright/workflows/chat-hub-workflow-agent.json similarity index 100% rename from packages/testing/playwright/workflows/chat-hub-workflow-agent.json rename to packages/quality/testing/playwright/workflows/chat-hub-workflow-agent.json diff --git a/packages/testing/playwright/workflows/chat-send-and-wait.json b/packages/quality/testing/playwright/workflows/chat-send-and-wait.json similarity index 100% rename from packages/testing/playwright/workflows/chat-send-and-wait.json rename to packages/quality/testing/playwright/workflows/chat-send-and-wait.json diff --git a/packages/testing/playwright/workflows/evaluations_loop.json b/packages/quality/testing/playwright/workflows/evaluations_loop.json similarity index 100% rename from packages/testing/playwright/workflows/evaluations_loop.json rename to packages/quality/testing/playwright/workflows/evaluations_loop.json diff --git a/packages/testing/playwright/workflows/execute-previous-nodes.json b/packages/quality/testing/playwright/workflows/execute-previous-nodes.json similarity index 100% rename from packages/testing/playwright/workflows/execute-previous-nodes.json rename to packages/quality/testing/playwright/workflows/execute-previous-nodes.json diff --git a/packages/testing/playwright/workflows/expression_with_paired_item_in_multi_input_node.json b/packages/quality/testing/playwright/workflows/expression_with_paired_item_in_multi_input_node.json similarity index 100% rename from packages/testing/playwright/workflows/expression_with_paired_item_in_multi_input_node.json rename to packages/quality/testing/playwright/workflows/expression_with_paired_item_in_multi_input_node.json diff --git a/packages/testing/playwright/workflows/hitl-wrapped-tool.json b/packages/quality/testing/playwright/workflows/hitl-wrapped-tool.json similarity index 100% rename from packages/testing/playwright/workflows/hitl-wrapped-tool.json rename to packages/quality/testing/playwright/workflows/hitl-wrapped-tool.json diff --git a/packages/testing/playwright/workflows/large.json b/packages/quality/testing/playwright/workflows/large.json similarity index 100% rename from packages/testing/playwright/workflows/large.json rename to packages/quality/testing/playwright/workflows/large.json diff --git a/packages/testing/playwright/workflows/manual-partial-execution.json b/packages/quality/testing/playwright/workflows/manual-partial-execution.json similarity index 100% rename from packages/testing/playwright/workflows/manual-partial-execution.json rename to packages/quality/testing/playwright/workflows/manual-partial-execution.json diff --git a/packages/testing/playwright/workflows/manual-trigger-with-code.json b/packages/quality/testing/playwright/workflows/manual-trigger-with-code.json similarity index 100% rename from packages/testing/playwright/workflows/manual-trigger-with-code.json rename to packages/quality/testing/playwright/workflows/manual-trigger-with-code.json diff --git a/packages/testing/playwright/workflows/manual.json b/packages/quality/testing/playwright/workflows/manual.json similarity index 100% rename from packages/testing/playwright/workflows/manual.json rename to packages/quality/testing/playwright/workflows/manual.json diff --git a/packages/testing/playwright/workflows/mcp-service/mcp-available-basic.json b/packages/quality/testing/playwright/workflows/mcp-service/mcp-available-basic.json similarity index 100% rename from packages/testing/playwright/workflows/mcp-service/mcp-available-basic.json rename to packages/quality/testing/playwright/workflows/mcp-service/mcp-available-basic.json diff --git a/packages/testing/playwright/workflows/mcp-service/mcp-available-webhook.json b/packages/quality/testing/playwright/workflows/mcp-service/mcp-available-webhook.json similarity index 100% rename from packages/testing/playwright/workflows/mcp-service/mcp-available-webhook.json rename to packages/quality/testing/playwright/workflows/mcp-service/mcp-available-webhook.json diff --git a/packages/testing/playwright/workflows/mcp-service/mcp-unavailable.json b/packages/quality/testing/playwright/workflows/mcp-service/mcp-unavailable.json similarity index 100% rename from packages/testing/playwright/workflows/mcp-service/mcp-unavailable.json rename to packages/quality/testing/playwright/workflows/mcp-service/mcp-unavailable.json diff --git a/packages/testing/playwright/workflows/mcp-trigger/mcp-trigger-basic.json b/packages/quality/testing/playwright/workflows/mcp-trigger/mcp-trigger-basic.json similarity index 100% rename from packages/testing/playwright/workflows/mcp-trigger/mcp-trigger-basic.json rename to packages/quality/testing/playwright/workflows/mcp-trigger/mcp-trigger-basic.json diff --git a/packages/testing/playwright/workflows/mcp-trigger/mcp-trigger-bearer-auth.json b/packages/quality/testing/playwright/workflows/mcp-trigger/mcp-trigger-bearer-auth.json similarity index 100% rename from packages/testing/playwright/workflows/mcp-trigger/mcp-trigger-bearer-auth.json rename to packages/quality/testing/playwright/workflows/mcp-trigger/mcp-trigger-bearer-auth.json diff --git a/packages/testing/playwright/workflows/mcp-trigger/mcp-trigger-header-auth.json b/packages/quality/testing/playwright/workflows/mcp-trigger/mcp-trigger-header-auth.json similarity index 100% rename from packages/testing/playwright/workflows/mcp-trigger/mcp-trigger-header-auth.json rename to packages/quality/testing/playwright/workflows/mcp-trigger/mcp-trigger-header-auth.json diff --git a/packages/testing/playwright/workflows/mcp-trigger/mcp-trigger-multi-tool.json b/packages/quality/testing/playwright/workflows/mcp-trigger/mcp-trigger-multi-tool.json similarity index 100% rename from packages/testing/playwright/workflows/mcp-trigger/mcp-trigger-multi-tool.json rename to packages/quality/testing/playwright/workflows/mcp-trigger/mcp-trigger-multi-tool.json diff --git a/packages/testing/playwright/workflows/mcp-trigger/mcp-trigger-n8n-oauth2-private-cred.json b/packages/quality/testing/playwright/workflows/mcp-trigger/mcp-trigger-n8n-oauth2-private-cred.json similarity index 100% rename from packages/testing/playwright/workflows/mcp-trigger/mcp-trigger-n8n-oauth2-private-cred.json rename to packages/quality/testing/playwright/workflows/mcp-trigger/mcp-trigger-n8n-oauth2-private-cred.json diff --git a/packages/testing/playwright/workflows/merge_node_inputs_paired_items.json b/packages/quality/testing/playwright/workflows/merge_node_inputs_paired_items.json similarity index 100% rename from packages/testing/playwright/workflows/merge_node_inputs_paired_items.json rename to packages/quality/testing/playwright/workflows/merge_node_inputs_paired_items.json diff --git a/packages/testing/playwright/workflows/multi-branch-data-transform.json b/packages/quality/testing/playwright/workflows/multi-branch-data-transform.json similarity index 100% rename from packages/testing/playwright/workflows/multi-branch-data-transform.json rename to packages/quality/testing/playwright/workflows/multi-branch-data-transform.json diff --git a/packages/testing/playwright/workflows/open_node_creator_for_connection.json b/packages/quality/testing/playwright/workflows/open_node_creator_for_connection.json similarity index 100% rename from packages/testing/playwright/workflows/open_node_creator_for_connection.json rename to packages/quality/testing/playwright/workflows/open_node_creator_for_connection.json diff --git a/packages/testing/playwright/workflows/partial-execution-disabled-pinned-parent.json b/packages/quality/testing/playwright/workflows/partial-execution-disabled-pinned-parent.json similarity index 100% rename from packages/testing/playwright/workflows/partial-execution-disabled-pinned-parent.json rename to packages/quality/testing/playwright/workflows/partial-execution-disabled-pinned-parent.json diff --git a/packages/testing/playwright/workflows/sales_templates_search_response.json b/packages/quality/testing/playwright/workflows/sales_templates_search_response.json similarity index 100% rename from packages/testing/playwright/workflows/sales_templates_search_response.json rename to packages/quality/testing/playwright/workflows/sales_templates_search_response.json diff --git a/packages/testing/playwright/workflows/schedule-trigger-with-set-nodes.json b/packages/quality/testing/playwright/workflows/schedule-trigger-with-set-nodes.json similarity index 100% rename from packages/testing/playwright/workflows/schedule-trigger-with-set-nodes.json rename to packages/quality/testing/playwright/workflows/schedule-trigger-with-set-nodes.json diff --git a/packages/testing/playwright/workflows/send-and-wait-approval.json b/packages/quality/testing/playwright/workflows/send-and-wait-approval.json similarity index 100% rename from packages/testing/playwright/workflows/send-and-wait-approval.json rename to packages/quality/testing/playwright/workflows/send-and-wait-approval.json diff --git a/packages/testing/playwright/workflows/send-and-wait-form.json b/packages/quality/testing/playwright/workflows/send-and-wait-form.json similarity index 100% rename from packages/testing/playwright/workflows/send-and-wait-form.json rename to packages/quality/testing/playwright/workflows/send-and-wait-form.json diff --git a/packages/testing/playwright/workflows/simple-webhook-test.json b/packages/quality/testing/playwright/workflows/simple-webhook-test.json similarity index 100% rename from packages/testing/playwright/workflows/simple-webhook-test.json rename to packages/quality/testing/playwright/workflows/simple-webhook-test.json diff --git a/packages/testing/playwright/workflows/subworkflow-noop-child.json b/packages/quality/testing/playwright/workflows/subworkflow-noop-child.json similarity index 100% rename from packages/testing/playwright/workflows/subworkflow-noop-child.json rename to packages/quality/testing/playwright/workflows/subworkflow-noop-child.json diff --git a/packages/testing/playwright/workflows/subworkflow-parent-no-wait.json b/packages/quality/testing/playwright/workflows/subworkflow-parent-no-wait.json similarity index 100% rename from packages/testing/playwright/workflows/subworkflow-parent-no-wait.json rename to packages/quality/testing/playwright/workflows/subworkflow-parent-no-wait.json diff --git a/packages/testing/playwright/workflows/subworkflow-version-child.json b/packages/quality/testing/playwright/workflows/subworkflow-version-child.json similarity index 100% rename from packages/testing/playwright/workflows/subworkflow-version-child.json rename to packages/quality/testing/playwright/workflows/subworkflow-version-child.json diff --git a/packages/testing/playwright/workflows/subworkflow-version-parent.json b/packages/quality/testing/playwright/workflows/subworkflow-version-parent.json similarity index 100% rename from packages/testing/playwright/workflows/subworkflow-version-parent.json rename to packages/quality/testing/playwright/workflows/subworkflow-version-parent.json diff --git a/packages/testing/playwright/workflows/subworkflow-wait-child.json b/packages/quality/testing/playwright/workflows/subworkflow-wait-child.json similarity index 100% rename from packages/testing/playwright/workflows/subworkflow-wait-child.json rename to packages/quality/testing/playwright/workflows/subworkflow-wait-child.json diff --git a/packages/testing/playwright/workflows/subworkflow-waiting-parent-no-child-wait.json b/packages/quality/testing/playwright/workflows/subworkflow-waiting-parent-no-child-wait.json similarity index 100% rename from packages/testing/playwright/workflows/subworkflow-waiting-parent-no-child-wait.json rename to packages/quality/testing/playwright/workflows/subworkflow-waiting-parent-no-child-wait.json diff --git a/packages/testing/playwright/workflows/test_pdf_workflow.json b/packages/quality/testing/playwright/workflows/test_pdf_workflow.json similarity index 100% rename from packages/testing/playwright/workflows/test_pdf_workflow.json rename to packages/quality/testing/playwright/workflows/test_pdf_workflow.json diff --git a/packages/testing/playwright/workflows/wait-form-resume.json b/packages/quality/testing/playwright/workflows/wait-form-resume.json similarity index 100% rename from packages/testing/playwright/workflows/wait-form-resume.json rename to packages/quality/testing/playwright/workflows/wait-form-resume.json diff --git a/packages/testing/playwright/workflows/wait-webhook-deadline.json b/packages/quality/testing/playwright/workflows/wait-webhook-deadline.json similarity index 100% rename from packages/testing/playwright/workflows/wait-webhook-deadline.json rename to packages/quality/testing/playwright/workflows/wait-webhook-deadline.json diff --git a/packages/testing/playwright/workflows/wait-webhook-resume.json b/packages/quality/testing/playwright/workflows/wait-webhook-resume.json similarity index 100% rename from packages/testing/playwright/workflows/wait-webhook-resume.json rename to packages/quality/testing/playwright/workflows/wait-webhook-resume.json diff --git a/packages/testing/playwright/workflows/webhook-isolate-skip-expression.json b/packages/quality/testing/playwright/workflows/webhook-isolate-skip-expression.json similarity index 100% rename from packages/testing/playwright/workflows/webhook-isolate-skip-expression.json rename to packages/quality/testing/playwright/workflows/webhook-isolate-skip-expression.json diff --git a/packages/testing/playwright/workflows/webhook-isolate-skip-static.json b/packages/quality/testing/playwright/workflows/webhook-isolate-skip-static.json similarity index 100% rename from packages/testing/playwright/workflows/webhook-isolate-skip-static.json rename to packages/quality/testing/playwright/workflows/webhook-isolate-skip-static.json diff --git a/packages/testing/playwright/workflows/webhook-misconfiguration-test.json b/packages/quality/testing/playwright/workflows/webhook-misconfiguration-test.json similarity index 100% rename from packages/testing/playwright/workflows/webhook-misconfiguration-test.json rename to packages/quality/testing/playwright/workflows/webhook-misconfiguration-test.json diff --git a/packages/testing/playwright/workflows/webhook-origin-isolation.json b/packages/quality/testing/playwright/workflows/webhook-origin-isolation.json similarity index 100% rename from packages/testing/playwright/workflows/webhook-origin-isolation.json rename to packages/quality/testing/playwright/workflows/webhook-origin-isolation.json diff --git a/packages/testing/playwright/workflows/webhook-publish-local-conflict.json b/packages/quality/testing/playwright/workflows/webhook-publish-local-conflict.json similarity index 100% rename from packages/testing/playwright/workflows/webhook-publish-local-conflict.json rename to packages/quality/testing/playwright/workflows/webhook-publish-local-conflict.json diff --git a/packages/testing/playwright/workflows/webhook-publish-no-conflicts.json b/packages/quality/testing/playwright/workflows/webhook-publish-no-conflicts.json similarity index 100% rename from packages/testing/playwright/workflows/webhook-publish-no-conflicts.json rename to packages/quality/testing/playwright/workflows/webhook-publish-no-conflicts.json diff --git a/packages/testing/playwright/workflows/webhook-publish-with-wait-node.json b/packages/quality/testing/playwright/workflows/webhook-publish-with-wait-node.json similarity index 100% rename from packages/testing/playwright/workflows/webhook-publish-with-wait-node.json rename to packages/quality/testing/playwright/workflows/webhook-publish-with-wait-node.json diff --git a/packages/testing/playwright/workflows/workflow-with-unknown-credentials.json b/packages/quality/testing/playwright/workflows/workflow-with-unknown-credentials.json similarity index 100% rename from packages/testing/playwright/workflows/workflow-with-unknown-credentials.json rename to packages/quality/testing/playwright/workflows/workflow-with-unknown-credentials.json diff --git a/packages/quality/testing/test-impact/README.md b/packages/quality/testing/test-impact/README.md new file mode 100644 index 00000000000..2a9467b54bd --- /dev/null +++ b/packages/quality/testing/test-impact/README.md @@ -0,0 +1,17 @@ +# Select affected tests + +`@n8n/test-impact` is the framework-independent library for coverage mapping, dependency selection, and shard distribution. It does not provide a standalone CLI. + +To inspect E2E distribution from the repository root, run the Playwright wrapper: + +```bash +pnpm --filter n8n-playwright distribution:count +``` + +To inspect the selection for a pull request, pass `--pr=` after `--`: + +```bash +pnpm --filter n8n-playwright distribution:count -- --pr= +``` + +See the [Playwright orchestration guide](../playwright/docs/ORCHESTRATION.md) for selection and shard commands. Use the exports in [`src/index.ts`](src/index.ts) when you change the framework-independent selector. diff --git a/packages/testing/test-impact/eslint.config.mjs b/packages/quality/testing/test-impact/eslint.config.mjs similarity index 100% rename from packages/testing/test-impact/eslint.config.mjs rename to packages/quality/testing/test-impact/eslint.config.mjs diff --git a/packages/testing/test-impact/oxlint.config.mts b/packages/quality/testing/test-impact/oxlint.config.mts similarity index 100% rename from packages/testing/test-impact/oxlint.config.mts rename to packages/quality/testing/test-impact/oxlint.config.mts diff --git a/packages/testing/test-impact/package.json b/packages/quality/testing/test-impact/package.json similarity index 100% rename from packages/testing/test-impact/package.json rename to packages/quality/testing/test-impact/package.json diff --git a/packages/testing/test-impact/src/changes.test.ts b/packages/quality/testing/test-impact/src/changes.test.ts similarity index 98% rename from packages/testing/test-impact/src/changes.test.ts rename to packages/quality/testing/test-impact/src/changes.test.ts index c8e8b1a8b77..74e42bba2ff 100644 --- a/packages/testing/test-impact/src/changes.test.ts +++ b/packages/quality/testing/test-impact/src/changes.test.ts @@ -32,7 +32,7 @@ describe('isNonImpactful', () => { 'scripts/release/build.mjs', 'turbo.json', 'biome.jsonc', - 'packages/testing/test-impact/vitest.config.ts', + 'packages/quality/testing/test-impact/vitest.config.ts', '.eslintrc.js', ])('treats %s as non-impactful', (file) => { expect(isNonImpactful(file)).toBe(true); @@ -85,7 +85,7 @@ describe('forcesBroad', () => { it.each([ 'docker/images/n8n/Dockerfile', 'docker/compose/base.yml', - 'packages/testing/containers/services/n8n.ts', + 'packages/quality/environments/containers/services/n8n.ts', 'packages/cli/Dockerfile', 'Dockerfile.dev', 'packages/cli/worker.Dockerfile', @@ -100,7 +100,7 @@ describe('forcesBroad', () => { it.each([ 'packages/cli/src/server.ts', - 'packages/testing/playwright/tests/e2e/x.spec.ts', + 'packages/quality/testing/playwright/tests/e2e/x.spec.ts', 'packages/nodes-base/nodes/If/If.node.ts', // A unit test beside the registry can't change the runtime — stays scoped. 'packages/@n8n/backend-common/src/modules/__tests__/module-registry.test.ts', diff --git a/packages/testing/test-impact/src/changes.ts b/packages/quality/testing/test-impact/src/changes.ts similarity index 99% rename from packages/testing/test-impact/src/changes.ts rename to packages/quality/testing/test-impact/src/changes.ts index 2fc1307c322..365f44e6212 100644 --- a/packages/testing/test-impact/src/changes.ts +++ b/packages/quality/testing/test-impact/src/changes.ts @@ -75,7 +75,7 @@ export function filterImpactfulChanges(files: string[]): string[] { const FORCES_BROAD: Array<(f: string) => boolean> = [ (f) => f.startsWith('docker/'), (f) => /(^|\/)Dockerfile(\.|$)|\.Dockerfile$/.test(f), - (f) => f.startsWith('packages/testing/containers/'), + (f) => f.startsWith('packages/quality/environments/containers/'), (f) => f.startsWith('packages/nodes-base/credentials/'), (f) => /^packages\/@n8n\/backend-common\/src\/modules\/[^/]+\.ts$/.test(f), ]; diff --git a/packages/testing/test-impact/src/dep-graph.test.ts b/packages/quality/testing/test-impact/src/dep-graph.test.ts similarity index 100% rename from packages/testing/test-impact/src/dep-graph.test.ts rename to packages/quality/testing/test-impact/src/dep-graph.test.ts diff --git a/packages/testing/test-impact/src/dep-graph.ts b/packages/quality/testing/test-impact/src/dep-graph.ts similarity index 100% rename from packages/testing/test-impact/src/dep-graph.ts rename to packages/quality/testing/test-impact/src/dep-graph.ts diff --git a/packages/testing/test-impact/src/impact-map.test.ts b/packages/quality/testing/test-impact/src/impact-map.test.ts similarity index 100% rename from packages/testing/test-impact/src/impact-map.test.ts rename to packages/quality/testing/test-impact/src/impact-map.test.ts diff --git a/packages/testing/test-impact/src/impact-map.ts b/packages/quality/testing/test-impact/src/impact-map.ts similarity index 100% rename from packages/testing/test-impact/src/impact-map.ts rename to packages/quality/testing/test-impact/src/impact-map.ts diff --git a/packages/testing/test-impact/src/index.ts b/packages/quality/testing/test-impact/src/index.ts similarity index 100% rename from packages/testing/test-impact/src/index.ts rename to packages/quality/testing/test-impact/src/index.ts diff --git a/packages/testing/test-impact/src/map-build.test.ts b/packages/quality/testing/test-impact/src/map-build.test.ts similarity index 100% rename from packages/testing/test-impact/src/map-build.test.ts rename to packages/quality/testing/test-impact/src/map-build.test.ts diff --git a/packages/testing/test-impact/src/map-build.ts b/packages/quality/testing/test-impact/src/map-build.ts similarity index 100% rename from packages/testing/test-impact/src/map-build.ts rename to packages/quality/testing/test-impact/src/map-build.ts diff --git a/packages/testing/test-impact/src/select.test.ts b/packages/quality/testing/test-impact/src/select.test.ts similarity index 100% rename from packages/testing/test-impact/src/select.test.ts rename to packages/quality/testing/test-impact/src/select.test.ts diff --git a/packages/testing/test-impact/src/select.ts b/packages/quality/testing/test-impact/src/select.ts similarity index 100% rename from packages/testing/test-impact/src/select.ts rename to packages/quality/testing/test-impact/src/select.ts diff --git a/packages/testing/test-impact/src/select/coverage-map-strategy.ts b/packages/quality/testing/test-impact/src/select/coverage-map-strategy.ts similarity index 100% rename from packages/testing/test-impact/src/select/coverage-map-strategy.ts rename to packages/quality/testing/test-impact/src/select/coverage-map-strategy.ts diff --git a/packages/testing/test-impact/src/select/dep-graph-strategy.ts b/packages/quality/testing/test-impact/src/select/dep-graph-strategy.ts similarity index 100% rename from packages/testing/test-impact/src/select/dep-graph-strategy.ts rename to packages/quality/testing/test-impact/src/select/dep-graph-strategy.ts diff --git a/packages/testing/test-impact/src/select/pipeline.test.ts b/packages/quality/testing/test-impact/src/select/pipeline.test.ts similarity index 100% rename from packages/testing/test-impact/src/select/pipeline.test.ts rename to packages/quality/testing/test-impact/src/select/pipeline.test.ts diff --git a/packages/testing/test-impact/src/select/pipeline.ts b/packages/quality/testing/test-impact/src/select/pipeline.ts similarity index 100% rename from packages/testing/test-impact/src/select/pipeline.ts rename to packages/quality/testing/test-impact/src/select/pipeline.ts diff --git a/packages/testing/test-impact/src/select/strategy.ts b/packages/quality/testing/test-impact/src/select/strategy.ts similarity index 100% rename from packages/testing/test-impact/src/select/strategy.ts rename to packages/quality/testing/test-impact/src/select/strategy.ts diff --git a/packages/testing/test-impact/src/shard-distributor.test.ts b/packages/quality/testing/test-impact/src/shard-distributor.test.ts similarity index 100% rename from packages/testing/test-impact/src/shard-distributor.test.ts rename to packages/quality/testing/test-impact/src/shard-distributor.test.ts diff --git a/packages/testing/test-impact/src/shard-distributor.ts b/packages/quality/testing/test-impact/src/shard-distributor.ts similarity index 100% rename from packages/testing/test-impact/src/shard-distributor.ts rename to packages/quality/testing/test-impact/src/shard-distributor.ts diff --git a/packages/testing/test-impact/src/types.ts b/packages/quality/testing/test-impact/src/types.ts similarity index 100% rename from packages/testing/test-impact/src/types.ts rename to packages/quality/testing/test-impact/src/types.ts diff --git a/packages/testing/test-impact/tsconfig.json b/packages/quality/testing/test-impact/tsconfig.json similarity index 91% rename from packages/testing/test-impact/tsconfig.json rename to packages/quality/testing/test-impact/tsconfig.json index 0d590513e5a..b1223319636 100644 --- a/packages/testing/test-impact/tsconfig.json +++ b/packages/quality/testing/test-impact/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.json", + "extends": "../../../../tsconfig.json", "compilerOptions": { "outDir": "dist", "rootDir": "src", diff --git a/packages/testing/test-impact/vitest.config.ts b/packages/quality/testing/test-impact/vitest.config.ts similarity index 100% rename from packages/testing/test-impact/vitest.config.ts rename to packages/quality/testing/test-impact/vitest.config.ts diff --git a/packages/testing/README.md b/packages/testing/README.md deleted file mode 100644 index cc391eaf167..00000000000 --- a/packages/testing/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# packages/testing - -n8n's **test platform** — the infrastructure that decides what to test, runs it, and measures it. Each package is one concern; they compose rather than overlap. - -## Packages - -| Package | Name | Purpose | Entry point | Consumed by | -|---|---|---|---|---| -| **rules-engine** | `@n8n/rules-engine` | Generic, typed rules engine for static-analysis tools (register → run → report). The shared substrate. | library | janitor, code-health | -| **test-impact** | `@n8n/test-impact` | Test Impact Analysis: build the coverage→impact map, select impacted specs, distribute them across shards. Framework-agnostic. | library | janitor (CLI), playwright | -| **janitor** | `@n8n/playwright-janitor` | Static analysis + architecture enforcement for the Playwright suite; also hosts the impact/orchestrate CLI used by CI. | `janitor` CLI | playwright, CI | -| **code-health** | `@n8n/code-health` | Static analysis for monorepo dependency hygiene. | `code-health` CLI | CI | -| **containers** | `n8n-containers` | Composable Docker stack for tests (sqlite / postgres / queue / multi-main / observability / kafka …). | `stack:*` scripts | playwright, local dev | -| **playwright** | `n8n-playwright` | The E2E harness — page objects, composables, fixtures, and the shard distributor that drives CI. | `test:*` scripts | CI, local dev | -| **performance** | `@n8n/performance` | Microbenchmarks for critical code paths (`bench`, baseline, compare). | `bench:*` scripts | CI (nightly), local | - -## How they fit together - -```mermaid -graph TD - rules[rules-engine
rules substrate] --> janitor[janitor
PW lint + impact CLI] - rules --> codehealth[code-health
monorepo deps] - impact[test-impact
select + distribute] --> janitor - impact --> playwright[playwright
E2E harness] - janitor --> playwright - containers[containers
Docker stacks] --> playwright - performance[performance
benchmarks] - - classDef substrate fill:#eef,stroke:#88a; - class rules,impact substrate; -``` - -- **Static-analysis lane:** `rules-engine` (substrate) → `janitor` (Playwright architecture) and `code-health` (monorepo deps). -- **Selection lane:** `test-impact` (coverage map → select → distribute) feeds the janitor CLI and the playwright shard distributor. -- **Execution lane:** `playwright` runs E2E against `containers`-provided stacks. -- **Performance lane:** `performance` is standalone (benchmarks). - -## Where to look (quick nav for humans + agents) - -| I want to… | Go to | -|---|---| -| change which E2E specs a PR runs (impact map, selection, sharding) | `test-impact/` (+ `janitor` CLI `select` / `distribute`) | -| add/modify an architecture-lint rule for tests | `janitor/src/rules/` (engine: `rules-engine/`) | -| write or fix an E2E test, page object, or fixture | `playwright/` (see its `AGENTS.md`) | -| spin a DB/queue/multi-main stack for a test | `containers/` (`stack:*`) | -| add a microbenchmark | `performance/` | -| enforce a monorepo dependency rule | `code-health/` | - -Per-package detail lives in each package's own `README.md` (and `playwright/AGENTS.md`). diff --git a/packages/testing/playwright/AGENTS.md b/packages/testing/playwright/AGENTS.md deleted file mode 100644 index 3dd4e9bf771..00000000000 --- a/packages/testing/playwright/AGENTS.md +++ /dev/null @@ -1,577 +0,0 @@ -# AGENTS.md - -## Purpose - -Playwright is n8n's general-purpose test orchestrator. Do not assume that every -Playwright test drives the editor UI. This package also owns API tests, container -topologies, process lifecycle tests, infrastructure validation, performance -benchmarks, evaluation suites, and browser-backed harness contracts. - -Choose the suite by the behavior under test: - -| Behavior | Location | Runner | -|----------|----------|--------| -| Product UI or API journey | `tests/e2e/` | `test:local` or a container project | -| Database, queue, multi-main, encryption, or process lifecycle | `tests/infrastructure/` | `test:infrastructure` or the named project | -| Infrastructure throughput and resource use | `tests/infrastructure/benchmarks/` | `test:benchmark` | -| Browser and canvas performance | `tests/performance/` | `test:performance` | -| Fixture or harness contract | `tests/framework/` | `test:unit` or `test:harness` | -| Evaluation scenario | Existing evaluation directory | Its named evaluation project | - -Use Playwright when the test needs its worker lifecycle, fixtures, retries, -artifacts, project matrix, browser context, or managed container stack. Use -Vitest for browser-free unit and integration tests that need none of these. - -## Commands - -```bash -# Run tests locally -pnpm --filter=n8n-playwright test:local -pnpm --filter=n8n-playwright test:local tests/e2e/credentials/crud.spec.ts - -# Run with container capabilities (requires pnpm build:docker first) -pnpm --filter=n8n-playwright test:container:sqlite tests/e2e/auth/password-reset.spec.ts - -# Run one infrastructure benchmark -pnpm --filter=n8n-playwright test:benchmark tests/infrastructure/benchmarks/kafka/single-instance-ceiling.spec.ts - -# Lint and typecheck -pnpm --filter=n8n-playwright lint -pnpm --filter=n8n-playwright typecheck -``` - -Always trim output: `--reporter=list 2>&1 | tail -50` - -## Test Layout - -Product Playwright tests live under `tests/`. Keep product E2E specs under -`tests/e2e/` and keep infrastructure, performance, evaluation, and related -suites in their existing directories under `tests/`. - -Framework and harness tests live under `tests/framework/`. Use this directory -for tests of fixtures, startup lifecycle, diagnostics, telemetry, and harness -contracts. These tests are not product E2E specs and must not be placed under -`tests/e2e/`. - -Framework unit tests use the package Vitest configuration. Browser-backed -harness contract tests use `vitest.harness.config.ts` so they stay separate -from browser-free unit tests. - -## Test Maintenance (Janitor) - -Static analysis for Playwright test architecture. Catches problems before they spread. - -> **CRITICAL: Always use TCR for code changes.** -> When janitor identifies violations and you fix them, use `pnpm janitor tcr --execute` to safely commit. Never manually commit janitor-related fixes - TCR ensures tests pass before the commit lands. - -### Golden Rules - -1. **Analysis only?** Run `pnpm janitor` (no TCR needed) -2. **Making code changes?** Use TCR: `pnpm janitor tcr --execute -m="chore: ..."` -3. **Never** manually `git commit` janitor-related fixes - always go through TCR -4. **Never** modify `.janitor-baseline.json` via TCR - baseline updates must be done manually - -### When to Use - -| User Says | Intent | Approach | -|-----------|--------|----------| -| "Clean up the test codebase" | Incremental cleanup | Create baseline first, then use `--max-diff-lines=500` for small PRs. | -| "Start tracking violations" | Enable incremental cleanup | Run `janitor baseline` to snapshot current state, commit `.janitor-baseline.json`. | -| "Add a test for X" | New test following patterns | After writing, run janitor to verify architecture compliance. | -| "Fix architecture drift" | Enforce layered architecture | Run `selector-purity` and `no-page-in-flow` rules. | -| "Find dead code" | Remove unused methods | Run `dead-code` rule with `--fix --write` for auto-removal. | -| "Find copy-paste code" | Detect duplicates | Run `duplicate-logic` rule to find structural duplicates. | -| "This file is messy" | Targeted cleanup | Analyze specific file, fix issues, TCR to safely commit. | -| "Refactor this page object" | Safe refactoring | Use TCR - changes commit if tests pass, revert if they fail. | -| "What tests would break?" | Impact analysis | Run `impact` command before changing shared code. | -| "Prepare for PR" | Pre-commit check | Run janitor on changed files to catch violations early. | - -### Architecture Rules - -The janitor enforces a layered architecture: - -``` -Tests → Flows/Composables → Page Objects → Components → Playwright API -``` - -| Rule | What It Catches | -|------|-----------------| -| `selector-purity` | Raw locators in tests/flows: `page.getByTestId()`, `someLocator.locator()` | -| `no-page-in-flow` | Flows accessing `page` directly (should use page objects) | -| `boundary-protection` | Pages importing other pages (creates coupling) | -| `scope-lockdown` | Unscoped locators that escape their container | -| `dead-code` | Unused public methods in page objects | -| `deduplication` | Same selector defined in multiple files | -| `duplicate-logic` | Copy-pasted code across tests/pages (AST fingerprinting) | -| `no-raw-editor-navigation` | Raw `page.goto()` to a `/workflow/` editor route in tests (use `n8n.start.*` so the canvas loader is awaited) | -| `valid-owner-annotation` | A spec with no team owner, or an owner not in the canonical list (`CANONICAL_OWNERS` in the rule, mirroring Notion "Ownership v2") | - -### Commands - -```bash -# Analyze entire codebase -pnpm janitor - -# Analyze specific file -pnpm janitor --file=pages/CanvasPage.ts --verbose - -# Run specific rule -pnpm janitor --rule=dead-code - -# Auto-fix (dead-code only) -pnpm janitor:fix --rule=dead-code - -# List all rules (short) -pnpm janitor --list - -# Show detailed rule info (for AI agents) -pnpm janitor rules --json - -# Discover test specs (for orchestration) -pnpm janitor discover - -# Distribute specs across shards -pnpm janitor orchestrate --shards=14 -``` - -### Baseline (Incremental Cleanup) - -For codebases with existing violations, create a baseline to enable incremental cleanup: - -```bash -# Create baseline - snapshots current violations -pnpm janitor baseline - -# Commit the baseline -git add .janitor-baseline.json && git commit -m "chore: add janitor baseline" -``` - -Once baseline exists, janitor and TCR **only fail on NEW violations**. Pre-existing violations are tracked but don't block work. - -> **Safeguard:** TCR blocks commits that modify `.janitor-baseline.json`. This prevents accidentally "fixing" violations by updating the baseline instead of the actual code. Baseline updates must be done manually after fixing violations. - -```bash -# Update baseline after fixing violations (manual commit required) -pnpm janitor baseline -git add .janitor-baseline.json && git commit -m "chore: update baseline after cleanup" -``` - -### Incremental Cleanup Strategy - -For large cleanups, keep diffs small and reviewable: - -```bash -# Show ALL violations (ignoring baseline) for cleanup work -pnpm janitor --ignore-baseline --json - -# Find easiest files to fix (lowest violation count) -pnpm janitor --ignore-baseline --json 2>/dev/null | jq '.fileReports | sort_by(.violationCount) | .[:5]' - -# TCR with max diff size (skip if changes are too large) -pnpm janitor tcr --max-diff-lines=500 --execute -m="chore: cleanup" -``` - -**AI Cleanup Workflow:** -1. Use `--ignore-baseline` to see all violations (not just new ones) -2. Pick small fixes from the list -3. Fix violations, then TCR to safely commit -4. After fixing, run `pnpm janitor baseline` to update the baseline - -### TCR Workflow (Test && Commit || Revert) - -Safe refactoring loop: make changes, run affected tests, auto-commit or auto-revert. - -```bash -# Dry run - see what would happen -pnpm janitor tcr --verbose - -# Execute - actually commit/revert -pnpm janitor tcr --execute -m="chore: remove dead code" - -# With guardrails - skip if diff too large -pnpm janitor tcr --execute --max-diff-lines=500 -m="chore: cleanup" -``` - -### After Writing New Tests - -Always run janitor after adding or modifying tests to catch architecture violations early: - -```bash -pnpm janitor --file=tests/my-new-test.spec.ts --verbose -``` - -See `packages/testing/janitor/README.md` for full documentation. - -## UI Entry Points - -UI journey tests should start with `n8n.start.*` methods. API, infrastructure, -benchmark, lifecycle, and framework tests use their own fixtures and harnesses. -See `composables/TestEntryComposer.ts` for UI entry points. - -| Method | Use Case | -|--------|----------| -| `fromHome()` | Start from home page | -| `fromBlankCanvas()` | New workflow from scratch | -| `fromNewProjectBlankCanvas()` | Project-scoped workflow (returns projectId) | -| `fromNewProject()` | Project-scoped test, no canvas (returns projectId) | -| `fromImportedWorkflow(file)` | Test pre-built workflow JSON | -| `withUser(user)` | Isolated browser context per user | -| `withProjectFeatures()` | Enable sharing/folders/permissions | - -## Accessibility Checks - -The `a11y` fixture runs axe-core against the current page, scoped to a named -bucket. It **never throws** - a scan that can't run (bucket not on screen, axe -failure) logs a warning and returns an empty array, so bolting a check onto an -existing journey can't turn that journey red. Callers decide what to assert. - -```typescript -test('canvas is accessible', async ({ n8n, a11y }) => { - await n8n.start.fromBlankCanvas(); - - const violations = await a11y.check('canvas'); - - expect(violations).toEqual([]); -}); -``` - -Buckets: `page` (whole document), `canvas`, `ndv`, `node-creator`, `sidebar`, -`modal`. Defined in `fixtures/a11y.ts` (`A11Y_BUCKETS`). Scans run with WCAG 2.1 -A + AA rules; override per call with `a11y.check('modal', { tags, disableRules })`. - -When a journey acts as another user, `n8n.start.withUser()` returns a new -`n8nPage`. Point the checker at it with `a11y.for(otherN8n)` - the derived -checker reports into the same scan list. - -### Main landmark structure - -`utils/a11y-landmark-check.ts` checks the one structural rule axe cannot see on a -composed layout: the page must have exactly one `
` element, that `
` -must not sit inside another landmark, and `id="content"` must be unique. It walks -the composed DOM - the document plus every open shadow tree, and slotted content -from where it renders, not from where it is written - runs no axe rules, and -leaves the default WCAG 2.1 A + AA tag selection alone. - -A `
` or `
` is a landmark only once it has an accessible name, so the -check computes one: `aria-label`, an `aria-labelledby` reference resolved in the -element's own root, or `title`. A reference resolves through the same routine, so -the referenced element can name through its own reference, a naming attribute such -as `img[alt]`, or its text. A reference to a missing or empty element names -nothing, and a `
` full of text stays unnamed, because `region` does not -take its name from content. - -```typescript -import { assertMainLandmarkStructure } from '../../../utils/a11y-landmark-check'; - -await assertMainLandmarkStructure(n8n.page); -``` - -`assertMainLandmarkStructure(page)` throws with each problem it found. -`checkMainLandmarkStructure(page)` returns `{ ok, problems }` instead, for a -caller that wants to report rather than fail. Regression cover for both lives in -`tests/e2e/a11y/a11y-landmark-structure.spec.ts`, against synthetic markup. - -### Report and failure budget - -Every scan is attached to its test, so the raw axe results are always available -on that test (including in Currents). Set `PLAYWRIGHT_A11Y_REPORT` to also -register `reporters/a11y-reporter.ts`, which aggregates a run's scans into one -axe HTML report at `a11y-report/index.html` plus a table in the GitHub job -summary. Under sharding each shard reports the specs it ran. CI sets the -variable for the e2e workflow, which uploads the report as its own artifact on a -failing run; locally the reporter stays off unless asked for: - -```bash -PLAYWRIGHT_A11Y_REPORT=1 pnpm --filter=n8n-playwright test:local -``` - -Violations are **reporting-only by default**. Set -`PLAYWRIGHT_A11Y_MAX_VIOLATIONS` to the number of violations a single test may -report before it fails: - -```bash -# Fail any test reporting more than 5 violations -PLAYWRIGHT_A11Y_MAX_VIOLATIONS=5 pnpm --filter=n8n-playwright test:local -``` - -Unset (the default), empty or malformed all mean "no budget", so the violations -that already exist can't turn CI red. The budget is not applied to a test that -already failed for another reason. - -### Per-bucket scores - -The reporter also scores each bucket the run exercised and writes one line for -each of them, worst first: - -``` -[a11y] score bucket=canvas scans=2 rules=3 elements=7 score=31 critical=1 serious=3 moderate=1 minor=2 -``` - -`elements` counts the distinct violating elements. An element is counted once -for each screen it is broken on, however many rules it trips there, so a bucket -the run scanned twice on the same screen reports its elements once. `score` -weights those elements by impact (critical 10, serious 5, moderate 3, minor 1), -taking the worst impact reported for each element, so it goes to zero as the -bucket gets fixed. The same numbers go into the GitHub job summary as a bucket -table. - -When `QA_METRICS_WEBHOOK_*` is set - CI sets it for the e2e workflow - the -reporter sends the scores to the QA metrics webhook the perf metrics use. Each -bucket writes three `qa_performance_metrics` rows (`a11y-score`, -`a11y-violated-rules`, `a11y-violating-elements`) under the `a11y-buckets` -benchmark, with the bucket in `dimensions`. The send is best-effort: a failure -warns and the run carries on. See [.github/CI-TELEMETRY.md](../../../.github/CI-TELEMETRY.md). - -## Test Isolation - -Tests run in parallel. Design tests to be fully isolated so they don't interfere with each other. - -### Unique Identifiers - -Use `nanoid` for unique test data: - -```typescript -const credentialName = `Test Credential ${nanoid()}`; -const workflow = await api.workflows.createWorkflow({ - name: `Test Workflow ${nanoid()}`, -}); -``` - -### Dynamic User Creation - -Create users dynamically via the public API: - -```typescript -const member = await api.publicApi.createUser({ - email: `member-${nanoid()}@test.com`, - firstName: 'Test', - lastName: 'Member', -}); -``` - -### Isolated Browser Contexts - -For UI tests requiring multiple users, create isolated browser contexts: - -```typescript -// 1. Create users via public API -const member1 = await api.publicApi.createUser({ role: 'global:member' }); -const member2 = await api.publicApi.createUser({ role: 'global:member' }); - -// 2. Get isolated browser contexts -const member1Page = await n8n.start.withUser(member1); -const member2Page = await n8n.start.withUser(member2); - -// 3. Each operates independently (no session bleeding) -await member1Page.navigate.toWorkflows(); -await member2Page.navigate.toCredentials(); -``` - -**Reference:** `tests/e2e/building-blocks/user-service.spec.ts` - -| Pattern | Why | Use Instead | -|---------|-----|-------------| -| `test.describe.serial` | Creates test dependencies | Parallel tests with isolated setup | -| Fresh DB per file | Tests need isolated container | `test.use({ capability: { env: { TEST_ISOLATION: 'name' } } })` | -| Fresh DB per test | Tests modify shared state | `@db:reset` tag on describe (container-only, combined with `test.use()`) | -| `n8n.api.signin()` | Session bleeding | `n8n.start.withUser()` | -| `Date.now()` for IDs | Race conditions | `nanoid()` | -| `waitForTimeout()` | Flaky | `waitForResponse()`, `toBeVisible()` | -| `.toHaveCount(N)` | Brittle | Named element assertions | -| Raw `page.goto()` | Bypasses setup | `n8n.navigate.*` methods | - -## Code Style - -- Use specialized locators: `page.getByRole('button')` over `page.locator('[role=button]')` -- Use `nanoid()` for unique identifiers (parallel-safe) -- API setup over UI setup when possible (faster, more reliable) - -## Architecture - -``` -Tests (*.spec.ts) - ↓ uses -Composables (*Composer.ts) - Multi-step business workflows - ↓ orchestrates -Page Objects (*Page.ts) - UI interactions - ↓ extends -BasePage - Common utilities -``` - -See `CONTRIBUTING.md` for detailed patterns and conventions. - -## Debugging - -See [README.md#debugging](./README.md#debugging) for detailed instructions on: -- **Keepalive mode** - Keep containers running after tests with `N8N_CONTAINERS_KEEPALIVE=true` -- **Victoria exports** - Logs/metrics automatically attached on failure, importable locally via `scripts/import-victoria-data.mjs` - -## Test Migration & Refactoring - -**Test Name = Contract** -- Name declares intent, assertion proves it, everything else is flow -- Bad: `should open W1 as U2` (describes action) -- Good: `should allow sharee to edit shared workflow` (declares rule) - -**Coverage Parity Check** -1. Read old test name → what was the intent? -2. Find the explicit assertion that proved it -3. Verify new test has equivalent proof -4. No proof found? Document as intentional drop or gap - -**Legacy Tests (unauditable names/assertions)** -- Prioritize clarity over parity - can't audit what you can't read -- Document your best interpretation of intent -- Accept short-term risk, fix regressions forward - -See [Quality Corner: Test Migration Guide](https://www.notion.so/n8n/Best-Practices-Test-Migration-Refactoring) for full rationale and examples. - -## Reference Files - -| Purpose | File | -|---------|------| -| Multi-user testing | `tests/e2e/building-blocks/user-service.spec.ts` | -| Entry points | `composables/TestEntryComposer.ts` | -| Page object example | `pages/CanvasPage.ts` | -| Composable example | `composables/WorkflowComposer.ts` | -| API helpers | `services/api-helper.ts` | -| Capabilities | `fixtures/capabilities.ts` | -| Accessibility fixture | `fixtures/a11y.ts` | - -```typescript -const member = await api.publicApi.createUser({...}); -const memberN8n = await n8n.start.withUser(member); - -await memberN8n.navigate.toWorkflows(); -await expect(memberN8n.workflows.cards.getWorkflow(workflowName)).toBeVisible(); -``` -### Isolated API Contexts - -For API-only operations as another user, create isolated API contexts (no browser needed): - -```typescript -const member = await api.publicApi.createUser({...}); -const memberApi = await api.createApiForUser(member); - -const memberProject = await memberApi.projects.getMyPersonalProject(); -await memberApi.credentials.createCredential({...}); -``` - -### Identity-Based Assertions - -Assert by identity (name) rather than count for parallel-safe tests: - -```typescript -await expect(credentialDropdown.getByText(testCredName)).toBeVisible(); -await expect(credentialDropdown.getByText(devCredName)).toBeHidden(); -``` - -## Worker Isolation (Fresh Database) - -Use `test.use()` at file top-level with unique capability config: - -```typescript -// my-isolated-tests.spec.ts -import { test, expect } from '../fixtures/base'; - -// Must be top-level, not inside describe block -test.use({ capability: { env: { TEST_ISOLATION: 'my-isolated-tests' } } }); - -test('test with clean state', async ({ n8n }) => { - // Fresh container with reset database -}); -``` - -For per-test database reset (when tests modify shared state like MFA), add `@db:reset` to the describe. **Note:** `@db:reset` is container-only - these tests won't run locally. - -```typescript -test.use({ capability: { env: { TEST_ISOLATION: 'my-stateful-tests' } } }); - -test.describe('My stateful tests @db:reset', () => { - // Each test gets a fresh database reset (container-only) -}); -``` - -## Data Setup - -Use API helpers for fast, reliable test data setup. Reserve UI interactions for testing UI behavior: - -```typescript -// API for data setup -const credential = await api.credentials.createCredential({ - name: `Test Credential ${nanoid()}`, - type: 'notionApi', - data: { apiKey: 'test' }, -}); - -const workflow = await api.workflows.createWorkflow({ - name: `Test Workflow ${nanoid()}`, - nodes: [...], -}); - -// UI for verification -await n8n.navigate.toCredentials(); -await expect(n8n.credentials.cards.getCredential(credential.name)).toBeVisible(); -``` - -## Feature Enablement - -The `n8n` fixture automatically enables project features. For API-only tests (no `n8n` fixture), enable features explicitly: - -```typescript -test('API-only test', async ({ api }) => { - await api.enableProjectFeatures(); - // ... -}); -``` - -### Feature Flag Overrides - -To test features behind feature flags (experiments), use `TestRequirements` with storage overrides: - -```typescript -import type { TestRequirements } from '../../../Types'; - -const requirements: TestRequirements = { - storage: { - N8N_EXPERIMENT_OVERRIDES: JSON.stringify({ 'your_experiment': true }), - }, -}; - -test.use({ requirements }); - -test('test with feature flag enabled', async ({ n8n }) => { - // Feature flag is now active for this test -}); -``` - -**Common patterns:** - -```typescript -// Single experiment -{ storage: { N8N_EXPERIMENT_OVERRIDES: JSON.stringify({ '025_new_canvas': true }) } } - -// Multiple experiments -{ storage: { N8N_EXPERIMENT_OVERRIDES: JSON.stringify({ - '025_new_canvas': true, - '026_another_feature': 'variant_a' -}) } } - -// Combined with other requirements -const requirements: TestRequirements = { - storage: { - N8N_EXPERIMENT_OVERRIDES: JSON.stringify({ 'your_experiment': true }), - }, - capability: { - env: { TEST_ISOLATION: 'my-test-suite' }, - }, -}; -``` - -**Reference:** `Types.ts` for the full interface definition. Import depth follows -the spec's own nesting. The example above assumes `tests/e2e//`; add one -`../` per extra level down. - -## Shard Rebalancing - -When refactoring, adding, or moving significant numbers of tests, consider rebalancing test shards to maintain even CI distribution. See `docs/ORCHESTRATION.md` for details. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 739ba74f7d3..c9b7deaf1ac 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1951,40 +1951,6 @@ importers: specifier: catalog:typescript version: 7.0.2 - packages/@n8n/benchmark: - dependencies: - '@oclif/core': - specifier: 4.0.7 - version: 4.0.7 - axios: - specifier: 1.18.0 - version: 1.18.0(patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c49)(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1) - nanoid: - specifier: 'catalog:' - version: 3.3.18 - zx: - specifier: ^8.8.5 - version: 8.8.5 - devDependencies: - '@n8n/oxlint-config': - specifier: workspace:* - version: link:../oxlint-config - '@n8n/typescript-config': - specifier: workspace:* - version: link:../typescript-config - '@types/k6': - specifier: ^0.52.0 - version: 0.52.0 - oxlint: - specifier: 'catalog:' - version: 1.78.0(oxlint-tsgolint@0.21.1) - oxlint-tsgolint: - specifier: 'catalog:' - version: 0.21.1 - typescript: - specifier: catalog:typescript - version: 7.0.2 - packages/@n8n/blob-storage: dependencies: '@aws-sdk/client-s3': @@ -2556,7 +2522,7 @@ importers: version: 5.1.0(supports-color@8.1.1) n8n-containers: specifier: workspace:* - version: link:../../testing/containers + version: link:../../quality/environments/containers oxlint: specifier: 'catalog:' version: 1.78.0(oxlint-tsgolint@0.21.1) @@ -2727,7 +2693,7 @@ importers: version: 6.0.3 n8n-containers: specifier: workspace:* - version: link:../../testing/containers + version: link:../../quality/environments/containers oxlint: specifier: 'catalog:' version: 1.78.0(oxlint-tsgolint@0.21.1) @@ -5104,7 +5070,7 @@ importers: version: link:../@n8n/oxlint-config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../testing/janitor + version: link:../quality/testing/janitor '@n8n/typescript-config': specifier: workspace:* version: link:../@n8n/typescript-config @@ -5233,7 +5199,7 @@ importers: version: 4.15.3(encoding@0.1.13) n8n-containers: specifier: workspace:* - version: link:../testing/containers + version: link:../quality/environments/containers nock: specifier: 'catalog:' version: 14.0.14 @@ -5384,7 +5350,7 @@ importers: version: link:../@n8n/oxlint-config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../testing/janitor + version: link:../quality/testing/janitor '@n8n/typeorm': specifier: workspace:* version: link:../@n8n/typeorm @@ -5548,7 +5514,7 @@ importers: version: link:../../../@n8n/eslint-config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../../testing/janitor + version: link:../../../quality/testing/janitor '@n8n/stylelint-config': specifier: workspace:* version: link:../../../@n8n/stylelint-config @@ -5639,7 +5605,7 @@ importers: version: link:../../../@n8n/eslint-config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../../testing/janitor + version: link:../../../quality/testing/janitor '@n8n/telemetry': specifier: workspace:* version: link:../../../@n8n/telemetry @@ -5808,7 +5774,7 @@ importers: version: link:../../../@n8n/eslint-config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../../testing/janitor + version: link:../../../quality/testing/janitor '@n8n/stylelint-config': specifier: workspace:* version: link:../../../@n8n/stylelint-config @@ -6176,7 +6142,7 @@ importers: version: link:../../../@n8n/eslint-config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../../testing/janitor + version: link:../../../quality/testing/janitor '@n8n/typescript-config': specifier: workspace:* version: link:../../../@n8n/typescript-config @@ -6234,7 +6200,7 @@ importers: version: link:../i18n '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../../testing/janitor + version: link:../../../quality/testing/janitor '@n8n/typescript-config': specifier: workspace:* version: link:../../../@n8n/typescript-config @@ -6304,7 +6270,7 @@ importers: version: link:../../../@n8n/eslint-config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../../testing/janitor + version: link:../../../quality/testing/janitor '@n8n/typescript-config': specifier: workspace:* version: link:../../../@n8n/typescript-config @@ -6582,7 +6548,7 @@ importers: version: link:../../@n8n/permissions '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../testing/janitor + version: link:../../quality/testing/janitor '@n8n/rest-api-client': specifier: workspace:* version: link:../@n8n/rest-api-client @@ -7027,7 +6993,7 @@ importers: version: link:../../../frontend/@n8n/frontend-vite-config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../../testing/janitor + version: link:../../../quality/testing/janitor '@n8n/stylelint-config': specifier: workspace:* version: link:../../../@n8n/stylelint-config @@ -7115,7 +7081,7 @@ importers: version: link:../../../frontend/@n8n/frontend-vite-config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../../testing/janitor + version: link:../../../quality/testing/janitor '@n8n/typescript-config': specifier: workspace:* version: link:../../../@n8n/typescript-config @@ -7200,7 +7166,7 @@ importers: version: link:../../../@n8n/permissions '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../../testing/janitor + version: link:../../../quality/testing/janitor '@n8n/stylelint-config': specifier: workspace:* version: link:../../../@n8n/stylelint-config @@ -7297,7 +7263,7 @@ importers: version: link:../../../frontend/@n8n/frontend-vite-config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../../../testing/janitor + version: link:../../../quality/testing/janitor '@n8n/typescript-config': specifier: workspace:* version: link:../../../@n8n/typescript-config @@ -7659,7 +7625,7 @@ importers: version: link:../@n8n/eslint-plugin-community-nodes '@n8n/playwright-janitor': specifier: workspace:* - version: link:../testing/janitor + version: link:../quality/testing/janitor '@n8n/typescript-config': specifier: workspace:* version: link:../@n8n/typescript-config @@ -7761,7 +7727,7 @@ importers: version: 3.23.2 n8n-containers: specifier: workspace:* - version: link:../testing/containers + version: link:../quality/environments/containers n8n-core: specifier: workspace:* version: link:../core @@ -7784,62 +7750,59 @@ importers: specifier: 'catalog:' version: 3.1.0(typescript@7.0.2)(vitest@5.0.1) - packages/testing/code-health: - dependencies: - '@n8n/rules-engine': + packages/quality/efficiency/microbenchmarks: + devDependencies: + '@n8n/expression-runtime': specifier: workspace:* - version: link:../rules-engine - '@n8n/vitest-config': + version: link:../../../@n8n/expression-runtime + n8n-workflow: specifier: workspace:* - version: link:../../@n8n/vitest-config - change-case: - specifier: 'catalog:' - version: 5.4.4 - fast-glob: - specifier: 'catalog:' - version: 3.3.3 - markdown-it: - specifier: 'catalog:' - version: 13.0.2 - ts-morph: - specifier: 'catalog:' - version: 27.0.2 - tsx: - specifier: 'catalog:' - version: 4.19.3 + version: link:../../../workflow typescript: specifier: catalog:typescript version: 7.0.2 - yaml: + vite: specifier: 'catalog:' - version: 2.8.3 + version: 8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3) + vitest: + specifier: 'catalog:' + version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@8.1.1)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) + + packages/quality/efficiency/scale/benchmark: + dependencies: + '@oclif/core': + specifier: 4.0.7 + version: 4.0.7 + axios: + specifier: 1.18.0 + version: 1.18.0(patch_hash=149e256a2a7b632497650b32816716ced972ab02a5ab00fbd8a5158a51722c49)(debug@4.4.3(supports-color@8.1.1))(supports-color@8.1.1) + nanoid: + specifier: 'catalog:' + version: 3.3.18 + zx: + specifier: ^8.8.5 + version: 8.8.5 devDependencies: - '@n8n/eslint-config': - specifier: workspace:* - version: link:../../@n8n/eslint-config '@n8n/oxlint-config': specifier: workspace:* - version: link:../../@n8n/oxlint-config - '@types/markdown-it': - specifier: 'catalog:' - version: 13.0.9 - '@vitest/coverage-v8': - specifier: 'catalog:' - version: 5.0.1(@vitest/browser@5.0.1)(vitest@5.0.1) - fast-check: - specifier: 'catalog:' - version: 3.23.2 + version: link:../../../../@n8n/oxlint-config + '@n8n/typescript-config': + specifier: workspace:* + version: link:../../../../@n8n/typescript-config + '@types/k6': + specifier: ^0.52.0 + version: 0.52.0 oxlint: specifier: 'catalog:' version: 1.78.0(oxlint-tsgolint@0.21.1) oxlint-tsgolint: specifier: 'catalog:' version: 0.21.1 - vitest: - specifier: 'catalog:' - version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@5.5.0)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) + typescript: + specifier: catalog:typescript + version: 7.0.2 - packages/testing/containers: + packages/quality/environments/containers: dependencies: '@aws-sdk/client-secrets-manager': specifier: 3.808.0 @@ -7877,10 +7840,10 @@ importers: devDependencies: '@n8n/eslint-config': specifier: workspace:* - version: link:../../@n8n/eslint-config + version: link:../../../@n8n/eslint-config '@n8n/oxlint-config': specifier: workspace:* - version: link:../../@n8n/oxlint-config + version: link:../../../@n8n/oxlint-config oxlint: specifier: 'catalog:' version: 1.78.0(oxlint-tsgolint@0.21.1) @@ -7897,17 +7860,103 @@ importers: specifier: 'catalog:' version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@8.1.1)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) - packages/testing/janitor: + packages/quality/policy/code-health: dependencies: '@n8n/rules-engine': specifier: workspace:* version: link:../rules-engine + '@n8n/vitest-config': + specifier: workspace:* + version: link:../../../@n8n/vitest-config + change-case: + specifier: 'catalog:' + version: 5.4.4 + fast-glob: + specifier: 'catalog:' + version: 3.3.3 + markdown-it: + specifier: 'catalog:' + version: 13.0.2 + ts-morph: + specifier: 'catalog:' + version: 27.0.2 + tsx: + specifier: 'catalog:' + version: 4.19.3 + typescript: + specifier: catalog:typescript + version: 7.0.2 + yaml: + specifier: 'catalog:' + version: 2.8.3 + devDependencies: + '@n8n/eslint-config': + specifier: workspace:* + version: link:../../../@n8n/eslint-config + '@n8n/oxlint-config': + specifier: workspace:* + version: link:../../../@n8n/oxlint-config + '@types/markdown-it': + specifier: 'catalog:' + version: 13.0.9 + '@vitest/coverage-v8': + specifier: 'catalog:' + version: 5.0.1(@vitest/browser@5.0.1)(vitest@5.0.1) + fast-check: + specifier: 'catalog:' + version: 3.23.2 + oxlint: + specifier: 'catalog:' + version: 1.78.0(oxlint-tsgolint@0.21.1) + oxlint-tsgolint: + specifier: 'catalog:' + version: 0.21.1 + vitest: + specifier: 'catalog:' + version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@8.1.1)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) + + packages/quality/policy/rules-engine: + dependencies: + ts-morph: + specifier: 'catalog:' + version: 27.0.2 + devDependencies: + '@n8n/eslint-config': + specifier: workspace:* + version: link:../../../@n8n/eslint-config + '@n8n/oxlint-config': + specifier: workspace:* + version: link:../../../@n8n/oxlint-config + '@n8n/vitest-config': + specifier: workspace:* + version: link:../../../@n8n/vitest-config + '@vitest/coverage-v8': + specifier: 'catalog:' + version: 5.0.1(@vitest/browser@5.0.1)(vitest@5.0.1) + oxlint: + specifier: 'catalog:' + version: 1.78.0(oxlint-tsgolint@0.21.1) + oxlint-tsgolint: + specifier: 'catalog:' + version: 0.21.1 + typescript: + specifier: catalog:typescript + version: 7.0.2 + vitest: + specifier: 'catalog:' + version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@8.1.1)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) + + packages/quality/testing/janitor: + dependencies: + '@n8n/rules-engine': + specifier: workspace:* + version: link:../../policy/rules-engine '@n8n/test-impact': specifier: workspace:* version: link:../test-impact '@n8n/vitest-config': specifier: workspace:* - version: link:../../@n8n/vitest-config + version: link:../../../@n8n/vitest-config glob: specifier: 10.5.0 version: 10.5.0 @@ -7920,10 +7969,10 @@ importers: devDependencies: '@n8n/eslint-config': specifier: workspace:* - version: link:../../@n8n/eslint-config + version: link:../../../@n8n/eslint-config '@n8n/oxlint-config': specifier: workspace:* - version: link:../../@n8n/oxlint-config + version: link:../../../@n8n/oxlint-config '@types/node': specifier: ^20.17.50 version: 20.19.41 @@ -7941,27 +7990,9 @@ importers: version: 7.0.2 vitest: specifier: 'catalog:' - version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@5.5.0)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) + version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@8.1.1)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) - packages/testing/performance: - devDependencies: - '@n8n/expression-runtime': - specifier: workspace:* - version: link:../../@n8n/expression-runtime - n8n-workflow: - specifier: workspace:* - version: link:../../workflow - typescript: - specifier: catalog:typescript - version: 7.0.2 - vite: - specifier: 'catalog:' - version: 8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3) - vitest: - specifier: 'catalog:' - version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@5.5.0)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) - - packages/testing/playwright: + packages/quality/testing/playwright: devDependencies: '@anthropic-ai/sdk': specifier: 0.91.1 @@ -7980,22 +8011,22 @@ importers: version: 2.0.0(bufferutil@4.0.9)(supports-color@8.1.1)(typescript@7.0.2)(utf-8-validate@5.0.10) '@n8n/api-types': specifier: workspace:* - version: link:../../@n8n/api-types + version: link:../../../@n8n/api-types '@n8n/constants': specifier: workspace:* - version: link:../../@n8n/constants + version: link:../../../@n8n/constants '@n8n/db': specifier: workspace:* - version: link:../../@n8n/db + version: link:../../../@n8n/db '@n8n/eslint-config': specifier: workspace:* - version: link:../../@n8n/eslint-config + version: link:../../../@n8n/eslint-config '@n8n/oxlint-config': specifier: workspace:* - version: link:../../@n8n/oxlint-config + version: link:../../../@n8n/oxlint-config '@n8n/permissions': specifier: workspace:* - version: link:../../@n8n/permissions + version: link:../../../@n8n/permissions '@n8n/playwright-janitor': specifier: workspace:* version: link:../janitor @@ -8004,10 +8035,10 @@ importers: version: link:../test-impact '@n8n/utils': specifier: workspace:* - version: link:../../@n8n/utils + version: link:../../../@n8n/utils '@n8n/workflow-sdk': specifier: workspace:* - version: link:../../@n8n/workflow-sdk + version: link:../../../@n8n/workflow-sdk '@playwright/cli': specifier: catalog:e2e version: 0.1.0 @@ -8064,16 +8095,16 @@ importers: version: 2.12.12 n8n: specifier: workspace:* - version: link:../../cli + version: link:../../../cli n8n-containers: specifier: workspace:* - version: link:../containers + version: link:../../environments/containers n8n-core: specifier: workspace:* - version: link:../../core + version: link:../../../core n8n-workflow: specifier: workspace:* - version: link:../../workflow + version: link:../../../workflow nanoid: specifier: 'catalog:' version: 3.3.18 @@ -8102,38 +8133,7 @@ importers: specifier: 3.25.76 version: 3.25.76 - packages/testing/rules-engine: - dependencies: - ts-morph: - specifier: 'catalog:' - version: 27.0.2 - devDependencies: - '@n8n/eslint-config': - specifier: workspace:* - version: link:../../@n8n/eslint-config - '@n8n/oxlint-config': - specifier: workspace:* - version: link:../../@n8n/oxlint-config - '@n8n/vitest-config': - specifier: workspace:* - version: link:../../@n8n/vitest-config - '@vitest/coverage-v8': - specifier: 'catalog:' - version: 5.0.1(@vitest/browser@5.0.1)(vitest@5.0.1) - oxlint: - specifier: 'catalog:' - version: 1.78.0(oxlint-tsgolint@0.21.1) - oxlint-tsgolint: - specifier: 'catalog:' - version: 0.21.1 - typescript: - specifier: catalog:typescript - version: 7.0.2 - vitest: - specifier: 'catalog:' - version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@5.5.0)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) - - packages/testing/test-impact: + packages/quality/testing/test-impact: dependencies: monocart-coverage-reports: specifier: ^2.12.0 @@ -8141,7 +8141,7 @@ importers: devDependencies: '@n8n/oxlint-config': specifier: workspace:* - version: link:../../@n8n/oxlint-config + version: link:../../../@n8n/oxlint-config '@types/node': specifier: ^20.17.50 version: 20.19.41 @@ -8162,7 +8162,7 @@ importers: version: 7.0.2 vitest: specifier: 'catalog:' - version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@5.5.0)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) + version: 5.0.1(@opentelemetry/api@1.9.1)(@types/node@20.19.41)(@vitest/browser-playwright@5.0.1)(@vitest/coverage-istanbul@5.0.1)(@vitest/coverage-v8@5.0.1)(@vitest/ui@5.0.1)(jsdom@23.0.1(bufferutil@4.0.9)(supports-color@8.1.1)(utf-8-validate@5.0.10))(vite@8.0.2(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)(@types/node@20.19.41)(esbuild@0.28.1)(jiti@2.6.1)(sass-embedded@1.98.0)(sass@1.98.0)(terser@5.16.1)(tsx@4.19.3)(yaml@2.8.3)) packages/workflow: dependencies: @@ -8247,7 +8247,7 @@ importers: version: link:../@n8n/config '@n8n/playwright-janitor': specifier: workspace:* - version: link:../testing/janitor + version: link:../quality/testing/janitor '@n8n/typescript-config': specifier: workspace:* version: link:../@n8n/typescript-config @@ -38026,6 +38026,7 @@ snapshots: dependencies: jsbn: 1.1.0 sprintf-js: 1.1.3 + optional: true ipaddr.js@1.9.1: {} @@ -38359,7 +38360,8 @@ snapshots: jsbn@0.1.1: {} - jsbn@1.1.0: {} + jsbn@1.1.0: + optional: true jsdom@23.0.1(bufferutil@4.0.9)(supports-color@5.5.0)(utf-8-validate@5.0.10): dependencies: @@ -42789,7 +42791,7 @@ snapshots: dependencies: agent-base: 7.1.3 debug: 4.4.3(supports-color@8.1.1) - socks: 2.8.3 + socks: 2.8.9 transitivePeerDependencies: - supports-color @@ -42797,6 +42799,7 @@ snapshots: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 + optional: true socks@2.8.9: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3ade288b34d..00197f7d4f8 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -47,7 +47,7 @@ packages: # glob or they are not workspace packages at all. - packages/modules/** - packages/extensions/** - - packages/testing/** + - packages/quality/** catalog: '@ai-sdk/alibaba': ^2.0.32 diff --git a/scripts/build-n8n.mjs b/scripts/build-n8n.mjs index 8cef26030be..22cec67c773 100755 --- a/scripts/build-n8n.mjs +++ b/scripts/build-n8n.mjs @@ -529,7 +529,7 @@ try { // `--dir` rather than `--filter`: a filter that matches nothing exits 0, so a renamed or moved // package would report a passing check having run no verifier at all. const verifyProcess = - $`cd ${config.rootDir} && pnpm --dir packages/testing/code-health exec tsx src/cli.ts verify-closure ${dir}`.nothrow(); + $`cd ${config.rootDir} && pnpm --dir packages/quality/policy/code-health exec tsx src/cli.ts verify-closure ${dir}`.nothrow(); verifyProcess.pipe(process.stdout); const { exitCode } = await verifyProcess; // 0 and 3 are the only codes the verifier itself produces; everything else (tsx failing to load, diff --git a/scripts/codespace-preview/preview-labels.mjs b/scripts/codespace-preview/preview-labels.mjs index 15e2ef083d0..69b26038b28 100644 --- a/scripts/codespace-preview/preview-labels.mjs +++ b/scripts/codespace-preview/preview-labels.mjs @@ -11,7 +11,7 @@ export const PREVIEW_LABEL_PREFIX = 'preview:'; const PREFIX = PREVIEW_LABEL_PREFIX; // The sandbox tenant. The default (1) is production self-hosted, which rejects a -// sandbox key. Matches packages/testing/containers/services/n8n.ts. +// sandbox key. Matches packages/quality/environments/containers/services/n8n.ts. const LICENSE_TENANT_ID = '1001'; const LICENSE_KEY_SECRET = 'N8N_LICENSE_ACTIVATION_KEY'; diff --git a/scripts/lint-parity/layers.json b/scripts/lint-parity/layers.json index 0cb4c161680..da7befc4a02 100644 --- a/scripts/lint-parity/layers.json +++ b/scripts/lint-parity/layers.json @@ -29,7 +29,7 @@ "packages/@n8n/backend-network", "packages/@n8n/backend-services", "packages/@n8n/backend-test-utils", - "packages/@n8n/benchmark", + "packages/quality/efficiency/scale/benchmark", "packages/@n8n/blob-storage", "packages/@n8n/cli", "packages/@n8n/client-oauth2", @@ -52,12 +52,12 @@ "packages/cli", "packages/core", "packages/node-dev", - "packages/testing/code-health", - "packages/testing/containers", - "packages/testing/janitor", - "packages/testing/playwright", - "packages/testing/rules-engine", - "packages/testing/test-impact" + "packages/quality/policy/code-health", + "packages/quality/environments/containers", + "packages/quality/testing/janitor", + "packages/quality/testing/playwright", + "packages/quality/policy/rules-engine", + "packages/quality/testing/test-impact" ], "frontend": [ "packages/@n8n/mcp-apps", diff --git a/scripts/lint-parity/samples.json b/scripts/lint-parity/samples.json index 77c4cb66881..47525b4bfa0 100644 --- a/scripts/lint-parity/samples.json +++ b/scripts/lint-parity/samples.json @@ -26,7 +26,7 @@ ], "packages/@n8n/backend-services": ["src/index.ts", "test/setup-test-folder.ts"], "packages/@n8n/backend-test-utils": ["src/db/projects.ts"], - "packages/@n8n/benchmark": ["src/commands/list.ts"], + "packages/quality/efficiency/scale/benchmark": ["src/commands/list.ts"], "packages/@n8n/blob-storage": [ "src/__tests__/azure-byte-store.test.ts", "src/azure-blob/azure-blob.config.ts" @@ -376,12 +376,12 @@ "nodes/ActionNetwork/ActionNetwork.node.ts", "nodes/Aws/__tests__/AwsLambda.node.test.ts" ], - "packages/testing/code-health": ["src/cli.ts", "src/cli/arg-parser.test.ts"], - "packages/testing/containers": ["services/keycloak.ts", "tests/resource-tracker.test.ts"], - "packages/testing/janitor": ["src/cli.test.ts", "src/cli.ts"], - "packages/testing/playwright": ["coverage-options.test.ts", "fixtures/base.ts"], - "packages/testing/rules-engine": ["src/ast/ast-rule.ts", "src/ast/imports.test.ts"], - "packages/testing/test-impact": ["src/changes.test.ts", "src/changes.ts"], + "packages/quality/policy/code-health": ["src/cli.ts", "src/cli/arg-parser.test.ts"], + "packages/quality/environments/containers": ["services/keycloak.ts", "tests/resource-tracker.test.ts"], + "packages/quality/testing/janitor": ["src/cli.test.ts", "src/cli.ts"], + "packages/quality/testing/playwright": ["coverage-options.test.ts", "fixtures/base.ts"], + "packages/quality/policy/rules-engine": ["src/ast/ast-rule.ts", "src/ast/imports.test.ts"], + "packages/quality/testing/test-impact": ["src/changes.test.ts", "src/changes.ts"], "packages/workflow": [ "src/augment-object.ts", "test/ExpressionExtensions/array-extensions.test.ts"