@allurereport/web-classic 3.8.2 → 3.9.0

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 (67) hide show
  1. package/allurerc-dev.mjs +10 -0
  2. package/dist/multi/app-ca55d3cd360ac8eef796.js +2 -0
  3. package/dist/multi/manifest.json +23 -23
  4. package/dist/multi/styles-f8dc8e0442ce4abf426b.css +284 -0
  5. package/dist/single/app-3d4358effbb13febd942.js +2 -0
  6. package/dist/single/manifest.json +1 -1
  7. package/package.json +10 -6
  8. package/src/assets/scss/code.scss +6 -6
  9. package/src/assets/scss/index.scss +8 -8
  10. package/src/components/Behaviors/styles.scss +38 -33
  11. package/src/components/Categories/styles.scss +38 -33
  12. package/src/components/HeaderActions/styles.scss +1 -1
  13. package/src/components/Modal/index.tsx +3 -1
  14. package/src/components/Modal/styles.scss +2 -2
  15. package/src/components/Packages/styles.scss +38 -33
  16. package/src/components/ReportBody/styles.scss +1 -1
  17. package/src/components/TestResult/TestResultError/styles.scss +4 -4
  18. package/src/components/TestResult/TestResultLinks/styles.scss +1 -1
  19. package/src/components/TestResult/TestResultNavigation/index.tsx +1 -1
  20. package/src/components/TestResult/TestResultPrevStatuses/styles.scss +5 -5
  21. package/src/components/TestResult/TestResultSeverity/styles.scss +4 -4
  22. package/src/components/TestResult/TestResultStatus/styles.scss +2 -35
  23. package/src/components/TestResult/TestResultSteps/attachment.tsx +24 -2
  24. package/src/components/TestResult/TestResultSteps/styles.scss +22 -14
  25. package/src/components/TestResult/TestResultSteps/testResultAttachmentInfo.tsx +1 -0
  26. package/src/components/TestResult/TestResultSteps/testResultStep.tsx +2 -2
  27. package/src/components/TestResult/TestResultTabs/styles.scss +1 -1
  28. package/src/components/Tree/TreeHeader.tsx +1 -1
  29. package/src/components/Tree/styles.scss +38 -33
  30. package/src/index.html +3 -3
  31. package/src/utils/attachments.ts +6 -0
  32. package/test/dummy.test.ts +9 -1
  33. package/test/utils/treeFilters.test.ts +9 -1
  34. package/types.d.ts +1 -0
  35. package/dist/multi/app-f80e40e5d4a6b2591c77.js +0 -2
  36. package/dist/multi/styles-782990bab862d8dfb55a.css +0 -284
  37. package/dist/single/app-d95b6198c4d471014aa1.js +0 -2
  38. package/src/assets/scss/day.scss +0 -51
  39. package/src/assets/scss/fonts.scss +0 -3
  40. package/src/assets/scss/night.scss +0 -61
  41. package/src/assets/scss/palette.scss +0 -393
  42. package/src/assets/scss/theme.scss +0 -326
  43. package/src/assets/scss/typography.scss +0 -218
  44. package/src/assets/scss/vars.scss +0 -8
  45. /package/dist/multi/{10.app-f80e40e5d4a6b2591c77.js → 10.app-ca55d3cd360ac8eef796.js} +0 -0
  46. /package/dist/multi/{222.app-f80e40e5d4a6b2591c77.js → 222.app-ca55d3cd360ac8eef796.js} +0 -0
  47. /package/dist/multi/{26.app-f80e40e5d4a6b2591c77.js → 26.app-ca55d3cd360ac8eef796.js} +0 -0
  48. /package/dist/multi/{302.app-f80e40e5d4a6b2591c77.js → 302.app-ca55d3cd360ac8eef796.js} +0 -0
  49. /package/dist/multi/{304.app-f80e40e5d4a6b2591c77.js → 304.app-ca55d3cd360ac8eef796.js} +0 -0
  50. /package/dist/multi/{333.app-f80e40e5d4a6b2591c77.js → 333.app-ca55d3cd360ac8eef796.js} +0 -0
  51. /package/dist/multi/{369.app-f80e40e5d4a6b2591c77.js → 369.app-ca55d3cd360ac8eef796.js} +0 -0
  52. /package/dist/multi/{389.app-f80e40e5d4a6b2591c77.js → 389.app-ca55d3cd360ac8eef796.js} +0 -0
  53. /package/dist/multi/{498.app-f80e40e5d4a6b2591c77.js → 498.app-ca55d3cd360ac8eef796.js} +0 -0
  54. /package/dist/multi/{60.app-f80e40e5d4a6b2591c77.js → 60.app-ca55d3cd360ac8eef796.js} +0 -0
  55. /package/dist/multi/{643.app-f80e40e5d4a6b2591c77.js → 643.app-ca55d3cd360ac8eef796.js} +0 -0
  56. /package/dist/multi/{671.app-f80e40e5d4a6b2591c77.js → 671.app-ca55d3cd360ac8eef796.js} +0 -0
  57. /package/dist/multi/{725.app-f80e40e5d4a6b2591c77.js → 725.app-ca55d3cd360ac8eef796.js} +0 -0
  58. /package/dist/multi/{770.app-f80e40e5d4a6b2591c77.js → 770.app-ca55d3cd360ac8eef796.js} +0 -0
  59. /package/dist/multi/{848.app-f80e40e5d4a6b2591c77.js → 848.app-ca55d3cd360ac8eef796.js} +0 -0
  60. /package/dist/multi/{853.app-f80e40e5d4a6b2591c77.js → 853.app-ca55d3cd360ac8eef796.js} +0 -0
  61. /package/dist/multi/{872.app-f80e40e5d4a6b2591c77.js → 872.app-ca55d3cd360ac8eef796.js} +0 -0
  62. /package/dist/multi/{895.app-f80e40e5d4a6b2591c77.js → 895.app-ca55d3cd360ac8eef796.js} +0 -0
  63. /package/dist/multi/{920.app-f80e40e5d4a6b2591c77.js → 920.app-ca55d3cd360ac8eef796.js} +0 -0
  64. /package/dist/multi/{979.app-f80e40e5d4a6b2591c77.js → 979.app-ca55d3cd360ac8eef796.js} +0 -0
  65. /package/dist/multi/{991.app-f80e40e5d4a6b2591c77.js → 991.app-ca55d3cd360ac8eef796.js} +0 -0
  66. /package/dist/multi/{app-f80e40e5d4a6b2591c77.js.LICENSE.txt → app-ca55d3cd360ac8eef796.js.LICENSE.txt} +0 -0
  67. /package/dist/single/{app-d95b6198c4d471014aa1.js.LICENSE.txt → app-3d4358effbb13febd942.js.LICENSE.txt} +0 -0
@@ -28,7 +28,7 @@
28
28
  /* This is a hack because button do not have this state */
29
29
  .filtersBtnWithFilters > button::after {
30
30
  content: "";
31
- background-color: var(--bg-support-aldebaran);
31
+ background-color: var(--color-intent-primary-bg);
32
32
  width: 6px;
33
33
  height: 6px;
34
34
  border-radius: 100px;
@@ -1,6 +1,6 @@
1
1
  .test-result-error {
2
2
  padding: 8px 8px 12px 16px;
3
- background-color: var(--bg-alpha-capella);
3
+ background-color: var(--color-status-failed-bg-subtle);
4
4
  border-radius: 8px;
5
5
  position: relative;
6
6
  overflow: hidden;
@@ -14,7 +14,7 @@
14
14
  position: absolute;
15
15
  left: 0;
16
16
  top: 0;
17
- background: var(--on-support-capella);
17
+ background: var(--color-status-failed-border);
18
18
  }
19
19
  }
20
20
 
@@ -27,7 +27,7 @@
27
27
  .test-result-error-text {
28
28
  margin-bottom: 8px;
29
29
  padding-left: 8px;
30
- color: var(--on-support-capella);
30
+ color: var(--color-status-failed-text);
31
31
  }
32
32
 
33
33
  .test-result-error-trace {
@@ -50,6 +50,6 @@
50
50
  transition: background-color 300ms;
51
51
 
52
52
  &:hover {
53
- background: var(--bg-alpha-capella);
53
+ background: var(--color-status-failed-bg-subtle);
54
54
  }
55
55
  }
@@ -19,7 +19,7 @@
19
19
  }
20
20
 
21
21
  .test-result-link-text {
22
- color: var(--on-support-aldebaran);
22
+ color: var(--color-link-text);
23
23
  }
24
24
 
25
25
  .test-result-links-list {
@@ -44,7 +44,7 @@ export const TestResultNavigation: FunctionalComponent<TestResultNavigationProps
44
44
  return (
45
45
  <div className={styles["test-result-nav"]}>
46
46
  {fullName && <FullName />}
47
- {data && !testResult?.hidden && (
47
+ {data && !testResult?.isRetry && (
48
48
  <div className={styles["test-result-navigator"]}>
49
49
  <TooltipWrapper tooltipText={tooltip("prevTR")} isTriggerActive={currentIndex > 1}>
50
50
  <IconButton
@@ -26,23 +26,23 @@
26
26
  }
27
27
 
28
28
  .status-passed {
29
- color: var(--bg-support-castor);
29
+ color: var(--color-status-passed-chart);
30
30
  }
31
31
 
32
32
  .status-failed {
33
- color: var(--bg-support-capella);
33
+ color: var(--color-status-failed-chart);
34
34
  }
35
35
 
36
36
  .status-broken {
37
- color: var(--bg-support-atlas);
37
+ color: var(--color-status-broken-chart);
38
38
  }
39
39
 
40
40
  .status-skipped {
41
- color: var(--bg-support-rau);
41
+ color: var(--color-status-skipped-chart);
42
42
  }
43
43
 
44
44
  .status-unknown {
45
- color: var(--bg-support-skat);
45
+ color: var(--color-status-unknown-chart);
46
46
  }
47
47
 
48
48
  .test-result-prev-status-tooltip {
@@ -9,11 +9,11 @@
9
9
  }
10
10
 
11
11
  .severity-blocker {
12
- color: var(--on-support-capella);
12
+ color: var(--color-intent-danger-text);
13
13
  }
14
14
 
15
15
  .severity-critical {
16
- color: var(--on-support-atlas);
16
+ color: var(--color-intent-warning-text);
17
17
  }
18
18
 
19
19
  .severity-normal {
@@ -21,9 +21,9 @@
21
21
  }
22
22
 
23
23
  .severity-minor {
24
- color: var(--on-support-aldebaran);
24
+ color: var(--color-intent-primary-text);
25
25
  }
26
26
 
27
27
  .severity-trivial {
28
- color: var(--on-support-castor);
28
+ color: var(--color-intent-success-text);
29
29
  }
@@ -1,36 +1,3 @@
1
- .test-result-status {
2
- padding: 2px;
3
- display: flex;
4
- border-radius: 100px;
5
- color: var(--constant-on-text-primary);
6
- height: max-content;
7
- }
1
+ @import "~@allurereport/web-components/mixins.scss";
8
2
 
9
- .test-result-status-text {
10
- padding: 0 4px;
11
- }
12
-
13
- .test-result-status-icon {
14
- color: var(--constant-on-text-primary);
15
- padding: 0;
16
- }
17
-
18
- .status-passed {
19
- background-color: var(--bg-support-castor);
20
- }
21
-
22
- .status-failed {
23
- background-color: var(--bg-support-capella);
24
- }
25
-
26
- .status-broken {
27
- background-color: var(--bg-support-atlas);
28
- }
29
-
30
- .status-skipped {
31
- background-color: var(--bg-support-rau);
32
- }
33
-
34
- .status-unknown {
35
- background-color: var(--bg-support-skat);
36
- }
3
+ @include status-label-shape("test-result-status", "test-result-status-icon", "test-result-status-text");
@@ -1,5 +1,5 @@
1
1
  import type { AttachmentTestStepResult } from "@allurereport/core-api";
2
- import { Spinner } from "@allurereport/web-components";
2
+ import { MarkdownPreview, Spinner } from "@allurereport/web-components";
3
3
  import type { FunctionalComponent } from "preact";
4
4
  import { useEffect, useState } from "preact/hooks";
5
5
 
@@ -22,13 +22,17 @@ const componentsByAttachmentType: Record<string, any> = {
22
22
  css: AttachmentCode,
23
23
  table: AttachmentCode,
24
24
  html: AttachmentCode,
25
+ markdown: AttachmentCode,
25
26
  text: AttachmentCode,
26
27
  video: AttachmentVideo,
27
28
  };
28
29
  const previewComponentsByAttachmentType: Record<string, any> = {
29
30
  html: HtmlAttachmentPreview,
31
+ markdown: MarkdownPreview,
30
32
  };
31
33
 
34
+ const DUAL_VIEW_ATTACHMENT_TYPES = new Set(["html", "markdown"]);
35
+
32
36
  export interface AttachmentTestStepResultProps {
33
37
  item: AttachmentTestStepResult;
34
38
  previewable?: boolean;
@@ -61,8 +65,26 @@ export const Attachment: FunctionalComponent<AttachmentTestStepResultProps> = ({
61
65
  );
62
66
  }
63
67
 
68
+ const defaultRenderedPreview = attachmentComponent.type === "markdown" || attachmentComponent.type === "html";
69
+ const showPreview =
70
+ !!CurrentPreviewComponent &&
71
+ (defaultRenderedPreview ? !previewable || modalData.value.preview : !!(previewable && modalData.value.preview));
72
+
73
+ if (DUAL_VIEW_ATTACHMENT_TYPES.has(attachmentComponent.type) && CurrentPreviewComponent && CurrentComponent) {
74
+ return (
75
+ <div className={styles.attachmentViewStack}>
76
+ <div className={styles.attachmentViewPane} hidden={showPreview}>
77
+ <CurrentComponent attachment={attachment} item={item} />
78
+ </div>
79
+ <div className={styles.attachmentViewPane} hidden={!showPreview}>
80
+ <CurrentPreviewComponent attachment={attachment} item={item} />
81
+ </div>
82
+ </div>
83
+ );
84
+ }
85
+
64
86
  // temp solution before modal component refactoring
65
- if (CurrentPreviewComponent && previewable && modalData.value.preview) {
87
+ if (showPreview) {
66
88
  return <CurrentPreviewComponent attachment={attachment} item={item} />;
67
89
  }
68
90
 
@@ -2,7 +2,7 @@
2
2
  padding-right: 24px;
3
3
 
4
4
  &:not(:first-child) {
5
- border-top: 1px solid var(--on-border-muted);
5
+ border-top: 1px solid var(--color-border-subtle);
6
6
  }
7
7
  }
8
8
 
@@ -12,19 +12,19 @@
12
12
 
13
13
  .test-result-step {
14
14
  &:not(:first-child) {
15
- border-top: 1px solid var(--on-border-muted);
15
+ border-top: 1px solid var(--color-border-subtle);
16
16
  }
17
17
  }
18
18
 
19
19
  .test-result-step-content {
20
20
  padding-left: 24px;
21
21
  margin-bottom: 12px;
22
- border-top: 1px solid var(--on-border-muted);
22
+ border-top: 1px solid var(--color-border-subtle);
23
23
  min-width: 0;
24
24
  }
25
25
 
26
26
  .test-result-attachment-content {
27
- border-top: 1px solid var(--on-border-muted);
27
+ border-top: 1px solid var(--color-border-subtle);
28
28
  }
29
29
 
30
30
  .test-result-attachment-content-wrapper {
@@ -46,7 +46,7 @@
46
46
  min-height: 32px;
47
47
 
48
48
  &:hover {
49
- background: var(--bg-control-flat-medium);
49
+ background: var(--color-control-bg-ghost-hover);
50
50
  }
51
51
  }
52
52
 
@@ -63,7 +63,7 @@
63
63
  }
64
64
 
65
65
  .test-result-step-number {
66
- color: var(--on-text-hint);
66
+ color: var(--color-text-muted);
67
67
  min-width: 16px;
68
68
  text-align: center;
69
69
  box-sizing: content-box;
@@ -72,7 +72,7 @@
72
72
  .item-time {
73
73
  flex: none;
74
74
  margin-left: auto;
75
- color: var(--on-text-hint);
75
+ color: var(--color-text-muted);
76
76
  line-height: 20px;
77
77
  min-width: 56px;
78
78
  text-align: right;
@@ -82,7 +82,7 @@
82
82
  margin-left: auto;
83
83
  display: flex;
84
84
  gap: 8px;
85
- color: var(--on-text-secondary);
85
+ color: var(--color-text-secondary);
86
86
  align-items: center;
87
87
  flex: 0 0 auto;
88
88
  }
@@ -91,7 +91,7 @@
91
91
  display: flex;
92
92
  align-items: center;
93
93
  gap: 4px;
94
- color: var(--on-icon-secondary);
94
+ color: var(--color-icon-secondary);
95
95
  min-width: 52px;
96
96
  justify-content: flex-end;
97
97
  }
@@ -103,7 +103,7 @@
103
103
  }
104
104
 
105
105
  .item-info-step-icon {
106
- color: var(--on-icon-secondary);
106
+ color: var(--color-icon-secondary);
107
107
  }
108
108
 
109
109
  .test-result-step-chevron {
@@ -126,7 +126,7 @@
126
126
  padding: 4px 8px 4px 6px;
127
127
 
128
128
  &:hover {
129
- background: var(--bg-control-flat-medium);
129
+ background: var(--color-control-bg-ghost-hover);
130
130
  }
131
131
  }
132
132
 
@@ -140,7 +140,7 @@
140
140
  }
141
141
 
142
142
  .test-result-attachment-icon {
143
- color: var(--on-icon-secondary);
143
+ color: var(--color-icon-secondary);
144
144
  padding: 2px 4px;
145
145
  height: max-content;
146
146
  }
@@ -189,7 +189,7 @@
189
189
  }
190
190
 
191
191
  .item-button {
192
- color: var(--bg-control-flat);
192
+ color: var(--color-control-bg-ghost);
193
193
  }
194
194
 
195
195
  .wrong-attachment-sign {
@@ -199,7 +199,7 @@
199
199
  }
200
200
 
201
201
  .test-result-attachment-missed {
202
- color: var(--on-text-secondary);
202
+ color: var(--color-text-secondary);
203
203
  line-height: 20px;
204
204
  margin-right: auto;
205
205
  padding-top: 2px;
@@ -217,6 +217,14 @@
217
217
  width: 24px;
218
218
  }
219
219
 
220
+ .attachmentViewStack {
221
+ width: 100%;
222
+ }
223
+
224
+ .attachmentViewPane[hidden] {
225
+ display: none !important;
226
+ }
227
+
220
228
  .html-attachment-preview {
221
229
  padding: 0 16px;
222
230
  }
@@ -35,6 +35,7 @@ export const TestResultAttachmentInfo: FunctionalComponent<TestResultAttachmentI
35
35
  openModal({
36
36
  data: item,
37
37
  component: <Attachment item={item} previewable={true} />,
38
+ preview: contentType === "text/markdown" || contentType === "text/html",
38
39
  });
39
40
  };
40
41
 
@@ -1,5 +1,5 @@
1
1
  import type { DefaultTestStepResult } from "@allurereport/core-api";
2
- import { Code, Text, allureIcons } from "@allurereport/web-components";
2
+ import { Code, LinkifiedText, allureIcons } from "@allurereport/web-components";
3
3
  import type { FunctionComponent } from "preact";
4
4
  import { useState } from "preact/hooks";
5
5
 
@@ -71,7 +71,7 @@ export const TestResultStep: FunctionComponent<{
71
71
  <Code size={"s"} className={styles["test-result-step-number"]}>
72
72
  {stepIndex}
73
73
  </Code>
74
- <Text className={styles["test-result-header-text"]}>{item.name}</Text>
74
+ <LinkifiedText className={styles["test-result-header-text"]} text={item.name} />
75
75
  <TestResultStepInfo item={item} />
76
76
  </div>
77
77
  {hasContent && isOpened && <TestResultStepsContent item={item} />}
@@ -45,7 +45,7 @@
45
45
  cursor: default;
46
46
 
47
47
  &:after {
48
- border-bottom: 2px solid var(--on-support-aldebaran);
48
+ border-bottom: 2px solid var(--color-link-text);
49
49
  }
50
50
 
51
51
  span {
@@ -70,7 +70,7 @@ const TreeHeader: FunctionComponent<TreeHeaderProps> = ({
70
70
  {categoryTitle}
71
71
  </Text>
72
72
  {treeHeaderBar && (
73
- <div className={styles["tree-header-bar"]} style={{ width: `${width}px` }}>
73
+ <div className={styles["tree-header-bar"]} style={{ minWidth: `${width}px` }}>
74
74
  {treeHeaderBar}
75
75
  </div>
76
76
  )}
@@ -2,7 +2,7 @@
2
2
  position: relative;
3
3
 
4
4
  &:not(:first-child) {
5
- border-top: 1px solid var(--on-border-muted);
5
+ border-top: 1px solid var(--color-border-subtle);
6
6
  }
7
7
  }
8
8
 
@@ -19,7 +19,7 @@
19
19
  padding: 4px 8px 4px 6px;
20
20
 
21
21
  &:hover {
22
- background: var(--bg-control-flat-medium);
22
+ background: var(--color-control-bg-ghost-hover);
23
23
  }
24
24
  }
25
25
 
@@ -53,15 +53,15 @@
53
53
  position: relative;
54
54
 
55
55
  &:hover {
56
- background: var(--bg-control-flat-medium);
56
+ background: var(--color-control-bg-ghost-hover);
57
57
  }
58
58
 
59
59
  &:not(:first-child) {
60
- border-top: 1px solid var(--on-border-muted);
60
+ border-top: 1px solid var(--color-border-subtle);
61
61
  }
62
62
  }
63
63
  .tree-item-marked {
64
- background: var(--bg-base-secondary);
64
+ background: var(--color-bg-secondary);
65
65
  }
66
66
 
67
67
  .item-title {
@@ -71,7 +71,7 @@
71
71
  .item-time {
72
72
  flex: none;
73
73
  margin-left: auto;
74
- color: var(--on-text-hint);
74
+ color: var(--color-text-muted);
75
75
  }
76
76
 
77
77
  .test-count {
@@ -83,7 +83,7 @@
83
83
  display: block;
84
84
  padding-left: 24px;
85
85
  margin-bottom: 12px;
86
- border-top: 1px solid var(--on-border-muted);
86
+ border-top: 1px solid var(--color-border-subtle);
87
87
  }
88
88
 
89
89
  .tree-item-icon {
@@ -92,71 +92,76 @@
92
92
  }
93
93
 
94
94
  .status-passed {
95
- color: var(--bg-support-castor);
95
+ color: var(--color-status-passed-bg);
96
96
  }
97
97
 
98
98
  .status-failed {
99
- color: var(--bg-support-capella);
99
+ color: var(--color-status-failed-bg);
100
100
  }
101
101
 
102
102
  .status-broken {
103
- color: var(--bg-support-atlas);
103
+ color: var(--color-status-broken-bg);
104
104
  }
105
105
 
106
106
  .status-skipped {
107
- color: var(--bg-support-rau);
107
+ color: var(--color-status-skipped-bg);
108
108
  }
109
109
 
110
110
  .status-unknown {
111
- color: var(--bg-support-skat);
111
+ color: var(--color-status-unknown-bg);
112
112
  }
113
113
 
114
114
  .tree-header-bar {
115
115
  display: inline-flex;
116
+ align-items: center;
117
+ gap: var(--space-0-25);
116
118
  font-family: var(--font-family);
117
119
  max-width: 140px;
118
120
  min-width: 46px;
119
- border-radius: 4px;
120
- height: 12px;
121
- background: var(--on-text-hint);
121
+ height: var(--space-2);
122
+ background: transparent;
122
123
  margin-left: auto;
123
- font-size: 10px;
124
- font-weight: var(--font-weight-extra-bold);
125
- line-height: 12px;
126
- overflow: hidden;
124
+ font-size: var(--font-size-xs);
125
+ font-weight: var(--font-weight-bold);
126
+ line-height: var(--line-height-s);
127
+ overflow: visible;
127
128
  }
128
129
 
129
130
  .tree-header-bar-item {
130
131
  display: flex;
131
- min-width: 16px;
132
+ align-items: center;
132
133
  justify-content: center;
134
+ box-sizing: border-box;
135
+ min-width: var(--space-2);
136
+ height: var(--space-2);
137
+ border-radius: var(--radius-pill);
133
138
  text-align: center;
134
- padding: 0 6px;
139
+ padding: 0 var(--space-0-75);
135
140
  flex-grow: 1;
136
141
 
137
142
  &.passed {
138
- background-color: var(--bg-support-castor);
139
- color: var(--constant-on-text-primary);
143
+ background-color: var(--color-status-passed-bg);
144
+ color: var(--color-status-passed-on-bg);
140
145
  }
141
146
 
142
147
  &.failed {
143
- background-color: var(--bg-support-capella);
144
- color: var(--constant-on-text-primary);
148
+ background-color: var(--color-status-failed-bg);
149
+ color: var(--color-status-failed-on-bg);
145
150
  }
146
151
 
147
152
  &.broken {
148
- background-color: var(--bg-support-atlas);
149
- color: var(--constant-on-text-primary);
153
+ background-color: var(--color-status-broken-bg);
154
+ color: var(--color-status-broken-on-bg);
150
155
  }
151
156
 
152
157
  &.skipped {
153
- background-color: var(--bg-support-rau);
154
- color: var(--constant-on-text-primary);
158
+ background-color: var(--color-status-skipped-bg);
159
+ color: var(--color-status-skipped-on-bg);
155
160
  }
156
161
 
157
162
  &.unknown {
158
- background-color: var(--bg-support-skat);
159
- color: var(--constant-on-text-primary);
163
+ background-color: var(--color-status-unknown-bg);
164
+ color: var(--color-status-unknown-on-bg);
160
165
  }
161
166
  }
162
167
 
@@ -166,7 +171,7 @@
166
171
  }
167
172
 
168
173
  .tree-empty-results-title {
169
- color: var(--on-text-secondary);
174
+ color: var(--color-text-secondary);
170
175
  }
171
176
 
172
177
  .tree-empty-results-clear-button {
@@ -175,7 +180,7 @@
175
180
 
176
181
  .order {
177
182
  user-select: none;
178
- color: var(--on-text-hint);
183
+ color: var(--color-text-muted);
179
184
  min-width: 16px;
180
185
  text-align: center;
181
186
  box-sizing: content-box;
package/src/index.html CHANGED
@@ -12,11 +12,11 @@
12
12
  <script>
13
13
  window.allureReportOptions = {
14
14
  reportName: "Allure Classic Report (Dev)",
15
- logo: "/data/logo.jpg",
15
+ logo: "",
16
16
  theme: "light",
17
- reportLanguage: "ru",
17
+ reportLanguage: "en",
18
18
  createdAt: 1731513697651,
19
- groupBy: "suite",
19
+ groupBy: ["epic", "feature", "story"],
20
20
  };
21
21
  </script>
22
22
  </head>
@@ -29,6 +29,7 @@ export const fetchAttachment = async (id: string, ext: string, contentType: stri
29
29
  case "uri":
30
30
  case "code":
31
31
  case "html":
32
+ case "markdown":
32
33
  case "table":
33
34
  case "text": {
34
35
  const text = await response.text();
@@ -105,6 +106,11 @@ export const attachmentType = (type: string) => {
105
106
  type: "text",
106
107
  icon: "txt",
107
108
  };
109
+ case "text/markdown":
110
+ return {
111
+ type: "markdown",
112
+ icon: "file",
113
+ };
108
114
  case "text/html":
109
115
  return {
110
116
  type: "html",
@@ -1,4 +1,12 @@
1
- import { describe, expect, it } from "vitest";
1
+ import { epic, feature, label, story } from "allure-js-commons";
2
+ import { beforeEach, describe, expect, it } from "vitest";
3
+
4
+ beforeEach(async () => {
5
+ await epic("coverage");
6
+ await feature("plugin-classic");
7
+ await story("dummy");
8
+ await label("coverage", "plugin-classic");
9
+ });
2
10
 
3
11
  describe("dummy", () => {
4
12
  it("works", () => {
@@ -1,8 +1,16 @@
1
- import { describe, expect, it } from "vitest";
1
+ import { epic, feature, label, story } from "allure-js-commons";
2
+ import { beforeEach, describe, expect, it } from "vitest";
2
3
 
3
4
  import { createRecursiveTree, filterLeaves } from "../../src/utils/treeFilters.js";
4
5
  import type { ClassicTestResult } from "../../types.js";
5
6
 
7
+ beforeEach(async () => {
8
+ await epic("coverage");
9
+ await feature("filters");
10
+ await story("treeFilters");
11
+ await label("coverage", "filters");
12
+ });
13
+
6
14
  describe("utils > treeFilters", () => {
7
15
  describe("filterLeaves", () => {
8
16
  it("returns the leaves as is when no filter options are provided", () => {
package/types.d.ts CHANGED
@@ -51,6 +51,7 @@ export type ClassicTestResult = Omit<
51
51
  | "preconditionHtml"
52
52
  | "steps"
53
53
  > & {
54
+ isRetry: boolean;
54
55
  setup: ClassicFixtureResult[];
55
56
  teardown: ClassicFixtureResult[];
56
57
  steps: ClassicTestStepResult[];