testeiya 0.10.0 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/PIPELINES.md +3 -0
  2. package/README.md +10 -20
  3. package/dist/prompt/clis.d.ts +7 -0
  4. package/dist/prompt/pipeline-report.d.ts +1 -0
  5. package/dist/prompt/report.d.ts +10 -0
  6. package/dist/prompt/system-prompt.d.ts +22 -0
  7. package/dist/prompt/system-prompt.js +1 -1
  8. package/dist/prompt/system-prompt.js.map +1 -1
  9. package/dist/prompt/testomat.io.d.ts +19 -0
  10. package/dist/prompt/thread.d.ts +73 -0
  11. package/dist/src/args.d.ts +39 -0
  12. package/dist/src/attribution-extension.d.ts +3 -0
  13. package/dist/src/checkpoint.d.ts +30 -0
  14. package/dist/src/cli.d.ts +2 -0
  15. package/dist/src/cli.js +27 -32
  16. package/dist/src/cli.js.map +1 -1
  17. package/dist/src/doctor.d.ts +11 -0
  18. package/dist/src/env.d.ts +30 -0
  19. package/dist/src/exec.d.ts +11 -0
  20. package/dist/src/git.d.ts +41 -0
  21. package/dist/src/git.js +10 -0
  22. package/dist/src/git.js.map +1 -1
  23. package/dist/src/langfuse-extension.d.ts +7 -0
  24. package/dist/src/langfuse.d.ts +67 -0
  25. package/dist/src/mcp.d.ts +19 -0
  26. package/dist/src/model.d.ts +20 -0
  27. package/dist/src/model.js +2 -0
  28. package/dist/src/model.js.map +1 -1
  29. package/dist/src/models.d.ts +1 -0
  30. package/dist/src/output.d.ts +84 -0
  31. package/dist/src/pipeline/command-stage.d.ts +12 -0
  32. package/dist/src/pipeline/crash-guard.d.ts +12 -0
  33. package/dist/src/pipeline/crash-guard.js +21 -0
  34. package/dist/src/pipeline/crash-guard.js.map +1 -0
  35. package/dist/src/pipeline/diagram.d.ts +24 -0
  36. package/dist/src/pipeline/gate.d.ts +21 -0
  37. package/dist/src/pipeline/launcher.d.ts +33 -0
  38. package/dist/src/pipeline/launcher.js +16 -3
  39. package/dist/src/pipeline/launcher.js.map +1 -1
  40. package/dist/src/pipeline/log.d.ts +29 -0
  41. package/dist/src/pipeline/log.js +9 -0
  42. package/dist/src/pipeline/log.js.map +1 -1
  43. package/dist/src/pipeline/overlay.d.ts +29 -0
  44. package/dist/src/pipeline/pipeline-file.d.ts +44 -0
  45. package/dist/src/pipeline/pipeline-file.js +16 -8
  46. package/dist/src/pipeline/pipeline-file.js.map +1 -1
  47. package/dist/src/pipeline/pipeline.d.ts +78 -0
  48. package/dist/src/pipeline/pipeline.js +33 -7
  49. package/dist/src/pipeline/pipeline.js.map +1 -1
  50. package/dist/src/pipeline/report.d.ts +26 -0
  51. package/dist/src/pipeline/report.js +13 -0
  52. package/dist/src/pipeline/report.js.map +1 -1
  53. package/dist/src/pipeline/spec.d.ts +63 -0
  54. package/dist/src/pipeline/stage-env.d.ts +13 -0
  55. package/dist/src/pipeline/stage-env.js +31 -0
  56. package/dist/src/pipeline/stage-env.js.map +1 -0
  57. package/dist/src/pipeline/stage.d.ts +71 -0
  58. package/dist/src/pipeline/stage.js.map +1 -1
  59. package/dist/src/pipeline/state.d.ts +63 -0
  60. package/dist/src/pipeline/summary-stage.d.ts +24 -0
  61. package/dist/src/pipeline/task-stage.d.ts +24 -0
  62. package/dist/src/pipeline/task-stage.js +86 -2
  63. package/dist/src/pipeline/task-stage.js.map +1 -1
  64. package/dist/src/pipeline/variables.d.ts +20 -0
  65. package/dist/src/result.d.ts +6 -0
  66. package/dist/src/run.d.ts +69 -0
  67. package/dist/src/run.js +116 -60
  68. package/dist/src/run.js.map +1 -1
  69. package/dist/src/session.d.ts +43 -0
  70. package/dist/src/session.js +3 -1
  71. package/dist/src/session.js.map +1 -1
  72. package/dist/src/sessions.d.ts +23 -0
  73. package/dist/src/skills.d.ts +29 -0
  74. package/package.json +11 -2
  75. package/pipelines/api-testing.yml +16 -5
  76. package/pipelines/issue-test-cases.yml +3 -4
  77. package/pipelines/pr-review.yml +14 -5
  78. package/pipelines/regression.yml +1 -0
  79. package/pipelines/web-testing.yml +1 -0
  80. package/prompt/system-prompt.ts +1 -1
  81. package/scripts/vendor-skills.js +62 -0
  82. package/skills/codeceptjs/ci-fix-tests/SKILL.md +0 -119
  83. package/skills/codeceptjs/codeceptjs-auth/SKILL.md +0 -141
  84. package/skills/codeceptjs/codeceptjs-exploration/SKILL.md +0 -100
  85. package/skills/codeceptjs/codeceptjs-fundamentals/SKILL.md +0 -196
  86. package/skills/codeceptjs/codeceptjs-run-analysis/SKILL.md +0 -83
  87. package/skills/codeceptjs/debugging-codeceptjs-tests/SKILL.md +0 -126
  88. package/skills/codeceptjs/lint-codeceptjs-tests/SKILL.md +0 -104
  89. package/skills/codeceptjs/migrate-codeceptjs-4/SKILL.md +0 -109
  90. package/skills/codeceptjs/migrate-cypress-to-codeceptjs/SKILL.md +0 -295
  91. package/skills/codeceptjs/migrate-protractor-to-codeceptjs/SKILL.md +0 -339
  92. package/skills/codeceptjs/migrate-selenium-java-to-codeceptjs/SKILL.md +0 -459
  93. package/skills/codeceptjs/migrate-testcafe-to-codeceptjs/SKILL.md +0 -338
  94. package/skills/codeceptjs/refactoring-codeceptjs-tests/SKILL.md +0 -78
  95. package/skills/codeceptjs/writing-codeceptjs-tests/SKILL.md +0 -102
  96. package/skills/playwright/playwright-best-practices/SKILL.md +0 -303
  97. package/skills/playwright/playwright-best-practices/advanced/authentication-flows.md +0 -360
  98. package/skills/playwright/playwright-best-practices/advanced/authentication.md +0 -871
  99. package/skills/playwright/playwright-best-practices/advanced/clock-mocking.md +0 -364
  100. package/skills/playwright/playwright-best-practices/advanced/mobile-testing.md +0 -409
  101. package/skills/playwright/playwright-best-practices/advanced/multi-context.md +0 -288
  102. package/skills/playwright/playwright-best-practices/advanced/multi-user.md +0 -393
  103. package/skills/playwright/playwright-best-practices/advanced/network-advanced.md +0 -452
  104. package/skills/playwright/playwright-best-practices/advanced/third-party.md +0 -464
  105. package/skills/playwright/playwright-best-practices/architecture/pom-vs-fixtures.md +0 -363
  106. package/skills/playwright/playwright-best-practices/architecture/test-architecture.md +0 -369
  107. package/skills/playwright/playwright-best-practices/architecture/when-to-mock.md +0 -383
  108. package/skills/playwright/playwright-best-practices/browser-apis/browser-apis.md +0 -391
  109. package/skills/playwright/playwright-best-practices/browser-apis/iframes.md +0 -403
  110. package/skills/playwright/playwright-best-practices/browser-apis/service-workers.md +0 -504
  111. package/skills/playwright/playwright-best-practices/browser-apis/websockets.md +0 -403
  112. package/skills/playwright/playwright-best-practices/core/annotations.md +0 -424
  113. package/skills/playwright/playwright-best-practices/core/assertions-waiting.md +0 -361
  114. package/skills/playwright/playwright-best-practices/core/configuration.md +0 -452
  115. package/skills/playwright/playwright-best-practices/core/fixtures-hooks.md +0 -417
  116. package/skills/playwright/playwright-best-practices/core/global-setup.md +0 -434
  117. package/skills/playwright/playwright-best-practices/core/locators.md +0 -242
  118. package/skills/playwright/playwright-best-practices/core/page-object-model.md +0 -315
  119. package/skills/playwright/playwright-best-practices/core/projects-dependencies.md +0 -453
  120. package/skills/playwright/playwright-best-practices/core/test-data.md +0 -492
  121. package/skills/playwright/playwright-best-practices/core/test-suite-structure.md +0 -361
  122. package/skills/playwright/playwright-best-practices/core/test-tags.md +0 -298
  123. package/skills/playwright/playwright-best-practices/debugging/console-errors.md +0 -420
  124. package/skills/playwright/playwright-best-practices/debugging/debugging.md +0 -504
  125. package/skills/playwright/playwright-best-practices/debugging/error-testing.md +0 -360
  126. package/skills/playwright/playwright-best-practices/debugging/flaky-tests.md +0 -496
  127. package/skills/playwright/playwright-best-practices/frameworks/angular.md +0 -530
  128. package/skills/playwright/playwright-best-practices/frameworks/nextjs.md +0 -469
  129. package/skills/playwright/playwright-best-practices/frameworks/react.md +0 -531
  130. package/skills/playwright/playwright-best-practices/frameworks/vue.md +0 -574
  131. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/ci-cd.md +0 -468
  132. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/docker.md +0 -283
  133. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/github-actions.md +0 -546
  134. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/gitlab.md +0 -397
  135. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/other-providers.md +0 -521
  136. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/parallel-sharding.md +0 -371
  137. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/performance.md +0 -453
  138. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/reporting.md +0 -424
  139. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/test-coverage.md +0 -497
  140. package/skills/playwright/playwright-best-practices/testing-patterns/accessibility.md +0 -359
  141. package/skills/playwright/playwright-best-practices/testing-patterns/api-testing.md +0 -719
  142. package/skills/playwright/playwright-best-practices/testing-patterns/browser-extensions.md +0 -506
  143. package/skills/playwright/playwright-best-practices/testing-patterns/canvas-webgl.md +0 -493
  144. package/skills/playwright/playwright-best-practices/testing-patterns/component-testing.md +0 -500
  145. package/skills/playwright/playwright-best-practices/testing-patterns/drag-drop.md +0 -576
  146. package/skills/playwright/playwright-best-practices/testing-patterns/electron.md +0 -509
  147. package/skills/playwright/playwright-best-practices/testing-patterns/file-operations.md +0 -377
  148. package/skills/playwright/playwright-best-practices/testing-patterns/file-upload-download.md +0 -562
  149. package/skills/playwright/playwright-best-practices/testing-patterns/forms-validation.md +0 -561
  150. package/skills/playwright/playwright-best-practices/testing-patterns/graphql-testing.md +0 -331
  151. package/skills/playwright/playwright-best-practices/testing-patterns/i18n.md +0 -508
  152. package/skills/playwright/playwright-best-practices/testing-patterns/performance-testing.md +0 -476
  153. package/skills/playwright/playwright-best-practices/testing-patterns/security-testing.md +0 -430
  154. package/skills/playwright/playwright-best-practices/testing-patterns/visual-regression.md +0 -634
  155. package/skills/playwright/playwright-cli/SKILL.md +0 -489
  156. package/skills/playwright/playwright-cli/references/element-attributes.md +0 -23
  157. package/skills/playwright/playwright-cli/references/playwright-tests.md +0 -39
  158. package/skills/playwright/playwright-cli/references/pr-attachments.md +0 -60
  159. package/skills/playwright/playwright-cli/references/request-mocking.md +0 -87
  160. package/skills/playwright/playwright-cli/references/running-code.md +0 -245
  161. package/skills/playwright/playwright-cli/references/session-management.md +0 -227
  162. package/skills/playwright/playwright-cli/references/storage-state.md +0 -275
  163. package/skills/playwright/playwright-cli/references/test-generation.md +0 -433
  164. package/skills/playwright/playwright-cli/references/tracing.md +0 -139
  165. package/skills/playwright/playwright-cli/references/video-recording.md +0 -216
  166. package/skills/skills.lock.json +0 -89
  167. package/skills/skills.yaml +0 -35
  168. /package/skills/{testomatio/explorbot → explorbot}/explorbot-fundamentals/SKILL.md +0 -0
  169. /package/skills/{testomatio/explorbot → explorbot}/explorbot-fundamentals/references/no-install.md +0 -0
  170. /package/skills/{testomatio/explorbot → explorbot}/explorbot-plan/SKILL.md +0 -0
  171. /package/skills/{testomatio/explorbot → explorbot}/explorbot-setup/SKILL.md +0 -0
  172. /package/skills/{testomatio/explorbot → explorbot}/prima/SKILL.md +0 -0
  173. /package/skills/{testomatio/qa-process → qa-process}/qa-lead-strategy-advisor/SKILL.md +0 -0
  174. /package/skills/{testomatio/qa-process → qa-process}/qa-lead-strategy-advisor/references/output-format.md +0 -0
  175. /package/skills/{testomatio/qa-process → qa-process}/qa-review-pr/SKILL.md +0 -0
  176. /package/skills/{testomatio/qa-process → qa-process}/testing-workflow/SKILL.md +0 -0
  177. /package/skills/{testomatio/requirements → requirements}/catalog-features/SKILL.md +0 -0
  178. /package/skills/{testomatio/requirements → requirements}/catalog-features/references/layout.md +0 -0
  179. /package/skills/{testomatio/requirements → requirements}/detect-product-mismatches/SKILL.md +0 -0
  180. /package/skills/{testomatio/requirements → requirements}/detect-product-mismatches/references/features.md +0 -0
  181. /package/skills/{testomatio/requirements → requirements}/detect-product-mismatches/references/layout.md +0 -0
  182. /package/skills/{testomatio/requirements → requirements}/pull-request-diff-analyzer/SKILL.md +0 -0
  183. /package/skills/{testomatio/requirements → requirements}/qa-explain-behavior/SKILL.md +0 -0
  184. /package/skills/{testomatio/requirements → requirements}/qa-explain-behavior/references/answer-shapes.md +0 -0
  185. /package/skills/{testomatio/requirements → requirements}/qa-explain-behavior/references/examples.md +0 -0
  186. /package/skills/{testomatio/requirements → requirements}/qa-pr-requirements-analyzer/SKILL.md +0 -0
  187. /package/skills/{testomatio/requirements → requirements}/qa-pr-requirements-analyzer/references/summary-example.md +0 -0
  188. /package/skills/{testomatio/requirements → requirements}/qa-requirement-reviewer/SKILL.md +0 -0
  189. /package/skills/{testomatio/requirements → requirements}/qa-requirement-reviewer/references/requirements_reviewer_examples.md +0 -0
  190. /package/skills/{testomatio/requirements → requirements}/qa-thinking/SKILL.md +0 -0
  191. /package/skills/{testomatio/requirements → requirements}/wiki-from-code/SKILL.md +0 -0
  192. /package/skills/{testomatio/requirements → requirements}/wiki-from-code/references/behaviors.md +0 -0
  193. /package/skills/{testomatio/requirements → requirements}/wiki-from-code/references/layout.md +0 -0
  194. /package/skills/{testomatio/requirements → requirements}/write-user-story/SKILL.md +0 -0
  195. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/CLAUDE.md +0 -0
  196. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/SKILL.md +0 -0
  197. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/CODECEPTJS_BEST_PRACTICES.md +0 -0
  198. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/FINAL_SUMMARY_TEMPLATE.md +0 -0
  199. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/PLAYWRIGHT_BEST_PRACTICES.md +0 -0
  200. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/POM_BEST_PRACTICES.md +0 -0
  201. /package/skills/{testomatio/test-automation → test-automation}/automate-manual-test-cases/references/TEST_DATA_MANAGEMENT.md +0 -0
  202. /package/skills/{testomatio/test-automation → test-automation}/debug-fix-failed-flaky-autotests/SKILL.md +0 -0
  203. /package/skills/{testomatio/test-automation → test-automation}/debug-fix-failed-flaky-autotests/references/DEBUGGING_QUICK_REFERENCE.md +0 -0
  204. /package/skills/{testomatio/test-automation → test-automation}/epic-requirements-specification/SKILL.md +0 -0
  205. /package/skills/{testomatio/test-automation → test-automation}/qa-automation-test-consolidation/SKILL.md +0 -0
  206. /package/skills/{testomatio/test-automation → test-automation}/qa-data-seeder/SKILL.md +0 -0
  207. /package/skills/{testomatio/test-automation → test-automation}/run-tests-with-testomatio-reporter/SKILL.md +0 -0
  208. /package/skills/{testomatio/test-automation → test-automation}/setup-change-aware-pr-testing/SKILL.md +0 -0
  209. /package/skills/{testomatio/test-automation → test-automation}/setup-ci-automation/SKILL.md +0 -0
  210. /package/skills/{testomatio/test-automation → test-automation}/testomat-allure-adapter/SKILL.md +0 -0
  211. /package/skills/{testomatio/test-management → test-management}/detect-duplicate-test-cases/SKILL.md +0 -0
  212. /package/skills/{testomatio/test-management → test-management}/detect-duplicate-test-cases/references/DUPLICATE_INSTRUCTIONS.md +0 -0
  213. /package/skills/{testomatio/test-management → test-management}/detect-useless-tests/SKILL.md +0 -0
  214. /package/skills/{testomatio/test-management → test-management}/improve-test-cases/SKILL.md +0 -0
  215. /package/skills/{testomatio/test-management → test-management}/improve-test-cases/references/TESTOMAT_MARKDOWN_EXAMPLE.md +0 -0
  216. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/SKILL.md +0 -0
  217. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/CSV_MIGRATION.md +0 -0
  218. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/CUSTOM_MIGRATION.md +0 -0
  219. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/TESTMO_MIGRATION.md +0 -0
  220. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/TESTRAIL_MIGRATION.md +0 -0
  221. /package/skills/{testomatio/test-management → test-management}/migrate-to-testomatio/references/XRAY_MIGRATION.md +0 -0
  222. /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/SKILL.md +0 -0
  223. /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/references/TESTOMATIO_ARTIFACTS.md +0 -0
  224. /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/references/TESTOMATIO_HTML_REPORT.md +0 -0
  225. /package/skills/{testomatio/test-management → test-management}/qa-e2e-tests-reporting/references/TESTOMATIO_REPORTERS_CONFIG.md +0 -0
  226. /package/skills/{testomatio/test-management → test-management}/qa-split-testing-levels-pyramid/SKILL.md +0 -0
  227. /package/skills/{testomatio/test-management → test-management}/qa-sprint-report-by-testomatio/SKILL.md +0 -0
  228. /package/skills/{testomatio/test-management → test-management}/qa-sprint-report-by-testomatio/references/qa-sprint-report.md +0 -0
  229. /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/SKILL.md +0 -0
  230. /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/references/COVERAGE_FILE_FORMAT.md +0 -0
  231. /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/references/E2E_FRAMEWORKS.md +0 -0
  232. /package/skills/{testomatio/test-management → test-management}/qa-test-code-coverage/scripts/check-coverage.mjs +0 -0
  233. /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/SKILL.md +0 -0
  234. /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/references/test-case-format.md +0 -0
  235. /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/references/testomat-tms-guide.md +0 -0
  236. /package/skills/{testomatio/test-management → test-management}/qa-write-test-cases/references/writing-rule.md +0 -0
  237. /package/skills/{testomatio/test-management → test-management}/scan-automation-project/SKILL.md +0 -0
  238. /package/skills/{testomatio/test-management → test-management}/sync-test-cases-with-tms/SKILL.md +0 -0
  239. /package/skills/{testomatio/test-management → test-management}/sync-test-cases-with-tms/references/TESTOMATIO_CLI.md +0 -0
  240. /package/skills/{testomatio/test-management → test-management}/testomatio-mcp/SKILL.md +0 -0
  241. /package/skills/{testomatio/test-management → test-management}/testomatio-mcp/references/MCP_SETUP.md +0 -0
@@ -1,453 +0,0 @@
1
- # Projects & Dependencies
2
-
3
- ## Table of Contents
4
-
5
- 1. [Project Configuration](#project-configuration)
6
- 2. [Project Dependencies](#project-dependencies)
7
- 3. [Setup Projects](#setup-projects)
8
- 4. [Filtering & Running Projects](#filtering--running-projects)
9
- 5. [Sharing Configuration](#sharing-configuration)
10
- 6. [Advanced Patterns](#advanced-patterns)
11
-
12
- ## Project Configuration
13
-
14
- ### Basic Multi-Browser Setup
15
-
16
- ```typescript
17
- // playwright.config.ts
18
- import { defineConfig, devices } from "@playwright/test";
19
-
20
- export default defineConfig({
21
- projects: [
22
- {
23
- name: "chromium",
24
- use: { ...devices["Desktop Chrome"] },
25
- },
26
- {
27
- name: "firefox",
28
- use: { ...devices["Desktop Firefox"] },
29
- },
30
- {
31
- name: "webkit",
32
- use: { ...devices["Desktop Safari"] },
33
- },
34
- ],
35
- });
36
- ```
37
-
38
- ### Environment-Based Projects
39
-
40
- ```typescript
41
- export default defineConfig({
42
- projects: [
43
- {
44
- name: "staging",
45
- use: {
46
- baseURL: "https://staging.example.com",
47
- },
48
- },
49
- {
50
- name: "production",
51
- use: {
52
- baseURL: "https://example.com",
53
- },
54
- },
55
- {
56
- name: "local",
57
- use: {
58
- baseURL: "http://localhost:3000",
59
- },
60
- },
61
- ],
62
- });
63
- ```
64
-
65
- ### Test Type Projects
66
-
67
- ```typescript
68
- export default defineConfig({
69
- projects: [
70
- {
71
- name: "e2e",
72
- testDir: "./tests/e2e",
73
- use: { ...devices["Desktop Chrome"] },
74
- },
75
- {
76
- name: "api",
77
- testDir: "./tests/api",
78
- use: { baseURL: "http://localhost:3000" },
79
- },
80
- {
81
- name: "visual",
82
- testDir: "./tests/visual",
83
- use: {
84
- ...devices["Desktop Chrome"],
85
- viewport: { width: 1280, height: 720 },
86
- },
87
- },
88
- ],
89
- });
90
- ```
91
-
92
- ## Project Dependencies
93
-
94
- ### Setup Dependency
95
-
96
- ```typescript
97
- export default defineConfig({
98
- projects: [
99
- // Setup project runs first
100
- {
101
- name: "setup",
102
- testMatch: /.*\.setup\.ts/,
103
- },
104
-
105
- // Browser projects depend on setup
106
- {
107
- name: "chromium",
108
- use: {
109
- ...devices["Desktop Chrome"],
110
- storageState: ".auth/user.json",
111
- },
112
- dependencies: ["setup"],
113
- },
114
- {
115
- name: "firefox",
116
- use: {
117
- ...devices["Desktop Firefox"],
118
- storageState: ".auth/user.json",
119
- },
120
- dependencies: ["setup"],
121
- },
122
- ],
123
- });
124
- ```
125
-
126
- ### Multiple Auth States
127
-
128
- ```typescript
129
- export default defineConfig({
130
- projects: [
131
- // Auth setup projects
132
- {
133
- name: "setup-admin",
134
- testMatch: /admin\.setup\.ts/,
135
- },
136
- {
137
- name: "setup-user",
138
- testMatch: /user\.setup\.ts/,
139
- },
140
-
141
- // Admin tests
142
- {
143
- name: "admin-tests",
144
- testDir: "./tests/admin",
145
- use: { storageState: ".auth/admin.json" },
146
- dependencies: ["setup-admin"],
147
- },
148
-
149
- // User tests
150
- {
151
- name: "user-tests",
152
- testDir: "./tests/user",
153
- use: { storageState: ".auth/user.json" },
154
- dependencies: ["setup-user"],
155
- },
156
-
157
- // Tests that need both
158
- {
159
- name: "integration-tests",
160
- testDir: "./tests/integration",
161
- dependencies: ["setup-admin", "setup-user"],
162
- },
163
- ],
164
- });
165
- ```
166
-
167
- ### Chained Dependencies
168
-
169
- ```typescript
170
- export default defineConfig({
171
- projects: [
172
- // Step 1: Database setup
173
- {
174
- name: "db-setup",
175
- testMatch: /db\.setup\.ts/,
176
- },
177
-
178
- // Step 2: Auth setup (needs DB)
179
- {
180
- name: "auth-setup",
181
- testMatch: /auth\.setup\.ts/,
182
- dependencies: ["db-setup"],
183
- },
184
-
185
- // Step 3: Seed data (needs auth)
186
- {
187
- name: "seed-setup",
188
- testMatch: /seed\.setup\.ts/,
189
- dependencies: ["auth-setup"],
190
- },
191
-
192
- // Tests (need everything)
193
- {
194
- name: "tests",
195
- testDir: "./tests",
196
- dependencies: ["seed-setup"],
197
- },
198
- ],
199
- });
200
- ```
201
-
202
- ## Setup Projects
203
-
204
- ### Authentication Setup
205
-
206
- Setup projects are the recommended way to handle authentication. They run before your main test projects and can use Playwright fixtures.
207
-
208
- > **For complete authentication patterns** (storage state, multiple auth states, auth fixtures), see [fixtures-hooks.md](fixtures-hooks.md#authentication-patterns).
209
-
210
- ### Data Seeding Setup
211
-
212
- ```typescript
213
- // seed.setup.ts
214
- import { test as setup } from "@playwright/test";
215
-
216
- setup("seed test data", async ({ request }) => {
217
- // Create test data via API
218
- await request.post("/api/test/seed", {
219
- data: {
220
- users: 10,
221
- products: 50,
222
- orders: 100,
223
- },
224
- });
225
- });
226
- ```
227
-
228
- ### Cleanup Setup
229
-
230
- ```typescript
231
- // cleanup.setup.ts
232
- import { test as setup } from "@playwright/test";
233
-
234
- setup("cleanup previous run", async ({ request }) => {
235
- // Clean up data from previous test runs
236
- await request.delete("/api/test/cleanup");
237
- });
238
- ```
239
-
240
- ## Filtering & Running Projects
241
-
242
- ### Run Specific Project
243
-
244
- ```bash
245
- # Run single project
246
- npx playwright test --project=chromium
247
-
248
- # Run multiple projects
249
- npx playwright test --project=chromium --project=firefox
250
- ```
251
-
252
- ### Run by Grep
253
-
254
- ```bash
255
- # Run tests matching pattern
256
- npx playwright test --grep @smoke
257
-
258
- # Run project with grep
259
- npx playwright test --project=chromium --grep @critical
260
-
261
- # Exclude pattern
262
- npx playwright test --grep-invert @slow
263
- ```
264
-
265
- ### Project-Specific Grep
266
-
267
- ```typescript
268
- export default defineConfig({
269
- projects: [
270
- {
271
- name: "smoke",
272
- grep: /@smoke/,
273
- use: { ...devices["Desktop Chrome"] },
274
- },
275
- {
276
- name: "regression",
277
- grepInvert: /@smoke/,
278
- use: { ...devices["Desktop Chrome"] },
279
- },
280
- ],
281
- });
282
- ```
283
-
284
- ## Sharing Configuration
285
-
286
- ### Base Configuration
287
-
288
- ```typescript
289
- // playwright.config.ts
290
- const baseConfig = {
291
- timeout: 30000,
292
- expect: { timeout: 5000 },
293
- use: {
294
- trace: "on-first-retry",
295
- screenshot: "only-on-failure",
296
- },
297
- };
298
-
299
- export default defineConfig({
300
- ...baseConfig,
301
- projects: [
302
- {
303
- name: "chromium",
304
- use: {
305
- ...baseConfig.use,
306
- ...devices["Desktop Chrome"],
307
- },
308
- },
309
- {
310
- name: "firefox",
311
- use: {
312
- ...baseConfig.use,
313
- ...devices["Desktop Firefox"],
314
- },
315
- },
316
- ],
317
- });
318
- ```
319
-
320
- ### Shared Project Settings
321
-
322
- ```typescript
323
- const sharedBrowserConfig = {
324
- timeout: 60000,
325
- retries: 2,
326
- use: {
327
- video: "on-first-retry",
328
- trace: "on-first-retry",
329
- },
330
- };
331
-
332
- export default defineConfig({
333
- projects: [
334
- {
335
- name: "chromium",
336
- ...sharedBrowserConfig,
337
- use: {
338
- ...sharedBrowserConfig.use,
339
- ...devices["Desktop Chrome"],
340
- },
341
- },
342
- {
343
- name: "firefox",
344
- ...sharedBrowserConfig,
345
- use: {
346
- ...sharedBrowserConfig.use,
347
- ...devices["Desktop Firefox"],
348
- },
349
- },
350
- ],
351
- });
352
- ```
353
-
354
- ## Advanced Patterns
355
-
356
- ### Conditional Projects
357
-
358
- ```typescript
359
- const projects = [
360
- {
361
- name: "chromium",
362
- use: { ...devices["Desktop Chrome"] },
363
- },
364
- ];
365
-
366
- // Add Firefox only in CI
367
- if (process.env.CI) {
368
- projects.push({
369
- name: "firefox",
370
- use: { ...devices["Desktop Firefox"] },
371
- });
372
- }
373
-
374
- // Add mobile only for specific test dirs
375
- if (process.env.TEST_MOBILE) {
376
- projects.push({
377
- name: "mobile",
378
- use: { ...devices["iPhone 14"] },
379
- });
380
- }
381
-
382
- export default defineConfig({ projects });
383
- ```
384
-
385
- ### Project Metadata
386
-
387
- ```typescript
388
- export default defineConfig({
389
- projects: [
390
- {
391
- name: "chromium",
392
- use: { ...devices["Desktop Chrome"] },
393
- metadata: {
394
- platform: "desktop",
395
- browser: "chromium",
396
- priority: "high",
397
- },
398
- },
399
- ],
400
- });
401
-
402
- // Access in test
403
- test("example", async ({ page }, testInfo) => {
404
- const { platform, priority } = testInfo.project.metadata;
405
- console.log(`Running on ${platform} with ${priority} priority`);
406
- });
407
- ```
408
-
409
- ### Teardown Projects
410
-
411
- ```typescript
412
- export default defineConfig({
413
- projects: [
414
- {
415
- name: "setup",
416
- testMatch: /.*\.setup\.ts/,
417
- teardown: "teardown", // Run teardown after this completes
418
- },
419
- {
420
- name: "teardown",
421
- testMatch: /.*\.teardown\.ts/,
422
- },
423
- {
424
- name: "tests",
425
- dependencies: ["setup"],
426
- },
427
- ],
428
- });
429
- ```
430
-
431
- ```typescript
432
- // cleanup.teardown.ts
433
- import { test as teardown } from "@playwright/test";
434
-
435
- teardown("cleanup", async ({ request }) => {
436
- await request.delete("/api/test/data");
437
- });
438
- ```
439
-
440
- ## Anti-Patterns to Avoid
441
-
442
- | Anti-Pattern | Problem | Solution |
443
- | -------------------------- | ---------------------- | ----------------------------------- |
444
- | Too many browser projects | Slow CI, expensive | Focus on critical browsers |
445
- | Missing setup dependencies | Tests fail randomly | Declare all dependencies explicitly |
446
- | Duplicated configuration | Hard to maintain | Extract shared config |
447
- | Not using setup projects | Repeated auth in tests | Use setup project + storageState |
448
-
449
- ## Related References
450
-
451
- - **Global Setup**: See [global-setup.md](global-setup.md) for globalSetup vs setup projects
452
- - **Fixtures**: See [fixtures-hooks.md](fixtures-hooks.md) for authentication patterns
453
- - **CI/CD**: See [ci-cd.md](../infrastructure-ci-cd/ci-cd.md) for running projects in CI