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,387 @@
1
+ ---
2
+ title: Classical Tests Markdown Format
3
+ description: Complete reference for the Testomat.io classical tests Markdown format. Learn the structure, metadata fields, and formatting rules for test suites and test cases.
4
+ ---
5
+
6
+ # Classical Tests Markdown Format
7
+
8
+ ## Format Overview
9
+
10
+ The document is structured as:
11
+
12
+ 1. **Suite block** — one per file, with suite metadata and content
13
+ 2. **Test blocks** — one or more, each with test metadata and content
14
+ 3. **Examples section** (optional) — parametrized test data in a markdown table
15
+
16
+ ---
17
+
18
+ ## Document Structure
19
+
20
+ ```
21
+ <!-- suite
22
+ key: value
23
+ -->
24
+ # Suite Title
25
+
26
+ Suite description (optional)
27
+
28
+ <!-- test
29
+ key: value
30
+ -->
31
+ # Test Title
32
+
33
+ Test description (optional)
34
+
35
+ <!-- example -->
36
+
37
+ | Param1 | Param2 |
38
+ | --- | --- |
39
+ | value1 | value2 |
40
+ ```
41
+
42
+ ---
43
+
44
+ ## Suite Metadata
45
+
46
+ Metadata is inside an HTML comment block: `<!-- suite ... -->`.
47
+
48
+ | Field | Type | Description |
49
+ | ---------- | ------ | -------------------------------------------------------------------------------------------------- |
50
+ | `id` | string | **Required.** Suite UID in format `@S{uid}` 8-chars (e.g. `@S380c64db`). Used for sync and import. |
51
+ | `emoji` | string | Emoji for the suite (e.g. `🙂`, `🔐`). |
52
+ | `tags` | string | Comma-separated tags not in the title (e.g. `smoke, regression`). |
53
+ | `labels` | string | Comma-separated labels in `Label: value` or `Label` format (e.g. `Priority:High, Component:Auth`). |
54
+ | `assignee` | string | User email for the assignee. Must exist in the project. |
55
+
56
+ ---
57
+
58
+ ## Test Metadata
59
+
60
+ Metadata is inside an HTML comment block: `<!-- test ... -->`.
61
+
62
+ | Field | Type | Description |
63
+ | ---------- | ------- | ----------------------------------------------------------------------------------------------------- |
64
+ | `id` | string | Test UID in format `@T{uid}` 8-chars (e.g. `@T12345678`). Optional; used for matching existing tests. |
65
+ | `type` | string | Test state: `manual` or `automated`. |
66
+ | `priority` | string | One of: `low`, `normal`, `important`, `high`, `critical`. |
67
+ | `assignee` | string | User email for the assignee. Must exist in the project. |
68
+ | `creator` | string | User email for the creator (used when `include_meta: [:creator]`). |
69
+ | `shared` | boolean | `true` when the test is shared (used when `include_meta: [:shared]`). |
70
+ | `tags` | string | Comma-separated tags not in the title. |
71
+ | `labels` | string | Comma-separated labels in `Label: value` or `Label` format. |
72
+
73
+ If the test has no assignee but the suite does, the suite assignee is used.
74
+
75
+ ---
76
+
77
+ ## Formatting Rules
78
+
79
+ ### 1. Metadata blocks
80
+
81
+ - Metadata must be inside HTML comments: `<!-- suite ... -->` and `<!-- test ... -->`.
82
+ - Each line is `key: value`; lines without `:` are ignored.
83
+ - Keys and values are trimmed of surrounding whitespace.
84
+
85
+ ### 2. Headings
86
+
87
+ - **Suite title:** first `#` heading after the suite metadata block.
88
+ - **Test title:** first `#` or `##` heading after each test metadata block.
89
+ - Only these headings are used for titles; other headings are part of the description.
90
+
91
+ ### 3. Suite and test blocks
92
+
93
+ - Suite block starts with `<!-- suite`.
94
+ - Test blocks start with `<!-- test`.
95
+ - Each test block is separated by `<!-- test`; the parser splits on `(?=<!--\s*test\b)`.
96
+
97
+ ### 4. Examples section
98
+
99
+ - Introduced by `<!-- example -->` (optional content after `-->`).
100
+ - Must be a markdown table.
101
+ - **Table format:** rows must start with `| ` and end with ` |`.
102
+ - **Headers:** first row after `<!-- example -->` is header.
103
+ - **Separator:** next row must contain `---` (3+ dashes) in each cell to mark headers.
104
+ - **Data rows:** rows after the separator are example rows.
105
+ - **Params:** if a separator row exists, the row above it is used as `params` (column names).
106
+ - **No params:** if there is no separator row, all rows are data rows.
107
+
108
+ ### 5. Tags
109
+
110
+ - In title: `@tag` format (e.g. `Test @smoke @regression`).
111
+ - In metadata: comma-separated without `@` (e.g. `tags: smoke, regression`).
112
+ - Valid tag characters: `\w`, `\d`, `=`, `-`, `_`, `()`, `.`, `:`, `&`, length < 120.
113
+ - Tags in metadata must not include suite/test IDs (`@S...`, `@T...`).
114
+
115
+ ### 6. Labels
116
+
117
+ - Format: `LabelTitle` or `LabelTitle: value`.
118
+ - Labels are matched by title or slug in the project.
119
+ - Labels with values use `:` as separator.
120
+
121
+ ### 7. Attachments
122
+
123
+ - All attached items as links: `https://app.testomat.io/attachments/{uid}.{ext}`
124
+
125
+ ### 8. Description
126
+
127
+ - Everything after the test heading until the next `<!-- test` or `<!-- example` is the test description.
128
+ - Description supports standard markdown.
129
+
130
+ ### 9. Test Steps Format
131
+
132
+ Test steps use the `## Steps` header section with a nested markdown list format:
133
+
134
+ ```markdown
135
+ ## Steps
136
+
137
+ - (Step Action)
138
+ *Expected*: ... (Observable behavior)
139
+ - ...
140
+ *Expected*: ...
141
+ ```
142
+
143
+ **Step format rules:**
144
+
145
+ - Steps must be under a `## Steps` heading
146
+ - Use nested markdown lists (bulleted `*` or numbered `1.`)
147
+ - Top-level items describe the action to perform
148
+ - Nested items with `*Expected*` (or `*Expected*:`, `*Expected result*`) describe the observable behavior
149
+ - Expected results should be specific and verifiable
150
+
151
+ ---
152
+
153
+ ## Examples
154
+
155
+ ### Minimal suite with one test
156
+
157
+ ```markdown
158
+ <!-- suite
159
+ id: @S12345678
160
+ -->
161
+
162
+ # Login Suite
163
+
164
+ Tests for login functionality.
165
+
166
+ <!-- test
167
+ -->
168
+
169
+ # Successful Login
170
+
171
+ User can log in with valid credentials.
172
+ ```
173
+
174
+ ### Full suite with metadata and examples
175
+
176
+ ```markdown
177
+ <!-- suite
178
+ id: @S380c64db
179
+ emoji: 🔐
180
+ tags: smoke, regression
181
+ assignee: qa@example.com
182
+ -->
183
+
184
+ # Login Functionality
185
+
186
+ This suite contains manual tests for the login process.
187
+
188
+ <!-- test
189
+ id: @T12345678
190
+ type: manual
191
+ priority: high
192
+ assignee: qa@example.com
193
+ tags: critical
194
+ -->
195
+
196
+ # Successful Login
197
+
198
+ A user should be able to log in with valid credentials.
199
+
200
+ ## Steps
201
+
202
+ - Navigate to the login page
203
+ *Expected*: Login form is displayed with username and password fields
204
+ - Enter a valid username and password
205
+ *Expected*: Credentials are entered without errors
206
+ - Click the "Login" button
207
+ *Expected*: User is redirected to the dashboard
208
+
209
+ <!-- example -->
210
+
211
+ | Username | Password | Role |
212
+ | -------- | -------- | ----- |
213
+ | admin | admin123 | admin |
214
+ | user | user123 | user |
215
+ ```
216
+
217
+ ### Test with proper step format
218
+
219
+ ```markdown
220
+ <!-- suite
221
+ id: @S11111111
222
+ -->
223
+
224
+ # User Registration
225
+
226
+ Tests for user registration functionality.
227
+
228
+ <!-- test
229
+ id: @T22222222
230
+ type: manual
231
+ priority: high
232
+ -->
233
+
234
+ # Register new user with valid data
235
+
236
+ Verify that a new user can successfully register with valid information.
237
+
238
+ ## Steps
239
+
240
+ - Navigate to the registration page
241
+ *Expected*: Registration form is displayed
242
+ - Enter a valid email address
243
+ *Expected*: Email is accepted and passes validation
244
+ - Enter a strong password (8+ characters with uppercase, lowercase, and numbers)
245
+ *Expected*: Password meets complexity requirements
246
+ - Confirm the password
247
+ *Expected*: Passwords match
248
+ - Accept the Terms of Service
249
+ *Expected*: Checkbox is selected
250
+ - Click the "Register" button
251
+ *Expected*: Success message is displayed and user is redirected to welcome page
252
+ ```
253
+
254
+ ### Test with numbered steps
255
+
256
+ ```markdown
257
+ <!-- suite
258
+ id: @S33333333
259
+ -->
260
+
261
+ # API Testing
262
+
263
+ Tests for REST API endpoints.
264
+
265
+ <!-- test
266
+ id: @T44444444
267
+ type: automated
268
+ priority: critical
269
+ -->
270
+
271
+ # Create new user via API
272
+
273
+ Verify that a new user can be created via POST request.
274
+
275
+ ## Steps
276
+
277
+ 1. Send POST request to `/api/users` with valid user data
278
+ *Expected*: Response status code is 201
279
+ 2. Verify response contains user ID and created timestamp
280
+ *Expected*: Response includes `id` and `createdAt` fields
281
+ 3. Send GET request to `/api/users/{id}` to retrieve the created user
282
+ *Expected*: User data matches the data sent in POST request
283
+ ```
284
+
285
+ ### Test with complex nested steps
286
+
287
+ ```markdown
288
+ <!-- suite
289
+ id: @S55555555
290
+ emoji: 🛒
291
+ -->
292
+
293
+ # E-commerce Checkout
294
+
295
+ Tests for the checkout process.
296
+
297
+ <!-- test
298
+ id: @T66666666
299
+ type: manual
300
+ priority: high
301
+ -->
302
+
303
+ # Complete checkout with multiple items
304
+
305
+ Verify that a user can complete the checkout process with multiple items in the cart.
306
+
307
+ ## Steps
308
+
309
+ - Add multiple products to the cart
310
+ *Expected*: All products appear in the cart with correct quantities and prices
311
+ - Proceed to checkout
312
+ *Expected*: Checkout page loads with shipping address form
313
+ - Fill in valid shipping address details
314
+ *Expected*: Form validation passes and shows no errors
315
+ - Select a shipping method
316
+ *Expected*: Shipping cost is calculated and displayed
317
+ - Select a payment method
318
+ *Expected*: Payment form is displayed (or guest checkout option)
319
+ - Complete the payment process
320
+ *Expected*: Payment is processed successfully
321
+ - Verify order confirmation
322
+ *Expected*: Order confirmation page is displayed with order number and summary
323
+ - Check email for order confirmation
324
+ *Expected*: Confirmation email is received with matching order details
325
+ ```
326
+
327
+ ### Test with tags in title
328
+
329
+ ```markdown
330
+ <!-- test
331
+ -->
332
+
333
+ # API test with multiple endpoints @smoke @regression
334
+
335
+ Test API endpoints with different parameters
336
+
337
+ <!-- example -->
338
+
339
+ | Endpoint | Method | Status |
340
+ | -------- | ------ | ------ |
341
+ | /users | GET | 200 |
342
+ | /posts | POST | 201 |
343
+ ```
344
+
345
+ ### Examples without params (no header row)
346
+
347
+ ```markdown
348
+ <!-- test
349
+ -->
350
+
351
+ # Test with Examples No Params
352
+
353
+ Test description
354
+
355
+ <!-- example
356
+ -->
357
+
358
+ | Value1 | Value2 |
359
+ ```
360
+
361
+ ### Multiple suites in one file
362
+
363
+ ```markdown
364
+ <!-- suite
365
+ id: @S12345678
366
+ -->
367
+
368
+ # Suite One
369
+
370
+ Description for suite one
371
+
372
+ <!-- test
373
+ id: @Ta1b2c3d4
374
+ -->
375
+
376
+ # Test One
377
+
378
+ Description
379
+
380
+ <!-- suite
381
+ id: @S98765432
382
+ -->
383
+
384
+ # Suite Two
385
+
386
+ Description for suite two
387
+ ```
@@ -0,0 +1,72 @@
1
+ ---
2
+ title: Testomat.io TMS Integration Guide
3
+ description: Essential reference for generating Testomat.io-compatible test cases. Covers structure, MCP tools, conventions, and best practices.
4
+ ---
5
+
6
+ # Testomat.io TMS Integration Guide
7
+
8
+ Quick reference for generating test cases compatible with Testomat.io Test Management System.
9
+
10
+ Follow this guide along with [Test Case Format](./test-case-format.md).
11
+
12
+ ## Structure
13
+
14
+ ```
15
+ Folder (top-level)
16
+ └── Suite {title} (@S{id})
17
+ └── Test {title} (@T{id}) → has tags (e.g. @smoke), labels, priority (e.g. high)
18
+ ```
19
+
20
+ Priority values: `critical`, `high`, `normal`, `low`.
21
+
22
+ ## Key MCP Tools
23
+
24
+ | Purpose | Entities / tools |
25
+ | --------------- | ------------------------------------------------------------------------------------------ |
26
+ | **Structure** | `suites_list`, `suites_search`, `tests_list`, `tests_search`, `steps_list`, `steps_search` |
27
+ | **Conventions** | `tags_list`, `labels_list` |
28
+
29
+ **Key actions:**
30
+
31
+ - `tests_search` - **Always use before creating new cases** to avoid duplicates
32
+ - `steps_search` - Find reusable shared steps before writing new ones
33
+
34
+ ## Use tags and labels
35
+
36
+ Add them based on context, user prompt, existing tags and labels.
37
+
38
+ Split tests by module, testing type, scope and other criteria which helps to organize and filter tests.
39
+
40
+ ### When to use Tags vs Labels
41
+
42
+ | Aspect | Tags | Labels |
43
+ | --------------- | -------------------------------------- | ------------------------------------- |
44
+ | **Best for** | Broad categorization | Specific metadata |
45
+ | **Use for** | Test type (@smoke, @regression, @e2e) | Priority, severity, status, ownership |
46
+ | **Flexibility** | Constant, embedded in code | Flexible, easy to change via UI |
47
+ | **Values** | Single tag per category | Multiple values per label allowed |
48
+ | **Examples** | `@smoke`, `@api`, `@auth`, `@checkout` | |
49
+
50
+ **Rule of thumb:** Use tags for test categorization and automation; use labels for test metadata, workflow tracking, and manual test management.
51
+
52
+ ## Deduplication Workflow
53
+
54
+ ```
55
+ 1. tests_search() → Find existing tests
56
+ 2. Compare → Exact match? → Notify user, let user decide to skip or not
57
+ 3. Partial overlap? → Ask user
58
+ 4. No match? → Create new test cases
59
+ ```
60
+
61
+ ## Quality Checklist
62
+
63
+ - [ ] Followed template format
64
+ - [ ] Priority set
65
+ - [ ] Tags/labels added
66
+ - [ ] Clear steps
67
+ - [ ] No duplicates
68
+
69
+ ## References
70
+
71
+ - [Testomat.io Docs](https://testomat.io/docs)
72
+ - [Test Case Format](./test-case-format.md) - Full Markdown format reference
@@ -0,0 +1,159 @@
1
+ # Test Writing Rules
2
+
3
+ If the user provided example test cases, follow their style first; then apply these rules.
4
+
5
+ ## Test Suites
6
+
7
+ - Formulas, business rules, edge-case reasoning, and feature context live in the suite/test description.
8
+ - Prerequisites common to all test cases go as bullet points in the suite description.
9
+ - Formulas and diagrams relevant to all test cases can be included as code blocks in the suite description.
10
+
11
+ ## Test Cases
12
+
13
+ - A test case consists of a description and steps.
14
+ - Golden rule: "why" in the description, "what" in the steps.
15
+ - Add the intent to the description if the title is not enough to explain it.
16
+ - Keep the description clear and concise.
17
+ - Put preparations into preconditions/description, not into steps.
18
+ - Focus on black-box testing: every action and observable result goes through public APIs or UI (unless the user specifies otherwise).
19
+ - Prefer UI over public APIs when possible.
20
+ - Add system checks only when it is not clear how to test via public APIs or UI. This is not a unit test; usually no direct server or code access is allowed.
21
+ - Understand UI pages, components, or API endpoints from source code, design, or requirements.
22
+ - If this is a web app, ask the user to help discover it:
23
+ - by looking at its frontend source code
24
+ - by accessing it on a non-production environment via browser (URLs and credentials)
25
+ - by looking at screenshots of related pages
26
+
27
+ ## Title
28
+
29
+ Title states the behavior under test from the user's perspective.
30
+
31
+ Title structure: `<role> <action> <object> <qualifier>`
32
+
33
+ Examples:
34
+
35
+ - Editor can change description of a blogpost in admin panel
36
+ - User can report a bug using widget on a web page
37
+ - Blocked user must not be able to log in to app workspace
38
+ - Admin can invite up to 10 users to a project via Settings Page
39
+ - User can not edit a comment it doesn't own
40
+ - User can retry operation when NetworkError occurs
41
+ - User can not retry operation when network connection is disabled
42
+
43
+ Avoid:
44
+
45
+ - Filler prefixes: `Verify that ...`, `Test that ...`, `Check ...`, `Should ...`
46
+ - Multi-intent titles joined by `and` / `then`
47
+ - Restating the suite name in every title
48
+ - Embedding IDs or numbers: `TC-001: Login`
49
+ - Vague outcomes: `Successful login`, `Login works`
50
+
51
+ Good vs bad:
52
+
53
+ - `Verify successful login` → `User can log in with valid email and password`
54
+ - `Wrong password test` → `User cannot log in with invalid password`
55
+ - `Login and update profile` → split into two tests
56
+ - `Email validation` → `User sees error when email format is invalid`
57
+
58
+ ## Preconditions
59
+
60
+ - Add preconditions for setup that is required for the test to run but is not part of the test actions.
61
+ - Define the preconditions and initial state of the system as bullet points.
62
+ - If relevant, include the user role.
63
+ - Skip preconditions that are not needed or repeat the suite description.
64
+ - Do not include preconditions like "service is running" unless the user explicitly mentioned them or the test is about them.
65
+
66
+ ## Steps
67
+
68
+ A step consists of an action (with optional test data) and an expected result.
69
+
70
+ Test steps use the `## Steps` header section with a nested markdown list format:
71
+
72
+ ```markdown
73
+ ## Steps
74
+
75
+ - (Step Action)
76
+ *Expected*: ... (Observable behavior)
77
+ - ...
78
+ *Expected*: ...
79
+ ```
80
+
81
+ e.g.
82
+
83
+ ```markdown
84
+ ## Steps
85
+
86
+ - Navigate to the login page
87
+ *Expected*: Login form is displayed with username and password fields
88
+ - Enter a valid username and password
89
+ *Expected*: Credentials are entered without errors
90
+ - Click the "Login" button
91
+ *Expected*: User is redirected to the dashboard
92
+ ```
93
+
94
+ Step format rules:
95
+
96
+ - Steps must be under a `## Steps` heading.
97
+ - Use nested markdown lists (bulleted `-`/`*` or numbered `1.`).
98
+ - Top-level items describe the action to perform.
99
+ - Nested items with `*Expected*` (or `*Expected*:`, `*Expected result*`) describe the observable behavior.
100
+ - Expected results should be specific and verifiable.
101
+
102
+ Step content rules:
103
+
104
+ - Each step is a simple sentence. Avoid commas and sub-sentences.
105
+ - Steps are mechanical: click, send, read, assert.
106
+ - Each step includes exact instructions with concrete, realistic values a tester can act on directly.
107
+ - Do NOT parametrize by default — first-pass test cases should read as executable manual steps, not templates.
108
+ - Use a placeholder variable like `${domain}` only when the value is genuinely reused across steps or is data-driven (see the Examples section in the format reference). A plain UI/API acceptance step needs concrete values, not placeholders.
109
+ - Do not turn data unrelated to the test into placeholders.
110
+ - Do not add preconditions as placeholders.
111
+ - Prefer URL paths over full URLs, e.g. `/auth/login`.
112
+ - Use specific values when they are important for the scenario (boundary values, format validation, locale-specific input).
113
+ - Avoid vague qualifiers like "small", "known", "around", "e.g.", "like", "(…)"; replace them with concrete, literal values.
114
+ - Avoid general statements in steps. Move them to the description.
115
+ - Do not chain multiple distinct actions or use unnecessary And / Or combinations in a single step.
116
+ - All step actions must be clear to perform via public API or UI.
117
+ - All checks/verifications/assertions belong in the expected result, not in the step action.
118
+ - A code block may follow a step when needed: API request, SQL, shell command, pseudocode, etc.
119
+
120
+ If an expected result has multiple conditions, split them into separate lines.
121
+
122
+ Instead of:
123
+
124
+ `*Expected*: Comment appears in the Run's comment list with the current user as author`
125
+
126
+ Use:
127
+
128
+ `*Expected*: Comment appears in the Run's comment list`
129
+ `*Expected*: Current user is the author`
130
+
131
+ ### Bold and italic in steps
132
+
133
+ Use sparingly. Each style serves one purpose; otherwise write plain text.
134
+
135
+ - **bold** — UI elements the user interacts with: buttons, links, fields, tabs, checkboxes, modals (e.g. `Click **Save**`, `Open **Settings** tab`).
136
+ - *italic* — names of pages/screens/documents referenced as context (e.g. `Open the *Privacy Policy* page`).
137
+
138
+ Avoid:
139
+
140
+ - Bold/italic on full sentences or whole steps.
141
+ - Combining bold and italic (`***...***`).
142
+ - Emphasis for visual weight; rephrase or split the step instead.
143
+ - Bold/italic in place of a placeholder (`[url]`) or a code block.
144
+
145
+ ## AI Writing Patterns to Avoid
146
+
147
+ Be specific, not grandiose. Say what it actually does. Avoid marketing language and emojis (unless explicitly intended).
148
+
149
+ Avoid:
150
+
151
+ - Puffery: pivotal, crucial, vital, testament, enduring legacy, indelible mark, deeply rooted, profound heritage, steadfast dedication, key turning point
152
+ - Promotional adjectives: groundbreaking (figurative), seamless/seamlessly, robust, cutting-edge, vibrant, nuanced, multifaceted, intricate/intricacies, stunning natural beauty
153
+ - Overused AI vocabulary: delve/delves, leverage/leveraging, foster/fostering, realm, tapestry, landscape, interplay, streamline, shed light on, garnered, notably, key (as adjective)
154
+ - Empty "-ing" phrases: ensuring, showcasing, highlighting, emphasizing, reflecting, underscoring, aligning with, contributing to, enhancing, underpinning
155
+ - Filler frames: stands/serves as, is a testament/reminder, plays a vital/significant/crucial/pivotal role, underscores/highlights its importance, reflects broader, symbolizing its ongoing/enduring/lasting impact, continues to captivate, nestled in the heart of, boasts a
156
+ - Hedges and closers: it's important/critical/crucial to note/remember/consider, may vary, In summary, In conclusion, Overall
157
+ - "Challenges/Legacy" framing: Despite its... faces several challenges, Despite these challenges, Challenges and Legacy, Future Outlook
158
+ - Parallel "not/but/however" constructions: "Not only ... but ...", "It is not just about ..., it's ..." — common in LLM writing but unsuitable for a neutral tone
159
+ - Formatting overuse: excessive bullets, emoji decorations, bold on every other word