@allurereport/web-classic 3.8.2 → 3.10.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.
- package/allurerc-dev.mjs +10 -0
- package/dist/multi/app-0638edd2daa9730d5153.js +2 -0
- package/dist/multi/manifest.json +23 -23
- package/dist/multi/styles-1f77adc2ac439c7a4c4b.css +284 -0
- package/dist/single/app-099b8ba247b13f22ce56.js +2 -0
- package/dist/single/manifest.json +1 -1
- package/package.json +18 -14
- package/src/assets/scss/code.scss +6 -6
- package/src/assets/scss/index.scss +8 -8
- package/src/components/Behaviors/styles.scss +38 -33
- package/src/components/Categories/styles.scss +38 -33
- package/src/components/HeaderActions/styles.scss +1 -1
- package/src/components/Modal/index.tsx +3 -1
- package/src/components/Modal/styles.scss +2 -2
- package/src/components/Packages/styles.scss +38 -33
- package/src/components/ReportBody/styles.scss +1 -1
- package/src/components/TestResult/TestResultError/styles.scss +4 -4
- package/src/components/TestResult/TestResultLinks/styles.scss +1 -1
- package/src/components/TestResult/TestResultNavigation/index.tsx +1 -1
- package/src/components/TestResult/TestResultPrevStatuses/styles.scss +5 -5
- package/src/components/TestResult/TestResultSeverity/styles.scss +4 -4
- package/src/components/TestResult/TestResultStatus/styles.scss +2 -35
- package/src/components/TestResult/TestResultSteps/attachment.tsx +24 -2
- package/src/components/TestResult/TestResultSteps/attachmentVideo.tsx +3 -1
- package/src/components/TestResult/TestResultSteps/styles.scss +35 -17
- package/src/components/TestResult/TestResultSteps/testResultAttachmentInfo.tsx +1 -0
- package/src/components/TestResult/TestResultSteps/testResultStep.tsx +2 -2
- package/src/components/TestResult/TestResultTabs/styles.scss +1 -1
- package/src/components/Tree/TreeHeader.tsx +1 -1
- package/src/components/Tree/styles.scss +38 -33
- package/src/index.html +3 -3
- package/src/index.js +1 -0
- package/src/utils/attachments.ts +6 -0
- package/test/dummy.test.ts +9 -1
- package/test/utils/treeFilters.test.ts +9 -1
- package/types.d.ts +1 -0
- package/webpack.config.js +8 -5
- package/dist/multi/app-f80e40e5d4a6b2591c77.js +0 -2
- package/dist/multi/styles-782990bab862d8dfb55a.css +0 -284
- package/dist/single/app-d95b6198c4d471014aa1.js +0 -2
- package/src/assets/scss/day.scss +0 -51
- package/src/assets/scss/fonts.scss +0 -3
- package/src/assets/scss/night.scss +0 -61
- package/src/assets/scss/palette.scss +0 -393
- package/src/assets/scss/theme.scss +0 -326
- package/src/assets/scss/typography.scss +0 -218
- package/src/assets/scss/vars.scss +0 -8
- /package/dist/multi/{10.app-f80e40e5d4a6b2591c77.js → 10.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{222.app-f80e40e5d4a6b2591c77.js → 222.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{26.app-f80e40e5d4a6b2591c77.js → 26.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{302.app-f80e40e5d4a6b2591c77.js → 302.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{304.app-f80e40e5d4a6b2591c77.js → 304.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{333.app-f80e40e5d4a6b2591c77.js → 333.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{369.app-f80e40e5d4a6b2591c77.js → 369.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{389.app-f80e40e5d4a6b2591c77.js → 389.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{498.app-f80e40e5d4a6b2591c77.js → 498.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{60.app-f80e40e5d4a6b2591c77.js → 60.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{643.app-f80e40e5d4a6b2591c77.js → 643.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{671.app-f80e40e5d4a6b2591c77.js → 671.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{725.app-f80e40e5d4a6b2591c77.js → 725.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{770.app-f80e40e5d4a6b2591c77.js → 770.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{848.app-f80e40e5d4a6b2591c77.js → 848.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{853.app-f80e40e5d4a6b2591c77.js → 853.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{872.app-f80e40e5d4a6b2591c77.js → 872.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{895.app-f80e40e5d4a6b2591c77.js → 895.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{920.app-f80e40e5d4a6b2591c77.js → 920.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{979.app-f80e40e5d4a6b2591c77.js → 979.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{991.app-f80e40e5d4a6b2591c77.js → 991.app-0638edd2daa9730d5153.js} +0 -0
- /package/dist/multi/{app-f80e40e5d4a6b2591c77.js.LICENSE.txt → app-0638edd2daa9730d5153.js.LICENSE.txt} +0 -0
- /package/dist/single/{app-d95b6198c4d471014aa1.js.LICENSE.txt → app-099b8ba247b13f22ce56.js.LICENSE.txt} +0 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
position: relative;
|
|
14
14
|
|
|
15
15
|
&:not(:first-child) {
|
|
16
|
-
border-top: 1px solid var(--
|
|
16
|
+
border-top: 1px solid var(--color-border-subtle);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
padding: 4px 8px 4px 6px;
|
|
31
31
|
|
|
32
32
|
&:hover {
|
|
33
|
-
background: var(--
|
|
33
|
+
background: var(--color-control-bg-ghost-hover);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -64,15 +64,15 @@
|
|
|
64
64
|
position: relative;
|
|
65
65
|
|
|
66
66
|
&:hover {
|
|
67
|
-
background: var(--
|
|
67
|
+
background: var(--color-control-bg-ghost-hover);
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
&:not(:first-child) {
|
|
71
|
-
border-top: 1px solid var(--
|
|
71
|
+
border-top: 1px solid var(--color-border-subtle);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
.tree-item-marked {
|
|
75
|
-
background: var(--bg-
|
|
75
|
+
background: var(--color-bg-secondary);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
.item-title {
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
.item-time {
|
|
83
83
|
flex: none;
|
|
84
84
|
margin-left: auto;
|
|
85
|
-
color: var(--
|
|
85
|
+
color: var(--color-text-muted);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
.test-count {
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
display: block;
|
|
95
95
|
padding-left: 24px;
|
|
96
96
|
margin-bottom: 12px;
|
|
97
|
-
border-top: 1px solid var(--
|
|
97
|
+
border-top: 1px solid var(--color-border-subtle);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
.tree-item-icon {
|
|
@@ -103,71 +103,76 @@
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
.status-passed {
|
|
106
|
-
color: var(--
|
|
106
|
+
color: var(--color-status-passed-bg);
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
.status-failed {
|
|
110
|
-
color: var(--
|
|
110
|
+
color: var(--color-status-failed-bg);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
.status-broken {
|
|
114
|
-
color: var(--
|
|
114
|
+
color: var(--color-status-broken-bg);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
.status-skipped {
|
|
118
|
-
color: var(--
|
|
118
|
+
color: var(--color-status-skipped-bg);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
.status-unknown {
|
|
122
|
-
color: var(--
|
|
122
|
+
color: var(--color-status-unknown-bg);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
.tree-header-bar {
|
|
126
126
|
display: inline-flex;
|
|
127
|
+
align-items: center;
|
|
128
|
+
gap: var(--space-0-25);
|
|
127
129
|
font-family: var(--font-family);
|
|
128
130
|
max-width: 140px;
|
|
129
131
|
min-width: 46px;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
background: var(--on-text-hint);
|
|
132
|
+
height: var(--space-2);
|
|
133
|
+
background: transparent;
|
|
133
134
|
margin-left: auto;
|
|
134
|
-
font-size:
|
|
135
|
-
font-weight: var(--font-weight-
|
|
136
|
-
line-height:
|
|
137
|
-
overflow:
|
|
135
|
+
font-size: var(--font-size-xs);
|
|
136
|
+
font-weight: var(--font-weight-bold);
|
|
137
|
+
line-height: var(--line-height-s);
|
|
138
|
+
overflow: visible;
|
|
138
139
|
}
|
|
139
140
|
|
|
140
141
|
.tree-header-bar-item {
|
|
141
142
|
display: flex;
|
|
142
|
-
|
|
143
|
+
align-items: center;
|
|
143
144
|
justify-content: center;
|
|
145
|
+
box-sizing: border-box;
|
|
146
|
+
min-width: var(--space-2);
|
|
147
|
+
height: var(--space-2);
|
|
148
|
+
border-radius: var(--radius-pill);
|
|
144
149
|
text-align: center;
|
|
145
|
-
padding: 0
|
|
150
|
+
padding: 0 var(--space-0-75);
|
|
146
151
|
flex-grow: 1;
|
|
147
152
|
|
|
148
153
|
&.passed {
|
|
149
|
-
background-color: var(--
|
|
150
|
-
color: var(--
|
|
154
|
+
background-color: var(--color-status-passed-bg);
|
|
155
|
+
color: var(--color-status-passed-on-bg);
|
|
151
156
|
}
|
|
152
157
|
|
|
153
158
|
&.failed {
|
|
154
|
-
background-color: var(--
|
|
155
|
-
color: var(--
|
|
159
|
+
background-color: var(--color-status-failed-bg);
|
|
160
|
+
color: var(--color-status-failed-on-bg);
|
|
156
161
|
}
|
|
157
162
|
|
|
158
163
|
&.broken {
|
|
159
|
-
background-color: var(--
|
|
160
|
-
color: var(--
|
|
164
|
+
background-color: var(--color-status-broken-bg);
|
|
165
|
+
color: var(--color-status-broken-on-bg);
|
|
161
166
|
}
|
|
162
167
|
|
|
163
168
|
&.skipped {
|
|
164
|
-
background-color: var(--
|
|
165
|
-
color: var(--
|
|
169
|
+
background-color: var(--color-status-skipped-bg);
|
|
170
|
+
color: var(--color-status-skipped-on-bg);
|
|
166
171
|
}
|
|
167
172
|
|
|
168
173
|
&.unknown {
|
|
169
|
-
background-color: var(--
|
|
170
|
-
color: var(--
|
|
174
|
+
background-color: var(--color-status-unknown-bg);
|
|
175
|
+
color: var(--color-status-unknown-on-bg);
|
|
171
176
|
}
|
|
172
177
|
}
|
|
173
178
|
|
|
@@ -177,7 +182,7 @@
|
|
|
177
182
|
}
|
|
178
183
|
|
|
179
184
|
.tree-empty-results-title {
|
|
180
|
-
color: var(--
|
|
185
|
+
color: var(--color-text-secondary);
|
|
181
186
|
}
|
|
182
187
|
|
|
183
188
|
.tree-empty-results-clear-button {
|
|
@@ -186,7 +191,7 @@
|
|
|
186
191
|
|
|
187
192
|
.order {
|
|
188
193
|
user-select: none;
|
|
189
|
-
color: var(--
|
|
194
|
+
color: var(--color-text-muted);
|
|
190
195
|
min-width: 16px;
|
|
191
196
|
text-align: center;
|
|
192
197
|
box-sizing: content-box;
|
|
@@ -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(--
|
|
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-
|
|
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(--
|
|
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(--
|
|
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-
|
|
53
|
+
background: var(--color-status-failed-bg-subtle);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -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?.
|
|
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(--
|
|
29
|
+
color: var(--color-status-passed-chart);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
.status-failed {
|
|
33
|
-
color: var(--
|
|
33
|
+
color: var(--color-status-failed-chart);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
.status-broken {
|
|
37
|
-
color: var(--
|
|
37
|
+
color: var(--color-status-broken-chart);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
.status-skipped {
|
|
41
|
-
color: var(--
|
|
41
|
+
color: var(--color-status-skipped-chart);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
.status-unknown {
|
|
45
|
-
color: var(--
|
|
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(--
|
|
12
|
+
color: var(--color-intent-danger-text);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.severity-critical {
|
|
16
|
-
color: var(--
|
|
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(--
|
|
24
|
+
color: var(--color-intent-primary-text);
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
.severity-trivial {
|
|
28
|
-
color: var(--
|
|
28
|
+
color: var(--color-intent-success-text);
|
|
29
29
|
}
|
|
@@ -1,36 +1,3 @@
|
|
|
1
|
-
.
|
|
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
|
-
|
|
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 (
|
|
87
|
+
if (showPreview) {
|
|
66
88
|
return <CurrentPreviewComponent attachment={attachment} item={item} />;
|
|
67
89
|
}
|
|
68
90
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Spinner } from "@allurereport/web-components";
|
|
2
2
|
import { type FunctionalComponent } from "preact";
|
|
3
3
|
|
|
4
|
+
import * as styles from "./styles.scss";
|
|
5
|
+
|
|
4
6
|
export const AttachmentVideo: FunctionalComponent<{
|
|
5
7
|
attachment: { src: string; contentType?: string };
|
|
6
8
|
}> = ({ attachment }) => {
|
|
@@ -8,7 +10,7 @@ export const AttachmentVideo: FunctionalComponent<{
|
|
|
8
10
|
return <Spinner />;
|
|
9
11
|
}
|
|
10
12
|
return (
|
|
11
|
-
<video controls loop muted>
|
|
13
|
+
<video class={styles["test-result-attachment-video"]} controls loop muted>
|
|
12
14
|
<source src={attachment?.src} type={attachment?.contentType} />
|
|
13
15
|
</video>
|
|
14
16
|
);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
padding-right: 24px;
|
|
3
3
|
|
|
4
4
|
&:not(:first-child) {
|
|
5
|
-
border-top: 1px solid var(--
|
|
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(--
|
|
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(--
|
|
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(--
|
|
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(--
|
|
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(--
|
|
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(--
|
|
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(--
|
|
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(--
|
|
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(--
|
|
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(--
|
|
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(--
|
|
143
|
+
color: var(--color-icon-secondary);
|
|
144
144
|
padding: 2px 4px;
|
|
145
145
|
height: max-content;
|
|
146
146
|
}
|
|
@@ -159,9 +159,11 @@
|
|
|
159
159
|
height: 100%;
|
|
160
160
|
|
|
161
161
|
img {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
162
|
+
display: block;
|
|
163
|
+
max-width: 100%;
|
|
164
|
+
max-height: 80vh;
|
|
165
|
+
width: auto;
|
|
166
|
+
height: auto;
|
|
165
167
|
}
|
|
166
168
|
}
|
|
167
169
|
|
|
@@ -189,7 +191,7 @@
|
|
|
189
191
|
}
|
|
190
192
|
|
|
191
193
|
.item-button {
|
|
192
|
-
color: var(--
|
|
194
|
+
color: var(--color-control-bg-ghost);
|
|
193
195
|
}
|
|
194
196
|
|
|
195
197
|
.wrong-attachment-sign {
|
|
@@ -199,7 +201,7 @@
|
|
|
199
201
|
}
|
|
200
202
|
|
|
201
203
|
.test-result-attachment-missed {
|
|
202
|
-
color: var(--
|
|
204
|
+
color: var(--color-text-secondary);
|
|
203
205
|
line-height: 20px;
|
|
204
206
|
margin-right: auto;
|
|
205
207
|
padding-top: 2px;
|
|
@@ -217,6 +219,22 @@
|
|
|
217
219
|
width: 24px;
|
|
218
220
|
}
|
|
219
221
|
|
|
222
|
+
.attachmentViewStack {
|
|
223
|
+
width: 100%;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.attachmentViewPane[hidden] {
|
|
227
|
+
display: none !important;
|
|
228
|
+
}
|
|
229
|
+
|
|
220
230
|
.html-attachment-preview {
|
|
221
231
|
padding: 0 16px;
|
|
222
232
|
}
|
|
233
|
+
|
|
234
|
+
.test-result-attachment-video {
|
|
235
|
+
display: block;
|
|
236
|
+
max-width: 100%;
|
|
237
|
+
max-height: 80vh;
|
|
238
|
+
width: auto;
|
|
239
|
+
height: auto;
|
|
240
|
+
}
|
|
@@ -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,
|
|
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
|
-
<
|
|
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} />}
|
|
@@ -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={{
|
|
73
|
+
<div className={styles["tree-header-bar"]} style={{ minWidth: `${width}px` }}>
|
|
74
74
|
{treeHeaderBar}
|
|
75
75
|
</div>
|
|
76
76
|
)}
|