@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 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 on TestRail. 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:
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 through TestRail, located in the C8 Project folder under Test
524
- Runs. These reports not only include detailed test results but also feature screenshots. In case of a test failure, you
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 TestRail in the CI.
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
- - [ ] If new tests were added: add the `testrail-test-case` label after the test run passes to auto-enrich TestRail cases (see [TestRail Integration](#testrail-integration)); update Confluence if applicable
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.
@@ -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: this ran for every test regardless of outcome,
13
- // and since it's uploaded to TestRail via the testrail_attachment
14
- // annotation below, a passing-test screenshot has negligible debugging
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.1101",
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",
@@ -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 testRailOptions = {
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', testRailOptions],
21
+ ['junit', junitOptions],
22
22
  ['html', {outputFolder: 'html-report'}],
23
23
  ['json', {outputFile: `json-report/results.json`}],
24
24
  ];