@camunda/e2e-test-suite 0.0.1101 → 0.0.1102
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 +5 -34
- package/dist/test-setup.js +3 -14
- package/package.json +1 -2
- package/playwright.config.ts +2 -2
package/README.md
CHANGED
|
@@ -406,7 +406,7 @@ MCP tests can still be run locally on macOS and Windows using the instructions a
|
|
|
406
406
|
|
|
407
407
|
## Automated Nightly Test Runs
|
|
408
408
|
|
|
409
|
-
The test suite is configured to run automatically every night. The results of these nightly test runs are published
|
|
409
|
+
The test suite is configured to run automatically every night. The results of these nightly test runs are published as a Playwright HTML report artifact. If any test fails during these automated runs, the Designated Responsible Individual (DRI) of the project is notified via email for immediate attention and resolution. On a nightly basis, the test suite is configured to run the following tests:
|
|
410
410
|
|
|
411
411
|
Failures are classified into categories (Infrastructure, Flaky, Product, Mixed) to aid triage.
|
|
412
412
|
See [docs/ci-failure-categories.md](docs/ci-failure-categories.md) for the full model and criteria.
|
|
@@ -520,8 +520,8 @@ issues or instability, an HTML report automatically opens, facilitating in-depth
|
|
|
520
520
|
|
|
521
521
|
### On the CI:
|
|
522
522
|
|
|
523
|
-
Within the CI environment, test results are accessible
|
|
524
|
-
|
|
523
|
+
Within the CI environment, test results are accessible via the Playwright HTML report artifact attached to the
|
|
524
|
+
GitHub Actions run. These reports not only include detailed test results but also feature screenshots. In case of a test failure, you
|
|
525
525
|
will find the stacktrace. Furthermore, the CI environment offers extensive tools for in-depth analysis of test results
|
|
526
526
|
and reports.
|
|
527
527
|
|
|
@@ -536,7 +536,7 @@ use: {
|
|
|
536
536
|
```
|
|
537
537
|
|
|
538
538
|
Don't keep this enabled, or you'll blow up the disk space quickly. Files are recorded in the `test-results/videos`
|
|
539
|
-
folder locally and to
|
|
539
|
+
folder locally and attached to the Playwright HTML report / uploaded as a build artifact in the CI.
|
|
540
540
|
|
|
541
541
|
## Contributing
|
|
542
542
|
|
|
@@ -613,35 +613,6 @@ Before marking a PR as ready for review:
|
|
|
613
613
|
- [ ] Change scope is appropriate — large multi-version changes are split into separate PRs
|
|
614
614
|
- [ ] A relevant test workflow has been run and **passed**
|
|
615
615
|
- [ ] The workflow run URL is pasted in the PR description
|
|
616
|
-
- [ ]
|
|
617
|
-
|
|
618
|
-
### TestRail Integration
|
|
619
|
-
|
|
620
|
-
Test case documentation in TestRail is **automatically synced** from spec files. When a PR adds or modifies test cases, the sync workflow uses AI (GitHub Copilot) to generate human-readable step descriptions directly from the Playwright test code.
|
|
621
|
-
|
|
622
|
-
#### How to trigger the sync
|
|
623
|
-
|
|
624
|
-
**Option A — Label after a passing test run (recommended)**
|
|
625
|
-
|
|
626
|
-
1. Run the relevant test workflow and confirm it passes.
|
|
627
|
-
2. Add the `testrail-test-case` label to the PR.
|
|
628
|
-
3. The [Sync TestRail Cases](https://github.com/camunda/c8-cross-component-e2e-tests/actions/workflows/sync-testrail-cases.yml) workflow fires automatically, detects the changed spec files, and enriches the matching TestRail cases with AI-generated steps.
|
|
629
|
-
|
|
630
|
-
> Re-triggering is easy: remove the label and add it again.
|
|
631
|
-
|
|
632
|
-
**Option B — Manual dispatch**
|
|
633
|
-
|
|
634
|
-
Go to [Actions → Sync TestRail Cases → Run workflow](https://github.com/camunda/c8-cross-component-e2e-tests/actions/workflows/sync-testrail-cases.yml) and provide the version and spec file path manually. Useful for one-off enrichment without opening a PR.
|
|
635
|
-
|
|
636
|
-
#### What the sync does
|
|
637
|
-
|
|
638
|
-
- Finds the matching TestRail case by automation ID (set by the JUnit reporter) or normalised title.
|
|
639
|
-
- Skips cases that already have steps on the correct template.
|
|
640
|
-
- Re-enriches cases that are on the wrong TestRail template (fixes template + steps in one pass).
|
|
641
|
-
- Calls the GitHub Copilot API to produce Action + Expected Result step rows from the raw Playwright code.
|
|
642
|
-
|
|
643
|
-
#### Access
|
|
644
|
-
|
|
645
|
-
If you do not have access to TestRail, contact the Test Automation Team to request access.
|
|
616
|
+
- [ ] Update Confluence if applicable
|
|
646
617
|
|
|
647
618
|
Thank you for using the C8 Cross-Component End-to-End Test Suite for Camunda C8 full product stack e2e testing. Happy testing! If you have any questions or need assistance, feel free to reach out to the maintainers for support.
|
package/dist/test-setup.js
CHANGED
|
@@ -9,12 +9,9 @@ const crypto_1 = require("crypto");
|
|
|
9
9
|
const axios_1 = __importDefault(require("axios"));
|
|
10
10
|
const constants_1 = require("./utils/constants");
|
|
11
11
|
async function captureScreenshot(page, testInfo) {
|
|
12
|
-
// Skip on passed/skipped:
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
// value but was a dominant driver of excess TestRail attachment storage.
|
|
16
|
-
// Skip explicitly on passed/skipped rather than gating on
|
|
17
|
-
// `=== 'failed'`, so a timed-out or interrupted test -- exactly the
|
|
12
|
+
// Skip on passed/skipped: a passing-test screenshot has negligible
|
|
13
|
+
// debugging value. Skip explicitly on passed/skipped rather than gating
|
|
14
|
+
// on `=== 'failed'`, so a timed-out or interrupted test -- exactly the
|
|
18
15
|
// cases where a screenshot is most useful -- still gets one.
|
|
19
16
|
if (testInfo.status === 'passed' || testInfo.status === 'skipped') {
|
|
20
17
|
return;
|
|
@@ -43,10 +40,6 @@ async function captureScreenshot(page, testInfo) {
|
|
|
43
40
|
path: screenshotPath,
|
|
44
41
|
contentType: 'image/png',
|
|
45
42
|
});
|
|
46
|
-
testInfo.annotations.push({
|
|
47
|
-
type: 'testrail_attachment',
|
|
48
|
-
description: screenshotPath,
|
|
49
|
-
});
|
|
50
43
|
}
|
|
51
44
|
exports.captureScreenshot = captureScreenshot;
|
|
52
45
|
async function captureFailureVideo(page, testInfo) {
|
|
@@ -65,10 +58,6 @@ async function captureFailureVideo(page, testInfo) {
|
|
|
65
58
|
path: videoPath,
|
|
66
59
|
contentType: 'video/webm',
|
|
67
60
|
});
|
|
68
|
-
testInfo.annotations.push({
|
|
69
|
-
type: 'testrail_attachment',
|
|
70
|
-
description: videoPath,
|
|
71
|
-
});
|
|
72
61
|
}
|
|
73
62
|
}
|
|
74
63
|
exports.captureFailureVideo = captureFailureVideo;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camunda/e2e-test-suite",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.1102",
|
|
4
4
|
"description": "End-to-end test helpers for Camunda 8",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
"access": "public"
|
|
23
23
|
},
|
|
24
24
|
"scripts": {
|
|
25
|
-
"sync-testrail": "node scripts/sync-testrail-cases.js",
|
|
26
25
|
"test": "playwright test",
|
|
27
26
|
"test:local": "node --env-file=.env ./runTest.js",
|
|
28
27
|
"lint": "tsc && eslint . --ext .ts",
|
package/playwright.config.ts
CHANGED
|
@@ -10,7 +10,7 @@ if (!process.env.CAMUNDA_OPTIMIZE_BASE_URL && process.env.BASE_URL) {
|
|
|
10
10
|
|
|
11
11
|
const projectName = process.env.PROJECT! || 'Chromium'; // Default to 'default-project' if PROJECT is not set
|
|
12
12
|
|
|
13
|
-
const
|
|
13
|
+
const junitOptions = {
|
|
14
14
|
embedAnnotationsAsProperties: true,
|
|
15
15
|
outputFile: './test-results/junit-report.xml',
|
|
16
16
|
};
|
|
@@ -18,7 +18,7 @@ const testRailOptions = {
|
|
|
18
18
|
// Define reporters without SlackReporter
|
|
19
19
|
const useReportersWithoutSlack: any[] = [
|
|
20
20
|
['list'],
|
|
21
|
-
['junit',
|
|
21
|
+
['junit', junitOptions],
|
|
22
22
|
['html', {outputFolder: 'html-report'}],
|
|
23
23
|
['json', {outputFile: `json-report/results.json`}],
|
|
24
24
|
];
|