ortoni-report 2.0.5 → 2.0.7
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/changelog.md +30 -0
- package/dist/ortoni-report.d.ts +16 -4
- package/dist/ortoni-report.js +428 -240
- package/dist/ortoni-report.mjs +428 -240
- package/dist/style/main.css +92 -128
- package/dist/views/head.hbs +11 -0
- package/dist/views/main.hbs +482 -440
- package/dist/views/navbar.hbs +2 -12
- package/dist/views/project.hbs +201 -95
- package/dist/views/testIcons.hbs +13 -0
- package/dist/views/testPanel.hbs +16 -7
- package/dist/views/testStatus.hbs +8 -32
- package/package.json +4 -1
- package/readme.md +41 -22
- package/dist/types/reporterConfig.js +0 -2
- package/dist/types/testResults.js +0 -2
- package/dist/utils/expressServer.js +0 -33
- package/dist/utils/utils.js +0 -85
- package/dist/utils/webSocketHelper.js +0 -93
package/dist/views/navbar.hbs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<nav class="navbar is-primary" role="navigation" aria-label="main navigation">
|
|
1
|
+
<nav class="navbar is-primary is-fixed-top" role="navigation" aria-label="main navigation">
|
|
2
2
|
<div class="navbar-brand">
|
|
3
3
|
<a class="navbar-item">
|
|
4
4
|
{{#if logo}}
|
|
@@ -16,16 +16,6 @@
|
|
|
16
16
|
</div>
|
|
17
17
|
<div class="navbar-menu">
|
|
18
18
|
<div class="navbar-end">
|
|
19
|
-
<div class="navbar-item">
|
|
20
|
-
<span id="selected-filters"></span>
|
|
21
|
-
</div>
|
|
22
|
-
<div class="navbar-item">
|
|
23
|
-
<div class="field">
|
|
24
|
-
<p class="control">
|
|
25
|
-
<input class="input" name="search" type="search" placeholder="Search by test">
|
|
26
|
-
</p>
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
19
|
<div class="navbar-item">
|
|
30
20
|
<button id="toggle-theme" class="" data-theme-status="{{preferredTheme}}">
|
|
31
21
|
<span class="icon">
|
|
@@ -35,7 +25,7 @@
|
|
|
35
25
|
</div>
|
|
36
26
|
<div class="navbar-item">
|
|
37
27
|
<figure class="image">
|
|
38
|
-
<a href="https://
|
|
28
|
+
<a href="https://www.letcode.in" target="_blank">
|
|
39
29
|
<img
|
|
40
30
|
src="https://raw.githubusercontent.com/ortoniKC/ortoni-report/refs/heads/main/ortoni.png" />
|
|
41
31
|
</a>
|
package/dist/views/project.hbs
CHANGED
|
@@ -1,131 +1,237 @@
|
|
|
1
|
+
<style>
|
|
2
|
+
:root {
|
|
3
|
+
--primary-gradient: linear-gradient(135deg, #694F8E 0%, #B692C2 100%);
|
|
4
|
+
--flaky-gradient: linear-gradient(135deg, #ffb70f 0%, #ffd65a 100%);
|
|
5
|
+
--retry-gradient: linear-gradient(135deg, #94a3b8 0%, #c0cad9 100%);
|
|
6
|
+
--skip-gradient: linear-gradient(135deg, #66d1ff 0%, #99e1ff 100%);
|
|
7
|
+
--success-gradient: linear-gradient(135deg, #34d399 0%, #059669 100%);
|
|
8
|
+
--error-gradient: linear-gradient(135deg, #dc2626 0%, #f87171 100%);
|
|
9
|
+
--glass-bg: rgba(255, 255, 255, 0.7);
|
|
10
|
+
--glass-border: rgba(255, 255, 255, 0.1);
|
|
11
|
+
--shadow-sm: 0 2px 4px -1px rgba(0, 0, 0, 0.1);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.sidebar {
|
|
15
|
+
height: 100%;
|
|
16
|
+
overflow-y: auto;
|
|
17
|
+
max-height: calc(100vh - 100px);
|
|
18
|
+
padding: 0px 10px 0px 0px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.test-group {
|
|
22
|
+
margin-bottom: 0.5rem;
|
|
23
|
+
border-radius: 8px;
|
|
24
|
+
transition: all 0.2s ease;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.test-group summary {
|
|
28
|
+
padding: 0.5rem;
|
|
29
|
+
cursor: pointer;
|
|
30
|
+
user-select: none;
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
33
|
+
gap: 0.5rem;
|
|
34
|
+
border-radius: 8px;
|
|
35
|
+
background: var(--primary-gradient);
|
|
36
|
+
color: white;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.test-suite {
|
|
40
|
+
margin: 0.35rem;
|
|
41
|
+
border-radius: 6px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.test-suite summary {
|
|
45
|
+
padding: 0.35rem 0.5rem;
|
|
46
|
+
color: inherit;
|
|
47
|
+
background: transparent;
|
|
48
|
+
transition: background-color 0.2s ease;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.test-case {
|
|
52
|
+
margin: 0.35rem;
|
|
53
|
+
border-radius: 6px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.test-case summary {
|
|
57
|
+
padding: 0.35rem 0.5rem;
|
|
58
|
+
color: inherit;
|
|
59
|
+
background: transparent;
|
|
60
|
+
transition: background-color 0.2s ease;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.test-item {
|
|
64
|
+
padding: 0.4rem 0.5rem;
|
|
65
|
+
margin: 0.35rem;
|
|
66
|
+
border-radius: 6px;
|
|
67
|
+
display: flex;
|
|
68
|
+
align-items: center;
|
|
69
|
+
gap: 0.5rem;
|
|
70
|
+
flex-wrap: wrap;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.test-item span {
|
|
74
|
+
overflow: hidden;
|
|
75
|
+
white-space: nowrap;
|
|
76
|
+
text-overflow: ellipsis;
|
|
77
|
+
max-width: 35ch;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.status-passed {
|
|
81
|
+
background: var(--success-gradient);
|
|
82
|
+
color: white;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.status-skipped {
|
|
86
|
+
background: var(--skip-gradient);
|
|
87
|
+
color: white;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.status-failed {
|
|
91
|
+
background: var(--error-gradient);
|
|
92
|
+
color: white;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.status-flaky {
|
|
96
|
+
background: var(--flaky-gradient);
|
|
97
|
+
color: white;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.icon-chevron {
|
|
101
|
+
transition: transform 0.2s ease;
|
|
102
|
+
width: 16px;
|
|
103
|
+
height: 16px;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
details[open]>summary .icon-chevron {
|
|
107
|
+
transform: rotate(90deg);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.duration-tag {
|
|
111
|
+
font-size: 0.75rem;
|
|
112
|
+
margin-left: auto;
|
|
113
|
+
opacity: 0.8;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@keyframes slideIn {
|
|
117
|
+
from {
|
|
118
|
+
opacity: 0;
|
|
119
|
+
transform: translateX(-5px);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
to {
|
|
123
|
+
opacity: 1;
|
|
124
|
+
transform: translateX(0);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
details[open]>.test-content {
|
|
129
|
+
animation: slideIn 0.2s ease-out;
|
|
130
|
+
}
|
|
131
|
+
</style>
|
|
1
132
|
<div class="content sidebar">
|
|
2
133
|
{{#if showProject}}
|
|
3
134
|
{{#each groupedResults}}
|
|
4
|
-
<details class="
|
|
5
|
-
<summary class="is-size-5
|
|
135
|
+
<details class="test-group">
|
|
136
|
+
<summary class="is-size-5">
|
|
6
137
|
<div class="icon-text">
|
|
7
|
-
<span class="icon
|
|
8
|
-
<svg class="
|
|
9
|
-
|
|
10
|
-
<
|
|
11
|
-
<path
|
|
12
|
-
d="M11.612 30.945a3.986 3.986 0 01-2.829-1.17l-5.209-5.208a4.006 4.006 0 010-5.657l3.955-3.954a1 1 0 011.414 1.414l-3.955 3.954a2.003 2.003 0 000 2.829l5.21 5.208a2.004 2.004 0 002.828 0l7.235-7.234a2.003 2.003 0 000-2.828l-4.63-4.63a1 1 0 011.414-1.414l4.63 4.63a4.006 4.006 0 010 5.657l-7.235 7.233a3.988 3.988 0 01-2.828 1.17z"
|
|
13
|
-
fill="#232323" />
|
|
14
|
-
<path
|
|
15
|
-
d="M15.662 20.038a.997.997 0 01-.707-.293l-4.63-4.63a4.006 4.006 0 010-5.656l7.235-7.234a4.004 4.004 0 015.657 0l5.209 5.208a4.006 4.006 0 010 5.657l-3.955 3.954a1 1 0 01-1.414-1.414l3.955-3.954a2.003 2.003 0 000-2.829l-5.21-5.208a2.002 2.002 0 00-2.828 0l-7.235 7.234a2.003 2.003 0 000 2.828l4.63 4.63a1 1 0 01-.707 1.707z"
|
|
16
|
-
fill="#7fbde7" />
|
|
17
|
-
</g>
|
|
138
|
+
<span class="icon">
|
|
139
|
+
<svg class="icon-chevron" width="16" height="16" viewBox="0 0 24 24" fill="none"
|
|
140
|
+
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
141
|
+
<polyline points="9 18 15 12 9 6" />
|
|
18
142
|
</svg>
|
|
19
143
|
</span>
|
|
20
144
|
<span>{{@key}}</span>
|
|
21
145
|
</div>
|
|
22
146
|
</summary>
|
|
23
|
-
<
|
|
147
|
+
<div class="test-content">
|
|
24
148
|
{{#each this}}
|
|
25
|
-
<details class="
|
|
26
|
-
<summary class="is-size-
|
|
27
|
-
<
|
|
28
|
-
<
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
149
|
+
<details class="test-suite">
|
|
150
|
+
<summary class="is-size-6 is-capitalized">
|
|
151
|
+
<span class="icon is-small">
|
|
152
|
+
<svg class="image is-16x16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
|
153
|
+
<path
|
|
154
|
+
d="M181.344 42.656v394.671C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V42.656H181.344z"
|
|
155
|
+
fill="#e6e9ed" />
|
|
156
|
+
<path
|
|
157
|
+
d="M352 32c0 17.672-14.312 32-32 32H192c-17.656 0-32-14.328-32-32s14.344-32 32-32h128c17.688 0 32 14.328 32 32z"
|
|
158
|
+
fill="#ccd1d9" />
|
|
159
|
+
<path
|
|
160
|
+
d="M181.344 192v245.327C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V192H181.344z"
|
|
161
|
+
fill="#a0d468" />
|
|
162
|
+
<g fill="#434a54">
|
|
33
163
|
<path
|
|
34
|
-
d="
|
|
35
|
-
|
|
164
|
+
d="M245.344 266.655c0-5.89-4.781-10.655-10.672-10.655h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.673zM234.672 319.999h-53.328v21.328h53.328c5.891 0 10.672-4.781 10.672-10.671s-4.782-10.657-10.672-10.657zM245.344 202.656c0-5.891-4.781-10.656-10.672-10.656h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.672z" />
|
|
165
|
+
</g>
|
|
166
|
+
</svg>
|
|
167
|
+
</span>
|
|
168
|
+
<span>{{@key}}</span>
|
|
169
|
+
</summary>
|
|
170
|
+
{{#each this}}
|
|
171
|
+
<details class="test-case">
|
|
172
|
+
<summary>
|
|
173
|
+
<span class="icon is-small">
|
|
174
|
+
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
175
|
+
stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
36
176
|
<path
|
|
37
|
-
d="
|
|
38
|
-
fill="#a0d468" />
|
|
39
|
-
<g fill="#434a54">
|
|
40
|
-
<path
|
|
41
|
-
d="M245.344 266.655c0-5.89-4.781-10.655-10.672-10.655h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.673zM234.672 319.999h-53.328v21.328h53.328c5.891 0 10.672-4.781 10.672-10.671s-4.782-10.657-10.672-10.657zM245.344 202.656c0-5.891-4.781-10.656-10.672-10.656h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.672z" />
|
|
42
|
-
</g>
|
|
177
|
+
d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z" />
|
|
43
178
|
</svg>
|
|
44
179
|
</span>
|
|
45
|
-
<span>{{@key}}</span>
|
|
46
|
-
</
|
|
47
|
-
</summary>
|
|
48
|
-
<ul class="mt-4 mb-4">
|
|
180
|
+
<span class="is-size-6">{{@key}}</span>
|
|
181
|
+
</summary>
|
|
49
182
|
{{#each this}}
|
|
50
|
-
|
|
51
|
-
<summary class="is-capitalized is-size-6">{{@key}}</summary>
|
|
52
|
-
<ul class="mt-4 mb-4">
|
|
53
|
-
{{#each this}}
|
|
54
|
-
<li class="media {{#if (eq status 'skipped')}}is-hidden{{/if}}" data-suite-name="{{suite}}"
|
|
55
|
-
data-test-duration="{{duration}}" data-test-tags="{{joinWithSpace testTags}}"
|
|
56
|
-
data-project-name="{{projectName}}" data-test-id="{{index}}"
|
|
57
|
-
data-test-status="{{status}} {{retry}}">
|
|
58
|
-
{{> testStatus}}
|
|
59
|
-
</li>
|
|
60
|
-
{{/each}}
|
|
61
|
-
</ul>
|
|
62
|
-
</details>
|
|
183
|
+
{{> testStatus}}
|
|
63
184
|
{{/each}}
|
|
64
|
-
</
|
|
185
|
+
</details>
|
|
186
|
+
{{/each}}
|
|
65
187
|
</details>
|
|
66
188
|
{{/each}}
|
|
67
|
-
</
|
|
189
|
+
</div>
|
|
68
190
|
</details>
|
|
69
191
|
{{/each}}
|
|
70
192
|
{{else}}
|
|
71
193
|
{{#each groupedResults}}
|
|
72
|
-
<details class="
|
|
73
|
-
<summary class="is-size-5
|
|
194
|
+
<details class="test-group">
|
|
195
|
+
<summary class="is-size-5">
|
|
74
196
|
<div class="icon-text">
|
|
75
|
-
<span class="icon
|
|
76
|
-
<svg class="
|
|
77
|
-
|
|
78
|
-
<
|
|
79
|
-
<path
|
|
80
|
-
d="M11.612 30.945a3.986 3.986 0 01-2.829-1.17l-5.209-5.208a4.006 4.006 0 010-5.657l3.955-3.954a1 1 0 011.414 1.414l-3.955 3.954a2.003 2.003 0 000 2.829l5.21 5.208a2.004 2.004 0 002.828 0l7.235-7.234a2.003 2.003 0 000-2.828l-4.63-4.63a1 1 0 011.414-1.414l4.63 4.63a4.006 4.006 0 010 5.657l-7.235 7.233a3.988 3.988 0 01-2.828 1.17z"
|
|
81
|
-
fill="#232323" />
|
|
82
|
-
<path
|
|
83
|
-
d="M15.662 20.038a.997.997 0 01-.707-.293l-4.63-4.63a4.006 4.006 0 010-5.656l7.235-7.234a4.004 4.004 0 015.657 0l5.209 5.208a4.006 4.006 0 010 5.657l-3.955 3.954a1 1 0 01-1.414-1.414l3.955-3.954a2.003 2.003 0 000-2.829l-5.21-5.208a2.002 2.002 0 00-2.828 0l-7.235 7.234a2.003 2.003 0 000 2.828l4.63 4.63a1 1 0 01-.707 1.707z"
|
|
84
|
-
fill="#7fbde7" />
|
|
85
|
-
</g>
|
|
197
|
+
<span class="icon">
|
|
198
|
+
<svg class="icon-chevron" width="16" height="16" viewBox="0 0 24 24" fill="none"
|
|
199
|
+
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
200
|
+
<polyline points="9 18 15 12 9 6" />
|
|
86
201
|
</svg>
|
|
87
202
|
</span>
|
|
88
203
|
<span>{{@key}}</span>
|
|
89
204
|
</div>
|
|
90
205
|
</summary>
|
|
91
|
-
<
|
|
206
|
+
<div class="test-content">
|
|
92
207
|
{{#each this}}
|
|
93
|
-
<details class="
|
|
94
|
-
<summary
|
|
95
|
-
<
|
|
96
|
-
<
|
|
97
|
-
<
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
208
|
+
<details class="test-case">
|
|
209
|
+
<summary>
|
|
210
|
+
<span class="icon is-small">
|
|
211
|
+
<svg class="image is-16x16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
|
212
|
+
<path
|
|
213
|
+
d="M181.344 42.656v394.671C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V42.656H181.344z"
|
|
214
|
+
fill="#e6e9ed" />
|
|
215
|
+
<path
|
|
216
|
+
d="M352 32c0 17.672-14.312 32-32 32H192c-17.656 0-32-14.328-32-32s14.344-32 32-32h128c17.688 0 32 14.328 32 32z"
|
|
217
|
+
fill="#ccd1d9" />
|
|
218
|
+
<path
|
|
219
|
+
d="M181.344 192v245.327C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V192H181.344z"
|
|
220
|
+
fill="#a0d468" />
|
|
221
|
+
<g fill="#434a54">
|
|
104
222
|
<path
|
|
105
|
-
d="
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
</g>
|
|
111
|
-
</svg>
|
|
112
|
-
</span>
|
|
113
|
-
<span>{{@key}}</span>
|
|
114
|
-
</div>
|
|
223
|
+
d="M245.344 266.655c0-5.89-4.781-10.655-10.672-10.655h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.673zM234.672 319.999h-53.328v21.328h53.328c5.891 0 10.672-4.781 10.672-10.671s-4.782-10.657-10.672-10.657zM245.344 202.656c0-5.891-4.781-10.656-10.672-10.656h-53.328v21.328h53.328c5.89 0 10.672-4.781 10.672-10.672z" />
|
|
224
|
+
</g>
|
|
225
|
+
</svg>
|
|
226
|
+
</span>
|
|
227
|
+
<span class="is-size-6">{{@key}}</span>
|
|
115
228
|
</summary>
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
data-test-duration="{{duration}}" data-test-tags="{{joinWithSpace testTags}}"
|
|
120
|
-
data-project-name="{{projectName}}" data-test-id="{{index}}"
|
|
121
|
-
data-test-status="{{status}} {{retry}}">
|
|
122
|
-
{{> testStatus}}
|
|
123
|
-
</li>
|
|
124
|
-
{{/each}}
|
|
125
|
-
</ul>
|
|
229
|
+
{{#each this}}
|
|
230
|
+
{{> testStatus}}
|
|
231
|
+
{{/each}}
|
|
126
232
|
</details>
|
|
127
233
|
{{/each}}
|
|
128
|
-
</
|
|
234
|
+
</div>
|
|
129
235
|
</details>
|
|
130
236
|
{{/each}}
|
|
131
237
|
{{/if}}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<div class="icon-text">
|
|
2
|
+
{{#if isRetry}}
|
|
3
|
+
<span class="icon has-text-info">
|
|
4
|
+
<i class="fa-solid fa-rotate-right" style="color: #fff;"></i>
|
|
5
|
+
</span>
|
|
6
|
+
{{/if}}
|
|
7
|
+
<span>{{title}}</span>
|
|
8
|
+
</div>
|
|
9
|
+
{{#if @root.showProject}}
|
|
10
|
+
<span class="tag duration-tag has-text-weight-medium">{{duration}}</span>
|
|
11
|
+
{{else}}
|
|
12
|
+
<span class="tag duration-tag has-text-weight-medium">{{projectName}}</span>
|
|
13
|
+
{{/if}}
|
package/dist/views/testPanel.hbs
CHANGED
|
@@ -1,31 +1,37 @@
|
|
|
1
|
-
<div class="columns is-mobile is-vcentered">
|
|
1
|
+
<div class="columns is-mobile is-vcentered is-gapless">
|
|
2
2
|
<div class="column">
|
|
3
|
-
<
|
|
3
|
+
<div class="control">
|
|
4
|
+
<input class="input" name="search" type="search" placeholder="Search by test" />
|
|
5
|
+
</div>
|
|
4
6
|
</div>
|
|
5
|
-
<div class="column">
|
|
7
|
+
<div class="column is-2 mr-3">
|
|
6
8
|
<div id="project-filter" class="dropdown is-right is-hoverable is-pulled-right">
|
|
7
9
|
<div class="dropdown-trigger">
|
|
8
|
-
<button class="button" aria-haspopup="true" aria-controls="select-filter">
|
|
10
|
+
<button class="button is-primary" aria-haspopup="true" aria-controls="select-filter">
|
|
9
11
|
<span>Filters</span>
|
|
10
12
|
<span class="icon is-small">
|
|
11
|
-
<i class="
|
|
13
|
+
<i class="fa-solid fa-filter" aria-hidden="true"></i>
|
|
12
14
|
</span>
|
|
13
15
|
</button>
|
|
14
16
|
</div>
|
|
15
17
|
<div class="dropdown-menu" id="select-filter" role="menu">
|
|
16
18
|
<div class="dropdown-content">
|
|
19
|
+
<p class="dropdown-item has-text-weight-semibold has-text-primary">Projects</p>
|
|
17
20
|
{{#each projects}}
|
|
18
21
|
<div class="dropdown-item">
|
|
19
22
|
<label class="checkbox is-capitalized">
|
|
20
|
-
<input name="{{this}}" type="checkbox" data-filter-type="project" value="{{this}}"
|
|
23
|
+
<input name="{{this}}" type="checkbox" data-filter-type="project" value="{{this}}" />
|
|
24
|
+
{{this}}
|
|
21
25
|
</label>
|
|
22
26
|
</div>
|
|
23
27
|
{{/each}}
|
|
24
28
|
<hr class="dropdown-divider" />
|
|
29
|
+
<p class="dropdown-item has-text-weight-semibold has-text-primary">Tags</p>
|
|
25
30
|
{{#each allTags}}
|
|
26
31
|
<div class="dropdown-item">
|
|
27
32
|
<label class="checkbox">
|
|
28
|
-
<input name="{{this}}" type="checkbox" data-filter-type="test-tags" value="{{this}}"
|
|
33
|
+
<input name="{{this}}" type="checkbox" data-filter-type="test-tags" value="{{this}}" />
|
|
34
|
+
{{this}}
|
|
29
35
|
</label>
|
|
30
36
|
</div>
|
|
31
37
|
{{/each}}
|
|
@@ -33,4 +39,7 @@
|
|
|
33
39
|
</div>
|
|
34
40
|
</div>
|
|
35
41
|
</div>
|
|
42
|
+
</div>
|
|
43
|
+
<div class="content">
|
|
44
|
+
<span id="selected-filters"></span>
|
|
36
45
|
</div>
|
|
@@ -1,33 +1,9 @@
|
|
|
1
|
-
<div class="
|
|
2
|
-
{{#if
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
{{
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<svg class="image is-16x16" height="512" viewBox="0 0 520 520" width="512" xmlns="http://www.w3.org/2000/svg">
|
|
10
|
-
<g id="_15-Checked" data-name="15-Checked">
|
|
11
|
-
<circle cx="208.52" cy="288.5" fill="#b0ef8f" r="176.52" />
|
|
12
|
-
<path
|
|
13
|
-
d="m210.516 424.937-2.239-3.815c-34.2-58.27-125.082-181.928-126-183.17l-1.311-1.781 30.963-30.6 98.012 68.439c61.711-80.079 119.283-135.081 156.837-167.2 41.081-35.135 67.822-51.31 68.092-51.465l.608-.364h52.522l-5.017 4.468c-129.029 114.926-268.883 359.19-270.276 361.644z"
|
|
14
|
-
fill="#009045" />
|
|
15
|
-
</g>
|
|
16
|
-
</svg>
|
|
17
|
-
{{/if}}
|
|
18
|
-
{{#if (eq status "failed")}}
|
|
19
|
-
<svg class="image is-16x16" height="512pt" viewBox="0 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m256 0c-141.164062 0-256 114.835938-256 256s114.835938 256 256 256 256-114.835938 256-256-114.835938-256-256-256zm0 0" fill="#f44336"/><path d="m350.273438 320.105469c8.339843 8.34375 8.339843 21.824219 0 30.167969-4.160157 4.160156-9.621094 6.25-15.085938 6.25-5.460938 0-10.921875-2.089844-15.082031-6.25l-64.105469-64.109376-64.105469 64.109376c-4.160156 4.160156-9.621093 6.25-15.082031 6.25-5.464844 0-10.925781-2.089844-15.085938-6.25-8.339843-8.34375-8.339843-21.824219 0-30.167969l64.109376-64.105469-64.109376-64.105469c-8.339843-8.34375-8.339843-21.824219 0-30.167969 8.34375-8.339843 21.824219-8.339843 30.167969 0l64.105469 64.109376 64.105469-64.109376c8.34375-8.339843 21.824219-8.339843 30.167969 0 8.339843 8.34375 8.339843 21.824219 0 30.167969l-64.109376 64.105469zm0 0" fill="#fafafa"/></svg>
|
|
20
|
-
{{/if}}
|
|
21
|
-
{{#if (eq status "skipped")}}
|
|
22
|
-
<svg class="image is-16x16" id="Layer_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g clip-rule="evenodd" fill-rule="evenodd"><path d="m256 0c-141.2 0-256 114.8-256 256s114.8 256 256 256 256-114.8 256-256-114.8-256-256-256z" fill="#fec006"/><path d="m379 244.8c6.3 6.3 6.3 16.4 0 22.7l-112.7 112.5c-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7c-6.3-6.3-6.3-16.4 0-22.6l101.3-101.3-101.3-101.3c-6.3-6.3-6.3-16.4 0-22.7s16.4-6.3 22.7 0zm-110.8 22.6-112.5 112.5c-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7c-6.2-6.2-6.2-16.4 0-22.6l101.1-101.2-101.2-101.2c-6.2-6.2-6.2-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l112.5 112.5c6.3 6.2 6.3 16.4.1 22.6z" fill="#fff"/></g></svg>
|
|
23
|
-
{{/if}}
|
|
24
|
-
{{#if (eq status "timedOut")}}
|
|
25
|
-
<svg class="image is-16x16" id="Date__x26__Time_-_Flat" enable-background="new 0 0 64 64" height="512" viewBox="0 0 64 64" width="512" xmlns="http://www.w3.org/2000/svg"><g><g><g><path d="m46.12 16.71h-.43c-1.427 0-2.769-.555-3.777-1.562-1.008-1.009-1.563-2.347-1.563-3.769 0-1.842-1.494-3.34-3.33-3.34h-.7c-1.836 0-3.33 1.498-3.33 3.34v3.33c0 .553-.447 1-1 1s-1-.447-1-1v-3.33c0-2.944 2.391-5.34 5.33-5.34h.699c2.939 0 5.33 2.396 5.33 5.34 0 .888.348 1.723.978 2.354.631.63 1.47.977 2.363.977h.43c1.842 0 3.34-1.494 3.34-3.33 0-.553.447-1 1-1s1 .447 1 1c0 2.939-2.396 5.33-5.34 5.33z" fill="#565662"/></g><g><path d="m50.46 8.651c-.553 0-1-.447-1-1v-2.892c0-.553.447-1 1-1s1 .447 1 1v2.893c0 .552-.447.999-1 .999z" fill="#fb7088"/></g><g><path d="m47.824 9.744c-.256 0-.512-.098-.707-.293l-2.046-2.046c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l2.046 2.046c.391.391.391 1.023 0 1.414-.195.195-.451.293-.707.293z" fill="#fb7088"/></g><g><path d="m55.142 17.062c-.256 0-.512-.098-.707-.293l-2.045-2.045c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l2.045 2.045c.391.391.391 1.023 0 1.414-.196.195-.452.293-.707.293z" fill="#fb7088"/></g><g><path d="m57.081 12.38h-2.893c-.553 0-1-.447-1-1s.447-1 1-1h2.893c.553 0 1 .447 1 1s-.447 1-1 1z" fill="#fb7088"/></g><g><path d="m53.097 9.744c-.256 0-.512-.098-.707-.293-.391-.391-.391-1.023 0-1.414l2.045-2.046c.391-.391 1.023-.391 1.414 0s.391 1.023 0 1.414l-2.045 2.046c-.196.195-.451.293-.707.293z" fill="#fb7088"/></g><path d="m36.48 18.96v-4.25h-8.96v4.25c-9.04 2.03-15.79 10.11-15.79 19.76 0 11.2 9.08 20.27 20.27 20.27s20.27-9.07 20.27-20.27c0-9.65-6.75-17.73-15.79-19.76z" fill="#565662"/><path d="m32 54.489c-8.694 0-15.767-7.073-15.767-15.767s7.073-15.767 15.767-15.767 15.767 7.073 15.767 15.767c0 8.693-7.073 15.767-15.767 15.767z" fill="#faf8f9"/><path d="m18.233 40.721c0-8.694 7.073-15.767 15.767-15.767 3.839 0 7.359 1.382 10.096 3.671-2.895-3.462-7.241-5.671-12.096-5.671-8.694 0-15.767 7.073-15.767 15.767 0 4.855 2.209 9.201 5.671 12.096-2.289-2.737-3.671-6.257-3.671-10.096z" fill="#e0cad6"/><g><path d="m31.991 26.758c-.553 0-1-.447-1-1v-3.999c0-.553.447-1 1-1s1 .447 1 1v3.999c0 .553-.447 1-1 1z" fill="#565662"/></g><g><path d="m22.827 30.562c-.256 0-.512-.098-.707-.293l-2.828-2.828c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l2.828 2.828c.391.391.391 1.023 0 1.414-.195.195-.451.293-.707.293z" fill="#565662"/></g><g><path d="m19.036 39.73h-3.998c-.553 0-1-.447-1-1s.447-1 1-1h3.998c.553 0 1 .447 1 1s-.447 1-1 1z" fill="#565662"/></g><g><path d="m20.012 51.722c-.256 0-.512-.098-.707-.293-.391-.391-.391-1.023 0-1.414l2.828-2.827c.391-.391 1.023-.391 1.414 0s.391 1.023 0 1.414l-2.828 2.827c-.196.195-.451.293-.707.293z" fill="#565662"/></g><g><path d="m32.009 56.684c-.553 0-1-.447-1-1v-3.999c0-.553.447-1 1-1s1 .447 1 1v3.999c0 .552-.447 1-1 1z" fill="#565662"/></g><g><path d="m44.001 51.709c-.256 0-.512-.098-.707-.293l-2.828-2.827c-.391-.391-.391-1.023 0-1.414s1.023-.391 1.414 0l2.828 2.827c.391.391.391 1.023 0 1.414-.195.195-.451.293-.707.293z" fill="#565662"/></g><g><path d="m48.962 39.712h-3.998c-.553 0-1-.447-1-1s.447-1 1-1h3.998c.553 0 1 .447 1 1s-.447 1-1 1z" fill="#565662"/></g><g><path d="m41.16 30.549c-.256 0-.512-.098-.707-.293-.391-.391-.391-1.023 0-1.414l2.828-2.828c.391-.391 1.023-.391 1.414 0s.391 1.023 0 1.414l-2.828 2.828c-.195.195-.451.293-.707.293z" fill="#565662"/></g><g><path d="m32 38.228c-.553 0-1-.447-1-1v-7.819c0-.553.447-1 1-1s1 .447 1 1v7.819c0 .552-.447 1-1 1z" fill="#565662"/></g><g><path d="m26.047 45.675c-.256 0-.512-.098-.707-.293-.391-.391-.391-1.024 0-1.414l4.558-4.555c.391-.391 1.023-.391 1.414 0s.391 1.024 0 1.414l-4.558 4.555c-.195.195-.451.293-.707.293z" fill="#565662"/></g><circle cx="32" cy="38.721" fill="#ffc361" r="2.54"/></g></g></svg>
|
|
26
|
-
{{/if}}
|
|
27
|
-
{{#if (eq status "flaky")}}
|
|
28
|
-
<svg class="image is-16x16" height="512" viewBox="0 0 64 64" width="512" xmlns="http://www.w3.org/2000/svg"><g id="Layer_35" data-name="Layer 35"><path d="m32 3.4a28.59 28.59 0 0 0 -28.6 28.6 28.59 28.59 0 0 0 28.6 28.6 28.59 28.59 0 0 0 28.6-28.6 28.59 28.59 0 0 0 -28.6-28.6zm0 49.2a4.32 4.32 0 1 1 4.31-4.31 4.32 4.32 0 0 1 -4.31 4.31zm5.23-35.6-1.63 22a.6.6 0 0 1 -.6.56h-6a.6.6 0 0 1 -.6-.56l-1.63-22a5.24 5.24 0 1 1 10.46 0z" fill="#ffc048"/></g></svg>
|
|
29
|
-
{{/if}}
|
|
30
|
-
</span>
|
|
31
|
-
{{/if}}
|
|
32
|
-
<span>{{title}}</span>
|
|
1
|
+
<div class="test-item
|
|
2
|
+
{{#if (eq status 'passed')}}status-passed
|
|
3
|
+
{{else if (or (eq status 'failed') (eq status 'timedOut'))}}status-failed
|
|
4
|
+
{{else if (includes status 'flaky')}}status-flaky
|
|
5
|
+
{{else if (eq status 'skipped')}}status-skipped is-hidden{{/if}}" data-suite-name="{{suite}}"
|
|
6
|
+
data-test-tags="{{joinWithSpace testTags}}" data-project-name="{{projectName}}" data-test-id="{{index}}"
|
|
7
|
+
data-test-history-id="{{testId}}" data-test-status="{{status}} {{retry}}" data-test-duration="{{duration}}">
|
|
8
|
+
{{> testIcons}}
|
|
33
9
|
</div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ortoni-report",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.7",
|
|
4
4
|
"description": "Playwright Report By LetCode with Koushik",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"tsc": "tsc",
|
|
@@ -34,10 +34,13 @@
|
|
|
34
34
|
"@playwright/test": "^1.44.1",
|
|
35
35
|
"@types/express": "^5.0.0",
|
|
36
36
|
"@types/node": "^22.0.2",
|
|
37
|
+
"@types/sqlite3": "^3.1.11",
|
|
37
38
|
"@types/ws": "^8.5.12",
|
|
38
39
|
"ansi-to-html": "^0.7.2",
|
|
39
40
|
"express": "^4.21.1",
|
|
40
41
|
"handlebars": "^4.7.8",
|
|
42
|
+
"sqlite": "^5.1.1",
|
|
43
|
+
"sqlite3": "^5.1.7",
|
|
41
44
|
"tsup": "^6.5.0",
|
|
42
45
|
"typescript": "^4.9.4",
|
|
43
46
|
"ws": "^8.18.0"
|