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.
- package/README.md +353 -27
- package/dist/prompt/index.js +6 -2
- package/dist/prompt/index.js.map +1 -1
- package/dist/prompt/print.js +8 -0
- package/dist/prompt/print.js.map +1 -1
- package/dist/prompt/system-prompt.js +14 -4
- package/dist/prompt/system-prompt.js.map +1 -1
- package/dist/prompt/testomatio.js +3 -3
- package/dist/prompt/tools.js +28 -7
- package/dist/prompt/tools.js.map +1 -1
- package/dist/src/args.js +198 -46
- package/dist/src/args.js.map +1 -1
- package/dist/src/cli.js +64 -20
- package/dist/src/cli.js.map +1 -1
- package/dist/src/doctor.js +171 -0
- package/dist/src/doctor.js.map +1 -0
- package/dist/src/env.js +39 -5
- package/dist/src/env.js.map +1 -1
- package/dist/src/mcp.js +3 -3
- package/dist/src/mcp.js.map +1 -1
- package/dist/src/model.js +15 -10
- package/dist/src/model.js.map +1 -1
- package/dist/src/models.js +38 -0
- package/dist/src/models.js.map +1 -0
- package/dist/src/output.js +216 -0
- package/dist/src/output.js.map +1 -0
- package/dist/src/run.js +141 -27
- package/dist/src/run.js.map +1 -1
- package/dist/src/session.js +46 -25
- package/dist/src/session.js.map +1 -1
- package/dist/src/sessions.js +72 -0
- package/dist/src/sessions.js.map +1 -0
- package/dist/src/skills.js +130 -0
- package/dist/src/skills.js.map +1 -0
- package/package.json +7 -3
- package/prompt/index.ts +11 -2
- package/prompt/print.ts +9 -0
- package/prompt/system-prompt.ts +18 -4
- package/prompt/testomatio.ts +3 -3
- package/prompt/tools.ts +30 -7
- package/skills/codeceptjs/ci-fix-tests/SKILL.md +119 -0
- package/skills/codeceptjs/codeceptjs-auth/SKILL.md +141 -0
- package/skills/codeceptjs/codeceptjs-exploration/SKILL.md +100 -0
- package/skills/codeceptjs/codeceptjs-fundamentals/SKILL.md +196 -0
- package/skills/codeceptjs/codeceptjs-run-analysis/SKILL.md +83 -0
- package/skills/codeceptjs/debugging-codeceptjs-tests/SKILL.md +126 -0
- package/skills/codeceptjs/migrate-codeceptjs-4/SKILL.md +109 -0
- package/skills/codeceptjs/migrate-cypress-to-codeceptjs/SKILL.md +295 -0
- package/skills/codeceptjs/migrate-protractor-to-codeceptjs/SKILL.md +339 -0
- package/skills/codeceptjs/migrate-selenium-java-to-codeceptjs/SKILL.md +459 -0
- package/skills/codeceptjs/migrate-testcafe-to-codeceptjs/SKILL.md +338 -0
- package/skills/codeceptjs/refactoring-codeceptjs-tests/SKILL.md +78 -0
- package/skills/codeceptjs/writing-codeceptjs-tests/SKILL.md +102 -0
- package/skills/playwright/playwright-best-practices/SKILL.md +303 -0
- package/skills/playwright/playwright-best-practices/advanced/authentication-flows.md +360 -0
- package/skills/playwright/playwright-best-practices/advanced/authentication.md +871 -0
- package/skills/playwright/playwright-best-practices/advanced/clock-mocking.md +364 -0
- package/skills/playwright/playwright-best-practices/advanced/mobile-testing.md +409 -0
- package/skills/playwright/playwright-best-practices/advanced/multi-context.md +288 -0
- package/skills/playwright/playwright-best-practices/advanced/multi-user.md +393 -0
- package/skills/playwright/playwright-best-practices/advanced/network-advanced.md +452 -0
- package/skills/playwright/playwright-best-practices/advanced/third-party.md +464 -0
- package/skills/playwright/playwright-best-practices/architecture/pom-vs-fixtures.md +363 -0
- package/skills/playwright/playwright-best-practices/architecture/test-architecture.md +369 -0
- package/skills/playwright/playwright-best-practices/architecture/when-to-mock.md +383 -0
- package/skills/playwright/playwright-best-practices/browser-apis/browser-apis.md +391 -0
- package/skills/playwright/playwright-best-practices/browser-apis/iframes.md +403 -0
- package/skills/playwright/playwright-best-practices/browser-apis/service-workers.md +504 -0
- package/skills/playwright/playwright-best-practices/browser-apis/websockets.md +403 -0
- package/skills/playwright/playwright-best-practices/core/annotations.md +424 -0
- package/skills/playwright/playwright-best-practices/core/assertions-waiting.md +361 -0
- package/skills/playwright/playwright-best-practices/core/configuration.md +452 -0
- package/skills/playwright/playwright-best-practices/core/fixtures-hooks.md +417 -0
- package/skills/playwright/playwright-best-practices/core/global-setup.md +434 -0
- package/skills/playwright/playwright-best-practices/core/locators.md +242 -0
- package/skills/playwright/playwright-best-practices/core/page-object-model.md +315 -0
- package/skills/playwright/playwright-best-practices/core/projects-dependencies.md +453 -0
- package/skills/playwright/playwright-best-practices/core/test-data.md +492 -0
- package/skills/playwright/playwright-best-practices/core/test-suite-structure.md +361 -0
- package/skills/playwright/playwright-best-practices/core/test-tags.md +298 -0
- package/skills/playwright/playwright-best-practices/debugging/console-errors.md +420 -0
- package/skills/playwright/playwright-best-practices/debugging/debugging.md +504 -0
- package/skills/playwright/playwright-best-practices/debugging/error-testing.md +360 -0
- package/skills/playwright/playwright-best-practices/debugging/flaky-tests.md +496 -0
- package/skills/playwright/playwright-best-practices/frameworks/angular.md +530 -0
- package/skills/playwright/playwright-best-practices/frameworks/nextjs.md +469 -0
- package/skills/playwright/playwright-best-practices/frameworks/react.md +531 -0
- package/skills/playwright/playwright-best-practices/frameworks/vue.md +574 -0
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/ci-cd.md +468 -0
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/docker.md +283 -0
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/github-actions.md +546 -0
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/gitlab.md +397 -0
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/other-providers.md +521 -0
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/parallel-sharding.md +371 -0
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/performance.md +453 -0
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/reporting.md +424 -0
- package/skills/playwright/playwright-best-practices/infrastructure-ci-cd/test-coverage.md +497 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/accessibility.md +359 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/api-testing.md +719 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/browser-extensions.md +506 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/canvas-webgl.md +493 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/component-testing.md +500 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/drag-drop.md +576 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/electron.md +509 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/file-operations.md +377 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/file-upload-download.md +562 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/forms-validation.md +561 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/graphql-testing.md +331 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/i18n.md +508 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/performance-testing.md +476 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/security-testing.md +430 -0
- package/skills/playwright/playwright-best-practices/testing-patterns/visual-regression.md +634 -0
- package/skills/playwright/playwright-cli/SKILL.md +420 -0
- package/skills/playwright/playwright-cli/references/element-attributes.md +23 -0
- package/skills/playwright/playwright-cli/references/playwright-tests.md +39 -0
- package/skills/playwright/playwright-cli/references/request-mocking.md +87 -0
- package/skills/playwright/playwright-cli/references/running-code.md +241 -0
- package/skills/playwright/playwright-cli/references/session-management.md +225 -0
- package/skills/playwright/playwright-cli/references/storage-state.md +275 -0
- package/skills/playwright/playwright-cli/references/test-generation.md +433 -0
- package/skills/playwright/playwright-cli/references/tracing.md +139 -0
- package/skills/playwright/playwright-cli/references/video-recording.md +143 -0
- package/skills/skills.lock.json +41 -37
- package/skills/skills.yaml +1 -0
- package/skills/testomatio/explorbot/explorbot-fundamentals/SKILL.md +76 -0
- package/skills/testomatio/explorbot/explorbot-fundamentals/references/no-install.md +36 -0
- package/skills/testomatio/explorbot/explorbot-plan/SKILL.md +108 -0
- package/skills/testomatio/explorbot/explorbot-setup/SKILL.md +86 -0
- package/skills/testomatio/explorbot/prima/SKILL.md +87 -0
- package/skills/testomatio/qa-process/qa-explain-behavior/SKILL.md +111 -0
- package/skills/testomatio/qa-process/qa-explain-behavior/references/answer-shapes.md +116 -0
- package/skills/testomatio/qa-process/qa-explain-behavior/references/examples.md +157 -0
- package/skills/testomatio/qa-process/qa-lead-strategy-advisor/SKILL.md +91 -0
- package/skills/testomatio/qa-process/qa-lead-strategy-advisor/references/output-format.md +71 -0
- package/skills/testomatio/qa-process/testing-workflow/SKILL.md +227 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/CLAUDE.md +56 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/SKILL.md +242 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/CODECEPTJS_BEST_PRACTICES.md +182 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/FINAL_SUMMARY_TEMPLATE.md +22 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/PLAYWRIGHT_BEST_PRACTICES.md +90 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/POM_BEST_PRACTICES.md +53 -0
- package/skills/testomatio/test-automation/automate-manual-test-cases/references/TEST_DATA_MANAGEMENT.md +52 -0
- package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/SKILL.md +107 -0
- package/skills/testomatio/test-automation/debug-fix-failed-flaky-autotests/references/DEBUGGING_QUICK_REFERENCE.md +113 -0
- package/skills/testomatio/test-automation/qa-automation-test-consolidation/SKILL.md +29 -0
- package/skills/testomatio/test-automation/qa-data-seeder/SKILL.md +83 -0
- package/skills/testomatio/test-automation/run-tests-with-testomatio-reporter/SKILL.md +153 -0
- package/skills/testomatio/test-automation/setup-change-aware-pr-testing/SKILL.md +190 -0
- package/skills/testomatio/test-automation/setup-ci-automation/SKILL.md +76 -0
- package/skills/testomatio/test-automation/testomat-allure-adapter/SKILL.md +289 -0
- package/skills/testomatio/test-management/detect-duplicate-test-cases/SKILL.md +86 -0
- package/skills/testomatio/test-management/detect-duplicate-test-cases/references/DUPLICATE_INSTRUCTIONS.md +54 -0
- package/skills/testomatio/test-management/improve-test-cases/SKILL.md +114 -0
- package/skills/testomatio/test-management/improve-test-cases/references/TESTOMAT_MARKDOWN_EXAMPLE.md +66 -0
- package/skills/testomatio/test-management/pull-request-diff-analyzer/SKILL.md +141 -0
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/SKILL.md +354 -0
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_ARTIFACTS.md +82 -0
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_HTML_REPORT.md +37 -0
- package/skills/testomatio/test-management/qa-e2e-tests-reporting/references/TESTOMATIO_REPORTERS_CONFIG.md +118 -0
- package/skills/testomatio/test-management/qa-pr-requirements-analyzer/SKILL.md +149 -0
- package/skills/testomatio/test-management/qa-pr-requirements-analyzer/references/summary-example.md +54 -0
- package/skills/testomatio/test-management/qa-requirement-reviewer/SKILL.md +126 -0
- package/skills/testomatio/test-management/qa-requirement-reviewer/references/requirements_reviewer_examples.md +128 -0
- package/skills/testomatio/test-management/qa-split-testing-levels-pyramid/SKILL.md +55 -0
- package/skills/testomatio/test-management/qa-sprint-report-by-testomatio/SKILL.md +220 -0
- package/skills/testomatio/test-management/qa-sprint-report-by-testomatio/references/qa-sprint-report.md +126 -0
- package/skills/testomatio/test-management/qa-test-code-coverage/SKILL.md +174 -0
- package/skills/testomatio/test-management/qa-test-code-coverage/references/COVERAGE_FILE_FORMAT.md +138 -0
- package/skills/testomatio/test-management/qa-test-code-coverage/references/E2E_FRAMEWORKS.md +65 -0
- package/skills/testomatio/test-management/qa-test-code-coverage/scripts/check-coverage.mjs +40 -0
- package/skills/testomatio/test-management/qa-thinking/SKILL.md +36 -0
- package/skills/testomatio/test-management/qa-write-test-cases/SKILL.md +267 -0
- package/skills/testomatio/test-management/qa-write-test-cases/references/test-case-format.md +387 -0
- package/skills/testomatio/test-management/qa-write-test-cases/references/testomat-tms-guide.md +72 -0
- package/skills/testomatio/test-management/qa-write-test-cases/references/writing-rule.md +159 -0
- package/skills/testomatio/test-management/scan-automation-project/SKILL.md +152 -0
- package/skills/testomatio/test-management/sync-test-cases-with-tms/SKILL.md +107 -0
- package/skills/testomatio/test-management/sync-test-cases-with-tms/references/TESTOMATIO_CLI.md +140 -0
- package/skills/testomatio/test-management/testomatio-mcp/SKILL.md +195 -0
- 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
|
+
```
|
package/skills/testomatio/test-management/qa-write-test-cases/references/testomat-tms-guide.md
ADDED
|
@@ -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
|