testeiya 0.3.9 → 0.3.14

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 (180) hide show
  1. package/README.md +353 -27
  2. package/dist/prompt/index.js +6 -2
  3. package/dist/prompt/index.js.map +1 -1
  4. package/dist/prompt/print.js +8 -0
  5. package/dist/prompt/print.js.map +1 -1
  6. package/dist/prompt/system-prompt.js +14 -4
  7. package/dist/prompt/system-prompt.js.map +1 -1
  8. package/dist/prompt/testomatio.js +3 -3
  9. package/dist/prompt/tools.js +28 -7
  10. package/dist/prompt/tools.js.map +1 -1
  11. package/dist/src/args.js +198 -46
  12. package/dist/src/args.js.map +1 -1
  13. package/dist/src/cli.js +64 -20
  14. package/dist/src/cli.js.map +1 -1
  15. package/dist/src/doctor.js +171 -0
  16. package/dist/src/doctor.js.map +1 -0
  17. package/dist/src/env.js +39 -5
  18. package/dist/src/env.js.map +1 -1
  19. package/dist/src/mcp.js +3 -3
  20. package/dist/src/mcp.js.map +1 -1
  21. package/dist/src/model.js +15 -10
  22. package/dist/src/model.js.map +1 -1
  23. package/dist/src/models.js +38 -0
  24. package/dist/src/models.js.map +1 -0
  25. package/dist/src/output.js +216 -0
  26. package/dist/src/output.js.map +1 -0
  27. package/dist/src/run.js +141 -27
  28. package/dist/src/run.js.map +1 -1
  29. package/dist/src/session.js +46 -25
  30. package/dist/src/session.js.map +1 -1
  31. package/dist/src/sessions.js +72 -0
  32. package/dist/src/sessions.js.map +1 -0
  33. package/dist/src/skills.js +130 -0
  34. package/dist/src/skills.js.map +1 -0
  35. package/package.json +7 -3
  36. package/prompt/index.ts +11 -2
  37. package/prompt/print.ts +9 -0
  38. package/prompt/system-prompt.ts +18 -4
  39. package/prompt/testomatio.ts +3 -3
  40. package/prompt/tools.ts +30 -7
  41. package/skills/codeceptjs/ci-fix-tests/SKILL.md +119 -0
  42. package/skills/codeceptjs/codeceptjs-auth/SKILL.md +141 -0
  43. package/skills/codeceptjs/codeceptjs-exploration/SKILL.md +100 -0
  44. package/skills/codeceptjs/codeceptjs-fundamentals/SKILL.md +196 -0
  45. package/skills/codeceptjs/codeceptjs-run-analysis/SKILL.md +83 -0
  46. package/skills/codeceptjs/debugging-codeceptjs-tests/SKILL.md +126 -0
  47. package/skills/codeceptjs/migrate-codeceptjs-4/SKILL.md +109 -0
  48. package/skills/codeceptjs/migrate-cypress-to-codeceptjs/SKILL.md +295 -0
  49. package/skills/codeceptjs/migrate-protractor-to-codeceptjs/SKILL.md +339 -0
  50. package/skills/codeceptjs/migrate-selenium-java-to-codeceptjs/SKILL.md +459 -0
  51. package/skills/codeceptjs/migrate-testcafe-to-codeceptjs/SKILL.md +338 -0
  52. package/skills/codeceptjs/refactoring-codeceptjs-tests/SKILL.md +78 -0
  53. package/skills/codeceptjs/writing-codeceptjs-tests/SKILL.md +102 -0
  54. package/skills/playwright/playwright-best-practices/SKILL.md +303 -0
  55. package/skills/playwright/playwright-best-practices/advanced/authentication-flows.md +360 -0
  56. package/skills/playwright/playwright-best-practices/advanced/authentication.md +871 -0
  57. package/skills/playwright/playwright-best-practices/advanced/clock-mocking.md +364 -0
  58. package/skills/playwright/playwright-best-practices/advanced/mobile-testing.md +409 -0
  59. package/skills/playwright/playwright-best-practices/advanced/multi-context.md +288 -0
  60. package/skills/playwright/playwright-best-practices/advanced/multi-user.md +393 -0
  61. package/skills/playwright/playwright-best-practices/advanced/network-advanced.md +452 -0
  62. package/skills/playwright/playwright-best-practices/advanced/third-party.md +464 -0
  63. package/skills/playwright/playwright-best-practices/architecture/pom-vs-fixtures.md +363 -0
  64. package/skills/playwright/playwright-best-practices/architecture/test-architecture.md +369 -0
  65. package/skills/playwright/playwright-best-practices/architecture/when-to-mock.md +383 -0
  66. package/skills/playwright/playwright-best-practices/browser-apis/browser-apis.md +391 -0
  67. package/skills/playwright/playwright-best-practices/browser-apis/iframes.md +403 -0
  68. package/skills/playwright/playwright-best-practices/browser-apis/service-workers.md +504 -0
  69. package/skills/playwright/playwright-best-practices/browser-apis/websockets.md +403 -0
  70. package/skills/playwright/playwright-best-practices/core/annotations.md +424 -0
  71. package/skills/playwright/playwright-best-practices/core/assertions-waiting.md +361 -0
  72. package/skills/playwright/playwright-best-practices/core/configuration.md +452 -0
  73. package/skills/playwright/playwright-best-practices/core/fixtures-hooks.md +417 -0
  74. package/skills/playwright/playwright-best-practices/core/global-setup.md +434 -0
  75. package/skills/playwright/playwright-best-practices/core/locators.md +242 -0
  76. package/skills/playwright/playwright-best-practices/core/page-object-model.md +315 -0
  77. package/skills/playwright/playwright-best-practices/core/projects-dependencies.md +453 -0
  78. package/skills/playwright/playwright-best-practices/core/test-data.md +492 -0
  79. package/skills/playwright/playwright-best-practices/core/test-suite-structure.md +361 -0
  80. package/skills/playwright/playwright-best-practices/core/test-tags.md +298 -0
  81. package/skills/playwright/playwright-best-practices/debugging/console-errors.md +420 -0
  82. package/skills/playwright/playwright-best-practices/debugging/debugging.md +504 -0
  83. package/skills/playwright/playwright-best-practices/debugging/error-testing.md +360 -0
  84. package/skills/playwright/playwright-best-practices/debugging/flaky-tests.md +496 -0
  85. package/skills/playwright/playwright-best-practices/frameworks/angular.md +530 -0
  86. package/skills/playwright/playwright-best-practices/frameworks/nextjs.md +469 -0
  87. package/skills/playwright/playwright-best-practices/frameworks/react.md +531 -0
  88. package/skills/playwright/playwright-best-practices/frameworks/vue.md +574 -0
  89. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/ci-cd.md +468 -0
  90. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/docker.md +283 -0
  91. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/github-actions.md +546 -0
  92. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/gitlab.md +397 -0
  93. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/other-providers.md +521 -0
  94. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/parallel-sharding.md +371 -0
  95. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/performance.md +453 -0
  96. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/reporting.md +424 -0
  97. package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/test-coverage.md +497 -0
  98. package/skills/playwright/playwright-best-practices/testing-patterns/accessibility.md +359 -0
  99. package/skills/playwright/playwright-best-practices/testing-patterns/api-testing.md +719 -0
  100. package/skills/playwright/playwright-best-practices/testing-patterns/browser-extensions.md +506 -0
  101. package/skills/playwright/playwright-best-practices/testing-patterns/canvas-webgl.md +493 -0
  102. package/skills/playwright/playwright-best-practices/testing-patterns/component-testing.md +500 -0
  103. package/skills/playwright/playwright-best-practices/testing-patterns/drag-drop.md +576 -0
  104. package/skills/playwright/playwright-best-practices/testing-patterns/electron.md +509 -0
  105. package/skills/playwright/playwright-best-practices/testing-patterns/file-operations.md +377 -0
  106. package/skills/playwright/playwright-best-practices/testing-patterns/file-upload-download.md +562 -0
  107. package/skills/playwright/playwright-best-practices/testing-patterns/forms-validation.md +561 -0
  108. package/skills/playwright/playwright-best-practices/testing-patterns/graphql-testing.md +331 -0
  109. package/skills/playwright/playwright-best-practices/testing-patterns/i18n.md +508 -0
  110. package/skills/playwright/playwright-best-practices/testing-patterns/performance-testing.md +476 -0
  111. package/skills/playwright/playwright-best-practices/testing-patterns/security-testing.md +430 -0
  112. package/skills/playwright/playwright-best-practices/testing-patterns/visual-regression.md +634 -0
  113. package/skills/playwright/playwright-cli/SKILL.md +420 -0
  114. package/skills/playwright/playwright-cli/references/element-attributes.md +23 -0
  115. package/skills/playwright/playwright-cli/references/playwright-tests.md +39 -0
  116. package/skills/playwright/playwright-cli/references/request-mocking.md +87 -0
  117. package/skills/playwright/playwright-cli/references/running-code.md +241 -0
  118. package/skills/playwright/playwright-cli/references/session-management.md +225 -0
  119. package/skills/playwright/playwright-cli/references/storage-state.md +275 -0
  120. package/skills/playwright/playwright-cli/references/test-generation.md +433 -0
  121. package/skills/playwright/playwright-cli/references/tracing.md +139 -0
  122. package/skills/playwright/playwright-cli/references/video-recording.md +143 -0
  123. package/skills/skills.lock.json +41 -37
  124. package/skills/skills.yaml +1 -0
  125. package/skills/testomatio/explorbot/explorbot-fundamentals/SKILL.md +76 -0
  126. package/skills/testomatio/explorbot/explorbot-fundamentals/references/no-install.md +36 -0
  127. package/skills/testomatio/explorbot/explorbot-plan/SKILL.md +108 -0
  128. package/skills/testomatio/explorbot/explorbot-setup/SKILL.md +86 -0
  129. package/skills/testomatio/explorbot/prima/SKILL.md +87 -0
  130. package/skills/testomatio/qa-process/qa-explain-behavior/SKILL.md +111 -0
  131. package/skills/testomatio/qa-process/qa-explain-behavior/references/answer-shapes.md +116 -0
  132. package/skills/testomatio/qa-process/qa-explain-behavior/references/examples.md +157 -0
  133. package/skills/testomatio/qa-process/qa-lead-strategy-advisor/SKILL.md +91 -0
  134. package/skills/testomatio/qa-process/qa-lead-strategy-advisor/references/output-format.md +71 -0
  135. package/skills/testomatio/qa-process/testing-workflow/SKILL.md +227 -0
  136. package/skills/testomatio/test-automation/automate-manual-test-cases/CLAUDE.md +56 -0
  137. package/skills/testomatio/test-automation/automate-manual-test-cases/SKILL.md +242 -0
  138. package/skills/testomatio/test-automation/automate-manual-test-cases/references/CODECEPTJS_BEST_PRACTICES.md +182 -0
  139. package/skills/testomatio/test-automation/automate-manual-test-cases/references/FINAL_SUMMARY_TEMPLATE.md +22 -0
  140. package/skills/testomatio/test-automation/automate-manual-test-cases/references/PLAYWRIGHT_BEST_PRACTICES.md +90 -0
  141. package/skills/testomatio/test-automation/automate-manual-test-cases/references/POM_BEST_PRACTICES.md +53 -0
  142. package/skills/testomatio/test-automation/automate-manual-test-cases/references/TEST_DATA_MANAGEMENT.md +52 -0
  143. package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/SKILL.md +107 -0
  144. package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/references/DEBUGGING_QUICK_REFERENCE.md +113 -0
  145. package/skills/testomatio/test-automation/qa-automation-test-consolidation/SKILL.md +29 -0
  146. package/skills/testomatio/test-automation/qa-data-seeder/SKILL.md +83 -0
  147. package/skills/testomatio/test-automation/run-tests-with-testomatio-reporter/SKILL.md +153 -0
  148. package/skills/testomatio/test-automation/setup-change-aware-pr-testing/SKILL.md +190 -0
  149. package/skills/testomatio/test-automation/setup-ci-automation/SKILL.md +76 -0
  150. package/skills/testomatio/test-automation/testomat-allure-adapter/SKILL.md +289 -0
  151. package/skills/testomatio/test-management/detect-duplicate-test-cases/SKILL.md +86 -0
  152. package/skills/testomatio/test-management/detect-duplicate-test-cases/references/DUPLICATE_INSTRUCTIONS.md +54 -0
  153. package/skills/testomatio/test-management/improve-test-cases/SKILL.md +114 -0
  154. package/skills/testomatio/test-management/improve-test-cases/references/TESTOMAT_MARKDOWN_EXAMPLE.md +66 -0
  155. package/skills/testomatio/test-management/pull-request-diff-analyzer/SKILL.md +141 -0
  156. package/skills/testomatio/test-management/qa-e2e-tests-reporting/SKILL.md +354 -0
  157. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_ARTIFACTS.md +82 -0
  158. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_HTML_REPORT.md +37 -0
  159. package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_REPORTERS_CONFIG.md +118 -0
  160. package/skills/testomatio/test-management/qa-pr-requirements-analyzer/SKILL.md +149 -0
  161. package/skills/testomatio/test-management/qa-pr-requirements-analyzer/references/summary-example.md +54 -0
  162. package/skills/testomatio/test-management/qa-requirement-reviewer/SKILL.md +126 -0
  163. package/skills/testomatio/test-management/qa-requirement-reviewer/references/requirements_reviewer_examples.md +128 -0
  164. package/skills/testomatio/test-management/qa-split-testing-levels-pyramid/SKILL.md +55 -0
  165. package/skills/testomatio/test-management/qa-sprint-report-by-testomatio/SKILL.md +220 -0
  166. package/skills/testomatio/test-management/qa-sprint-report-by-testomatio/references/qa-sprint-report.md +126 -0
  167. package/skills/testomatio/test-management/qa-test-code-coverage/SKILL.md +174 -0
  168. package/skills/testomatio/test-management/qa-test-code-coverage/references/COVERAGE_FILE_FORMAT.md +138 -0
  169. package/skills/testomatio/test-management/qa-test-code-coverage/references/E2E_FRAMEWORKS.md +65 -0
  170. package/skills/testomatio/test-management/qa-test-code-coverage/scripts/check-coverage.mjs +40 -0
  171. package/skills/testomatio/test-management/qa-thinking/SKILL.md +36 -0
  172. package/skills/testomatio/test-management/qa-write-test-cases/SKILL.md +267 -0
  173. package/skills/testomatio/test-management/qa-write-test-cases/references/test-case-format.md +387 -0
  174. package/skills/testomatio/test-management/qa-write-test-cases/references/testomat-tms-guide.md +72 -0
  175. package/skills/testomatio/test-management/qa-write-test-cases/references/writing-rule.md +159 -0
  176. package/skills/testomatio/test-management/scan-automation-project/SKILL.md +152 -0
  177. package/skills/testomatio/test-management/sync-test-cases-with-tms/SKILL.md +107 -0
  178. package/skills/testomatio/test-management/sync-test-cases-with-tms/references/TESTOMATIO_CLI.md +140 -0
  179. package/skills/testomatio/test-management/testomatio-mcp/SKILL.md +195 -0
  180. package/skills/testomatio/test-management/testomatio-mcp/references/MCP_SETUP.md +177 -0
@@ -0,0 +1,289 @@
1
+ ---
2
+ name: Testomat Allure Adapter Setup
3
+ description: Configure Testomat.io reporting for Java projects that already use Allure. Ask the user whether they want to keep existing Allure annotations and only add Testomat.io reporting or replace Allure annotations with native Testomat.io annotations. If they keep Allure add the testomat-allure-adapter dependency for Maven or Gradle.
4
+ required_action: true
5
+ ---
6
+
7
+ # Testomat Allure Adapter
8
+
9
+ Configure Testomat.io reporting for Java projects that already use Allure. Two modes: keep Allure and add the adapter, or migrate to native Testomat.io annotations.
10
+
11
+ Before configuring the project, ask the user which mode they want:
12
+
13
+ > Do you want to keep your existing Allure annotations and use Testomat.io only for reporting test results, or would you like to replace Allure annotations with Testomat.io annotations?
14
+
15
+ ## Option 1: Keep Allure and Report to Testomat.io
16
+
17
+ Use this option if:
18
+
19
+ * The project already uses Allure annotations.
20
+ * The user wants to keep annotations such as `@Epic`, `@Feature`, `@Story`, `@Owner`, `@Severity`.
21
+
22
+ **The adapter only transfers data from Allure to Testomat.io. It does not migrate, generate, or synchronize annotations from Testomat.io back to Allure.**
23
+
24
+ Install the Testomat Allure Adapter.
25
+
26
+ ### Maven
27
+
28
+ ```xml
29
+ <dependency>
30
+ <groupId>io.testomat</groupId>
31
+ <artifactId>testomat-allure-adapter</artifactId>
32
+ <version><LATEST_STABLE_VERSION></version>
33
+ </dependency>
34
+ ```
35
+
36
+ ### Gradle
37
+
38
+ ```gradle
39
+ implementation 'io.testomat:testomat-allure-adapter:<LATEST_STABLE_VERSION>'
40
+ ```
41
+
42
+ ## Option 2: Migrate from Allure to Testomat.io
43
+
44
+ Use this option if:
45
+
46
+ * The user wants to stop using Allure annotations.
47
+ * The user wants Testomat.io annotations and reporting only.
48
+ * The project is new or a migration is planned.
49
+
50
+ Migrate the project to the standard Testomat.io reporter.
51
+
52
+ **Remove Allure dependencies only when both conditions hold:**
53
+
54
+ 1. The user explicitly chose to remove unsupported Allure annotations.
55
+ 2. No Allure annotations, APIs, listeners, or reporting integrations remain in the project.
56
+
57
+ ### Supported Replacements
58
+
59
+ Apply these automatically:
60
+
61
+ ```text
62
+ @DisplayName → @Title (automatic)
63
+ @AllureId → @TestId (automatic)
64
+ @TmsLink → @TestId (automatic)
65
+ @Attachment → @Artifact (automatic)
66
+ @Step → @Step (automatic)
67
+ ```
68
+
69
+ ### Unsupported Allure Annotations
70
+
71
+ All other Allure annotations (`@Epic`, `@Feature`, `@Story`, `@Owner`, `@Severity`, `@Description`, `@Issue`, etc.) have no Testomat.io equivalent. **Never migrate, replace, or remove them automatically.**
72
+
73
+ If any are detected, ask:
74
+
75
+ > Unsupported Allure annotations were found. Testomat.io currently does not provide direct replacements for these annotations. Would you like to keep them or remove them?
76
+
77
+ If the user keeps them:
78
+
79
+ * Leave the annotations, Allure dependencies, and Allure configuration intact.
80
+
81
+ If the user removes them:
82
+
83
+ * Remove the unsupported annotations.
84
+ * Continue migration using only supported Testomat.io annotations.
85
+ * Remove Allure dependencies only per the conditions above.
86
+
87
+ ### Replace @DisplayName
88
+
89
+ ```java
90
+ @DisplayName("Login test")
91
+ ```
92
+
93
+ ```java
94
+ @Title("Login test")
95
+ ```
96
+
97
+ ```java
98
+ import org.junit.jupiter.api.DisplayName;
99
+ ```
100
+
101
+ ```java
102
+ import io.testomat.core.annotation.Title;
103
+ ```
104
+
105
+ ### Replace @AllureId
106
+
107
+ ```java
108
+ @AllureId("a1b2c3d4")
109
+ ```
110
+
111
+ ```java
112
+ @TestId("a1b2c3d4")
113
+ ```
114
+
115
+ ```java
116
+ import io.qameta.allure.AllureId;
117
+ ```
118
+
119
+ ```java
120
+ import io.testomat.core.annotation.TestId;
121
+ ```
122
+
123
+ ### Replace @TmsLink
124
+
125
+ ```java
126
+ @TmsLink("k8m2x9q1")
127
+ ```
128
+
129
+ ```java
130
+ @TestId("k8m2x9q1")
131
+ ```
132
+
133
+ ```java
134
+ import io.qameta.allure.TmsLink;
135
+ ```
136
+
137
+ ```java
138
+ import io.testomat.core.annotation.TestId;
139
+ ```
140
+
141
+ ### @AllureId and @TmsLink Conflict
142
+
143
+ If both are present on the same test:
144
+
145
+ * **Do not replace automatically.**
146
+ * Both map to `@TestId`, and Testomat.io supports only one `@TestId` per test.
147
+ * Ask the user which value to use.
148
+
149
+ ### Replace @Step
150
+
151
+ ```java
152
+ import io.qameta.allure.Step;
153
+ ```
154
+
155
+ ```java
156
+ import io.testomat.core.annotation.Step;
157
+ ```
158
+
159
+ ```java
160
+ @io.qameta.allure.Step
161
+ ```
162
+
163
+ ```java
164
+ @io.testomat.core.annotation.Step
165
+ ```
166
+
167
+ ### Replace @Attachment
168
+
169
+ ```java
170
+ import io.qameta.allure.Attachment;
171
+ ```
172
+
173
+ ```java
174
+ import io.testomat.core.annotation.Artifact;
175
+ ```
176
+
177
+ ```java
178
+ @Attachment
179
+ ```
180
+
181
+ ```java
182
+ @Artifact
183
+ ```
184
+
185
+ ### Replace Allure.step
186
+
187
+ Analyze all detected `Allure.step(...)` overloads before replacing anything.
188
+
189
+ Supported replacements:
190
+
191
+ ```java
192
+ Allure.step(String name)
193
+ ```
194
+
195
+ ```java
196
+ Testomatio.step(String name, () -> {})
197
+ ```
198
+
199
+ ```java
200
+ Allure.step(String name, Status status)
201
+ ```
202
+
203
+ ```java
204
+ Testomatio.step(String name, () -> {})
205
+ ```
206
+ The `Status` value is dropped: `Testomatio.step(...)` does not support step status overrides.
207
+
208
+ ```java
209
+ Allure.step(ThrowableContextRunnableVoid<StepContext> runnable)
210
+ ```
211
+
212
+ ```java
213
+ Testomatio.step("", () -> { /* original runnable body */ })
214
+ ```
215
+
216
+ ```java
217
+ Allure.step(String name, ThrowableContextRunnableVoid<StepContext> runnable)
218
+ ```
219
+
220
+ ```java
221
+ Testomatio.step(String name, () -> { /* original runnable body */ })
222
+ ```
223
+
224
+ ```java
225
+ Allure.step(String name, ThrowableRunnableVoid runnable)
226
+ ```
227
+
228
+ ```java
229
+ Testomatio.step(String name, () -> { /* original runnable body */ })
230
+ ```
231
+
232
+ Rules:
233
+
234
+ * Preserve the original step name whenever available.
235
+ * Move the original runnable body into the `Runnable` argument of `Testomatio.step(...)`.
236
+
237
+ Overloads that return a value are NOT supported, because `Testomatio.step(String stepDescription, Runnable function)` does not return a value:
238
+
239
+ ```java
240
+ Allure.step(String name, ThrowableRunnable<T> runnable)
241
+ ```
242
+
243
+ ```java
244
+ Allure.step(ThrowableContextRunnable<T, StepContext> runnable)
245
+ ```
246
+
247
+ ```java
248
+ Allure.step(String name, ThrowableContextRunnable<T, StepContext> runnable)
249
+ ```
250
+
251
+ If return-value overloads are detected, ask:
252
+
253
+ > Some Allure.step(...) usages return a value and cannot be migrated automatically because Testomatio.step(...) does not support return values. How would you like to proceed?
254
+
255
+ Options:
256
+
257
+ 1. Replace supported overloads and keep unsupported overloads unchanged.
258
+ 2. Skip Allure.step migration entirely and keep all existing usages.
259
+
260
+ If the user chooses option 1:
261
+
262
+ * Replace supported overloads.
263
+ * Leave return-value overloads unchanged.
264
+ * Inform the user which usages require manual migration.
265
+
266
+ If the user chooses option 2:
267
+
268
+ * Leave all `Allure.step(...)` usages unchanged.
269
+
270
+ **While any `Allure.step(...)` usages remain, keep Allure dependencies in the project.**
271
+
272
+ ### Replace Allure.addAttachment
273
+
274
+ * Inside a step, replace with `Testomatio.stepArtifact(String pathToFile)`.
275
+ * Outside a step, replace with `Testomatio.artifact(String pathToFile)`.
276
+
277
+ ### Required Maven Surefire Plugin Configuration
278
+
279
+ Always check the Maven Surefire Plugin configuration. If the project uses it:
280
+
281
+ * If no `argLine` is configured, add the AspectJ javaagent using the version declared in the project's dependencies.
282
+ * If an `argLine` exists, preserve the existing value and append the javaagent. **Do not overwrite or remove existing JVM arguments.**
283
+ * If the AspectJ version cannot be determined, ask the user before adding the javaagent.
284
+
285
+ ```xml
286
+ <argLine>
287
+ -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
288
+ </argLine>
289
+ ```
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: detect-duplicate-test-cases
3
+ description: Find duplicate, near-duplicate, and overlapping test cases across the test suite. Identifies exact matches, semantically similar tests, and tests that are subsets of other tests. Provides recommendations for which tests to keep, merge, or remove.
4
+ ---
5
+
6
+ # Detect Duplicate Test Cases
7
+
8
+ Detect duplicate test cases in the user's project. Recommend cleanup actions.
9
+
10
+ ## Workflow
11
+
12
+ ### 1. Collect Test Cases
13
+
14
+ - Find all manual and automated test cases in the repository.
15
+ - Manual: markdown files inside `/tests/`, `.feature` files (Gherkin).
16
+ - Automated: `*.spec.ts`, `*.test.js`, `*.cy.js`, etc.
17
+ - Parse each test to extract: title, steps, expected results, tags, and suite location.
18
+
19
+ ### 2. Analyze Duplicates
20
+
21
+ Normalize test content before comparison:
22
+ - Convert titles to lowercase.
23
+ - Remove punctuation and formatting differences.
24
+ - Normalize step wording where possible.
25
+ - Ignore framework syntax (`describe`, `Scenario`, `it`, etc.) when analyzing intent.
26
+ - Treat parameterized values (emails, IDs, usernames) as variable data.
27
+
28
+ Compare tests using multiple similarity signals:
29
+ - Title similarity.
30
+ - Step similarity.
31
+ - Expected result similarity.
32
+ - Preconditions or setup.
33
+ - Shared tags or metadata.
34
+ - Test location or suite context.
35
+
36
+ Score each pair using the scoring rules in `./references/DUPLICATE_INSTRUCTIONS.md`.
37
+ Classify each pair into a detection level (defined in the same reference):
38
+ - Level 1: exact duplicates.
39
+ - Level 2: semantic duplicates.
40
+ - Level 3: overlapping / subset tests.
41
+ - Level 4: redundant variations.
42
+
43
+ Build duplicate groups where multiple tests represent the same testing intent.
44
+ Each group includes:
45
+ - All related tests.
46
+ - Similarity score.
47
+ - Detection level.
48
+ - Proposed canonical test.
49
+
50
+ ### 3. Generate Report
51
+
52
+ Follow the report template in `./references/DUPLICATE_INSTRUCTIONS.md`. Include:
53
+ - Summary statistics (total scanned, duplicates found by category).
54
+ - Each duplicate group with test details and locations.
55
+ - Similarity percentage.
56
+ - Recommendation for each group (`keep`/`merge`/`remove`).
57
+ - Suggested actions.
58
+
59
+ ### 4. Execute Actions
60
+
61
+ **Apply actions only after the user approves the recommendations.**
62
+
63
+ - Merge: combine duplicate or highly similar tests into one canonical test.
64
+ - Preserve the original test structure used by the framework (e.g., Gherkin, Markdown, Jest, Cypress).
65
+ - Retain the primary test ID from the canonical test.
66
+ - Merge tags, labels, and metadata from all source tests (deduplicate where possible).
67
+ - Preserve important assertions, steps, and expected results.
68
+ - Add references to the original test files or IDs that were merged.
69
+ - Remove: delete duplicate or redundant test files or test entries.
70
+ - Ensure the canonical or replacement test already exists.
71
+ - Add a reference in the canonical test noting which tests were removed.
72
+ - **Do not remove tests that contain unique steps, tags, or coverage.**
73
+ - Keep: keep both tests but document their relationship.
74
+ - Add cross-reference notes between related tests.
75
+ - Indicate the reason both tests remain (e.g., different environments, data sets, or coverage).
76
+
77
+ ## Preservation Rules
78
+
79
+ When merging or rewriting tests, preserve:
80
+ - Test IDs: keep the canonical ID and reference any merged IDs.
81
+ - Tags / labels: retain and merge all relevant tags.
82
+ - Framework structure: keep the original format (e.g., `Scenario`, `describe/it`, Markdown sections).
83
+ - File organization: maintain the existing test directory conventions.
84
+ - Traceability metadata: keep links to requirements, issues, or tickets if present.
85
+
86
+ **Never break framework syntax or remove traceability metadata when rewriting tests.**
@@ -0,0 +1,54 @@
1
+ # Duplicate Detection Guide
2
+
3
+ Reference for scoring and classifying duplicate test cases.
4
+
5
+ ## Detection Levels
6
+
7
+ | Level | Type | Description | Example |
8
+ |-------|------|-------------|---------|
9
+ | 1 | Exact Duplicates | Identical titles | "Verify login" appears in 3 files |
10
+ | 2 | Semantic Duplicates | Same intent, similar steps | "Check user can sign in" vs "Validate user authentication" |
11
+ | 3 | Overlapping / Subset | One test contains another | Cart test (3 steps) inside Checkout test (8 steps) |
12
+ | 4 | Redundant Variations | Same logic, different data | Login with john@example.com vs jane@example.com |
13
+
14
+ ## Similarity Scoring
15
+
16
+ Compare test pairs on: title -> steps -> expected results -> preconditions -> tags.
17
+
18
+ | Score | Category |
19
+ |-------|----------|
20
+ | 100% | Exact duplicate |
21
+ | 80-99% | Semantic duplicate |
22
+ | 50-79% | Overlapping |
23
+ | <50% | Different tests |
24
+
25
+ For automated tests, also consider code-level duplicates in assertions and shared setup/teardown.
26
+
27
+ ## Actions
28
+
29
+ | Action | When to Use |
30
+ |--------|-------------|
31
+ | Merge | Tests duplicate the same intent — combine into one canonical test |
32
+ | Remove | One test is redundant — keep the more complete one |
33
+ | Keep | Tests serve different purposes (different environments, data, coverage) |
34
+
35
+ ## Report Template
36
+
37
+ ```markdown
38
+ # Duplicate Analysis Report
39
+
40
+ **Scanned:** {N} tests across {M} files
41
+ **Duplicates found:** {X} tests in {Y} groups
42
+
43
+ ## Summary
44
+ - Exact: {N} groups | Semantic: {N} groups | Overlapping: {N} groups | Variations: {N}
45
+
46
+ ## Group {N}: {Type} — {Test Name}
47
+
48
+ **Tests:**
49
+ - `{file}` -> "{title}" ({id})
50
+ - `{file}` -> "{title}" ({id})
51
+
52
+ **Similarity:** {X}%
53
+ **Recommendation:** {Keep / Merge / Remove}
54
+ ```
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: improve-test-cases
3
+ description: Analyze and improve existing markdown manual test cases for clarity, structure, and Test Management Tool format compliance.
4
+ license: MIT
5
+ metadata:
6
+ author: Testomat.io
7
+ version: 1.0.0
8
+ ---
9
+
10
+ # Improve Test Cases
11
+
12
+ Analyze and improve existing markdown manual test cases to make them clearer for the QA team:
13
+ - Improve test titles for clarity.
14
+ - Enhance test descriptions.
15
+ - Fix broken formatting and markdown syntax.
16
+ - Standardize test structure to Test Management Tool format.
17
+ - Ensure consistent terminology and language.
18
+ - Update tags and labels.
19
+
20
+ **DO NOT CHANGE:**
21
+ - Original test/suite IDs.
22
+ - Original test intent.
23
+ - Original language (fix only clarity, grammar, typos).
24
+
25
+ ## Step 1: Locate Test Files
26
+
27
+ - Find markdown test files (`.test.md` or `.md`) in common locations: `./manual-tests`, `./tests/manual`, `./docs/tests`.
28
+ - If none found, scan the whole project for `.md` files with test case content.
29
+ - If still none, ask the user for the test directory path.
30
+
31
+ ## Step 2: Analyze Test Quality
32
+
33
+ Read each test and flag issues:
34
+
35
+ Titles:
36
+ - Unclear or vague test title.
37
+ - Missing action-object format.
38
+ - Not specific enough to understand what is being tested.
39
+
40
+ Descriptions:
41
+ - Vague or unclear test purpose.
42
+ - Missing or incomplete description.
43
+
44
+ Steps and expected results:
45
+ - Missing expected results.
46
+ - Inconsistent step format.
47
+ - Unclear actions.
48
+ - Steps not ordered logically.
49
+ - Expected results not relevant to the steps.
50
+ - Missing pass/fail criteria.
51
+
52
+ Formatting:
53
+ - Broken markdown syntax.
54
+ - Missing sections.
55
+ - Inconsistent header hierarchy.
56
+
57
+ Ambiguity:
58
+ - Generic or subjective terms ("should work", "might fail").
59
+ - Vague language that could be interpreted multiple ways.
60
+ - Steps that cannot be verified objectively.
61
+ - Missing specific values, data, or conditions.
62
+
63
+ ## Step 3: Show Summary to User
64
+
65
+ - List issues found per test.
66
+ - Give specific recommendations for improvements.
67
+ - **Ask the user to confirm before proceeding.**
68
+ - If the user does not confirm, do not change anything.
69
+
70
+ ## Step 4: Improve Tests
71
+
72
+ Titles:
73
+ - Make clear and specific.
74
+ - Use action-result format: "Verify [action] results in [expected]".
75
+ - Ensure the title reflects the actual test purpose.
76
+
77
+ Descriptions:
78
+ - Make purpose clear and concise.
79
+ - Include context from the parent suite when relevant.
80
+ - Fix grammar and spelling only.
81
+
82
+ Steps:
83
+ - Give each step an explicit expected result.
84
+ - Nested format: "- Step action..." with indented "_Expected_: ...".
85
+ - Make actions specific and reproducible.
86
+ - Add measurable pass/fail criteria.
87
+ - Ensure results are directly relevant to the step action.
88
+ - Make results measurable and verifiable.
89
+ - Avoid vague terms; use specific values and conditions.
90
+
91
+ Ambiguity:
92
+ - Replace generic terms with specific, testable language.
93
+ - Avoid subjective terms ("should work", "might fail").
94
+ - Ensure steps can be verified objectively.
95
+
96
+ Metadata:
97
+ - Set `type: manual` in test metadata.
98
+ - Use only these priority values: `low`, `normal`, `important`, `high`, `critical`.
99
+
100
+ ## Step 5: Save Changes
101
+
102
+ - Overwrite the original files.
103
+ - Keep the same file names and directory structure.
104
+ - **Preserve all original test/suite IDs.**
105
+
106
+ ## Step 6: Show Final Summary
107
+
108
+ - Number of files modified.
109
+ - Number of tests improved.
110
+ - Key improvements made.
111
+
112
+ ## Reference
113
+
114
+ TMS markdown format example: [references/TESTOMAT_MARKDOWN_EXAMPLE.md](references/TESTOMAT_MARKDOWN_EXAMPLE.md)
@@ -0,0 +1,66 @@
1
+ <!-- suite
2
+ id: @S0a913xxx
3
+ emoji: 🔐
4
+ tags: smoke, regression
5
+ -->
6
+ # Home Page Validation
7
+
8
+ Verify that a guest user can view all critical UI elements on the Home page.
9
+
10
+ ## PREREQUISITES & SETUP
11
+ 1. Browser Requirements:
12
+ - Latest version of Chrome, Firefox, or Safari
13
+
14
+ 2. Test Environment:
15
+ - Application URL: "http://site.com"
16
+ - Screen resolution: 1920x1080 (recommended)
17
+ - Browser zoom: 100%
18
+
19
+ 3. Test Data:
20
+ - No specific test data required
21
+ - Guest user access (no authentication needed)
22
+
23
+ 4. Pre-test Setup:
24
+ - Clear browser cache and cookies
25
+ - Close all unnecessary browser tabs
26
+ - Ensure browser window is maximized
27
+
28
+ <!-- test
29
+ id: @Ts37c7xxx
30
+ priority: normal
31
+ tags: smoke
32
+ labels: Manual
33
+ -->
34
+ # Verify browser tab title
35
+
36
+ ## Description:
37
+ Navigate to application base URL. Verify that the browser tab displays the correct title.
38
+
39
+ ## Preconditions:
40
+ 1. Navigate to application base URL: "http://site.com"
41
+
42
+ ## Steps:
43
+ * Observe the browser tab title
44
+ _Expected_: Title contains "UI Test Automation Playground"
45
+
46
+ <!-- test
47
+ id: @T693f9xxx
48
+ priority: normal
49
+ tags: smoke
50
+ labels: Manual
51
+ -->
52
+ # Verify footer copyright text & links visibility
53
+
54
+ ## Description:
55
+ Navigate to application base URL. Verify that the footer has correct copyright text and active links.
56
+
57
+ ## Preconditions:
58
+ 1. Navigate to application base URL: "http://site.com"
59
+
60
+ ## Steps:
61
+ * Scroll to footer section
62
+ _Expected_: Footer is visible
63
+ * Verify copyright text
64
+ _Expected_: Copyright text is correct (e.g., "© 2024 Company Name")
65
+ * Verify footer links are active
66
+ _Expected_: All links are clickable and navigate to correct pages