ortoni-report 2.0.3 → 2.0.4
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 +17 -0
- package/dist/ortoni-report.d.ts +7 -1
- package/dist/ortoni-report.js +802 -627
- package/dist/ortoni-report.mjs +802 -627
- package/dist/style/main.css +4 -1
- package/dist/views/main.hbs +52 -155
- package/dist/views/project.hbs +132 -0
- package/dist/views/summaryCard.hbs +5 -11
- package/dist/views/testPanel.hbs +2 -2
- package/dist/views/userInfo.hbs +192 -30
- package/package.json +4 -7
- package/readme.md +5 -1
- package/dist/cli/cli.js +0 -49
package/dist/views/main.hbs
CHANGED
|
@@ -4,117 +4,34 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
-
<meta name="description" content="Playwright HTML report by LetCode Koushik - V2.0.
|
|
7
|
+
<meta name="description" content="Playwright HTML report by LetCode Koushik - V2.0.4">
|
|
8
8
|
<title>{{title}}</title>
|
|
9
|
-
<link rel="icon" href="https://raw.githubusercontent.com/ortoniKC/ortoni-report/refs/heads/main/favicon.png"
|
|
9
|
+
<link rel="icon" href="https://raw.githubusercontent.com/ortoniKC/ortoni-report/refs/heads/main/favicon.png"
|
|
10
|
+
type="image/x-icon">
|
|
10
11
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css"
|
|
11
12
|
integrity="sha512-Kc323vGBEqzTmouAECnVceyQqyqdsSiqLQISBL29aUW4U/M7pSPA/gEUZQqv1cwx4OnYxTxve5UMg5GT6L4JJg=="
|
|
12
13
|
crossorigin="anonymous" referrerpolicy="no-referrer" />
|
|
13
14
|
</head>
|
|
14
15
|
<style>
|
|
15
16
|
{{{inlineCss}}}
|
|
16
|
-
|
|
17
|
+
</style>
|
|
18
|
+
|
|
17
19
|
<body>
|
|
18
|
-
{{> navbar}}
|
|
20
|
+
{{> navbar }}
|
|
19
21
|
<section class="section">
|
|
20
22
|
<main class="container">
|
|
21
23
|
<div class="columns">
|
|
22
24
|
<aside class="column is-two-fifths">
|
|
23
25
|
{{> testPanel}}
|
|
24
|
-
|
|
25
|
-
{{#if showProject}}
|
|
26
|
-
{{#each groupedResults}}
|
|
27
|
-
<details class="box">
|
|
28
|
-
<summary class="is-size-5 has-icon-right">
|
|
29
|
-
<div class="icon-text">
|
|
30
|
-
<span class="icon has-text-info">
|
|
31
|
-
<svg class="image is-16x16" height="512" viewBox="0 0 32 32" width="512" xmlns="http://www.w3.org/2000/svg"><g data-name="Layer 2"><path 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" fill="#232323"/><path 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" fill="#7fbde7"/></g></svg>
|
|
32
|
-
</span>
|
|
33
|
-
<span>{{@key}}</span>
|
|
34
|
-
</div>
|
|
35
|
-
</summary>
|
|
36
|
-
<ul class="mt-4 mb-4">
|
|
37
|
-
{{#each this}}
|
|
38
|
-
<details class="mt-2 mb-2">
|
|
39
|
-
<summary class="is-size-5 is-capitalized">
|
|
40
|
-
<div class="icon-text">
|
|
41
|
-
<span class="icon has-text-info">
|
|
42
|
-
<svg class="image is-16x16"xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path 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" fill="#e6e9ed"/><path 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" fill="#ccd1d9"/><path d="M181.344 192v245.327C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V192H181.344z" fill="#a0d468"/><g fill="#434a54"><path 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"/></g></svg>
|
|
43
|
-
</span>
|
|
44
|
-
<span>{{@key}}</span>
|
|
45
|
-
</div>
|
|
46
|
-
</summary>
|
|
47
|
-
<ul class="mt-4 mb-4">
|
|
48
|
-
{{#each this}}
|
|
49
|
-
<details class="mt-2 mb-2">
|
|
50
|
-
<summary class="is-capitalized is-size-6">{{@key}}</summary>
|
|
51
|
-
<ul class="mt-4 mb-4">
|
|
52
|
-
{{#each this}}
|
|
53
|
-
<li class="media {{#if (eq status 'skipped')}}is-hidden{{/if}}" data-suite-name="{{suite}}"
|
|
54
|
-
data-test-duration="{{duration}}" data-test-tags="{{joinWithSpace testTags}}"
|
|
55
|
-
data-project-name="{{projectName}}" data-test-id="{{index}}"
|
|
56
|
-
data-test-status="{{status}} {{retry}}">
|
|
57
|
-
{{> testStatus}}
|
|
58
|
-
</li>
|
|
59
|
-
{{/each}}
|
|
60
|
-
</ul>
|
|
61
|
-
</details>
|
|
62
|
-
{{/each}}
|
|
63
|
-
</ul>
|
|
64
|
-
</details>
|
|
65
|
-
{{/each}}
|
|
66
|
-
</ul>
|
|
67
|
-
</details>
|
|
68
|
-
{{/each}}
|
|
69
|
-
{{else}}
|
|
70
|
-
{{#each groupedResults}}
|
|
71
|
-
<details class="box">
|
|
72
|
-
<summary class="is-size-5 has-icon-right">
|
|
73
|
-
<div class="icon-text">
|
|
74
|
-
<span class="icon has-text-info">
|
|
75
|
-
<svg class="image is-16x16" height="512" viewBox="0 0 32 32" width="512" xmlns="http://www.w3.org/2000/svg"><g data-name="Layer 2"><path 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" fill="#232323"/><path 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" fill="#7fbde7"/></g></svg>
|
|
76
|
-
</span>
|
|
77
|
-
<span>{{@key}}</span>
|
|
78
|
-
</div>
|
|
79
|
-
</summary>
|
|
80
|
-
<ul class="mt-4 mb-4">
|
|
81
|
-
{{#each this}}
|
|
82
|
-
<details class="mt-2 mb-2">
|
|
83
|
-
<summary class="is-size-5 is-capitalized">
|
|
84
|
-
<div class="icon-text">
|
|
85
|
-
<span class="icon has-text-info">
|
|
86
|
-
<svg class="image is-16x16"xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path 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" fill="#e6e9ed"/><path 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" fill="#ccd1d9"/><path d="M181.344 192v245.327C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V192H181.344z" fill="#a0d468"/><g fill="#434a54"><path 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"/></g></svg>
|
|
87
|
-
</span>
|
|
88
|
-
<span>{{@key}}</span>
|
|
89
|
-
</div>
|
|
90
|
-
</summary>
|
|
91
|
-
<ul class="mt-4 mb-4">
|
|
92
|
-
{{#each this}}
|
|
93
|
-
<li class="media {{#if (eq status 'skipped')}}is-hidden{{/if}}" data-suite-name="{{suite}}"
|
|
94
|
-
data-test-duration="{{duration}}" data-test-tags="{{joinWithSpace testTags}}"
|
|
95
|
-
data-project-name="{{projectName}}" data-test-id="{{index}}"
|
|
96
|
-
data-test-status="{{status}} {{retry}}">
|
|
97
|
-
{{> testStatus}}
|
|
98
|
-
</li>
|
|
99
|
-
{{/each}}
|
|
100
|
-
</ul>
|
|
101
|
-
</details>
|
|
102
|
-
{{/each}}
|
|
103
|
-
</ul>
|
|
104
|
-
</details>
|
|
105
|
-
{{/each}}
|
|
106
|
-
{{/if}}
|
|
107
|
-
</div>
|
|
26
|
+
{{> project}}
|
|
108
27
|
</aside>
|
|
109
28
|
<section class="column is-three-fifths">
|
|
110
29
|
{{!-- Overall summary --}}
|
|
111
30
|
<div id="summary">
|
|
112
|
-
<div class="columns is-multiline">
|
|
31
|
+
<div class="columns is-multiline has-text-centered">
|
|
113
32
|
{{> summaryCard bg="primary" status="all" statusHeader="All Tests" statusCount=totalCount}}
|
|
114
33
|
{{> summaryCard bg="success" status="passed" statusHeader="Passed" statusCount=passCount}}
|
|
115
34
|
{{> summaryCard bg="danger" status="failed" statusHeader="Failed" statusCount=failCount}}
|
|
116
|
-
</div>
|
|
117
|
-
<div class="columns is-multiline">
|
|
118
35
|
{{> summaryCard bg="info" status="skipped" statusHeader="Skipped" statusCount=skipCount}}
|
|
119
36
|
{{> summaryCard bg="warning" status="flaky" statusHeader="Flaky" statusCount=flakyCount}}
|
|
120
37
|
{{> summaryCard bg="retry" status="retry" statusHeader="Retry" statusCount=retryCount}}
|
|
@@ -134,22 +51,9 @@
|
|
|
134
51
|
</div>
|
|
135
52
|
</main>
|
|
136
53
|
</section>
|
|
137
|
-
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
138
54
|
<script>
|
|
139
|
-
function escapeHtml(unsafe) {
|
|
140
|
-
return unsafe.replace(/[&<"']/g, function (match) {
|
|
141
|
-
const escapeMap = {
|
|
142
|
-
'&': '&',
|
|
143
|
-
'<': '<',
|
|
144
|
-
'>': '>',
|
|
145
|
-
'"': '"',
|
|
146
|
-
"'": '''
|
|
147
|
-
};
|
|
148
|
-
return escapeMap[match];
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
55
|
document.addEventListener('DOMContentLoaded', () => {
|
|
152
|
-
|
|
56
|
+
let testData = {{{ json results }}};
|
|
153
57
|
const testDetails = document.getElementById('testDetails');
|
|
154
58
|
const summary = document.getElementById('summary');
|
|
155
59
|
const backButton = document.querySelector('button#back-to-summary');
|
|
@@ -158,21 +62,21 @@
|
|
|
158
62
|
const preferredTheme = themeButton.getAttribute("data-theme-status");
|
|
159
63
|
const themeIcon = document.getElementById("theme-icon");
|
|
160
64
|
const htmlElement = document.documentElement;
|
|
161
|
-
|
|
65
|
+
|
|
162
66
|
if (preferredTheme === 'dark') {
|
|
163
67
|
htmlElement.setAttribute('data-theme', 'dark');
|
|
164
|
-
themeIcon.classList='';
|
|
165
|
-
themeIcon.classList.add("fa","fa-moon");
|
|
68
|
+
themeIcon.classList = '';
|
|
69
|
+
themeIcon.classList.add("fa", "fa-moon");
|
|
166
70
|
} else if (preferredTheme === 'light') {
|
|
167
71
|
htmlElement.setAttribute('data-theme', 'light');
|
|
168
|
-
themeIcon.classList='';
|
|
169
|
-
themeIcon.classList.add("fa","fa-sun");
|
|
72
|
+
themeIcon.classList = '';
|
|
73
|
+
themeIcon.classList.add("fa", "fa-sun");
|
|
170
74
|
} else {
|
|
171
|
-
if(window.matchMedia('(prefers-color-scheme: light)').matches){
|
|
172
|
-
themeIcon.classList.add("fa","fa-sun");
|
|
75
|
+
if (window.matchMedia('(prefers-color-scheme: light)').matches) {
|
|
76
|
+
themeIcon.classList.add("fa", "fa-sun");
|
|
173
77
|
}
|
|
174
|
-
else{
|
|
175
|
-
themeIcon.classList.add("fa","fa-moon");
|
|
78
|
+
else {
|
|
79
|
+
themeIcon.classList.add("fa", "fa-moon");
|
|
176
80
|
}
|
|
177
81
|
}
|
|
178
82
|
themeButton.addEventListener('click', () => {
|
|
@@ -180,11 +84,11 @@
|
|
|
180
84
|
const newTheme = currentTheme === 'light' ? 'dark' : 'light';
|
|
181
85
|
htmlElement.setAttribute('data-theme', newTheme);
|
|
182
86
|
if (newTheme === 'dark') {
|
|
183
|
-
themeIcon.classList='';
|
|
184
|
-
themeIcon.classList.add("fa","fa-moon");
|
|
87
|
+
themeIcon.classList = '';
|
|
88
|
+
themeIcon.classList.add("fa", "fa-moon");
|
|
185
89
|
} else {
|
|
186
|
-
themeIcon.classList='';
|
|
187
|
-
themeIcon.classList.add("fa","fa-sun");
|
|
90
|
+
themeIcon.classList = '';
|
|
91
|
+
themeIcon.classList.add("fa", "fa-sun");
|
|
188
92
|
}
|
|
189
93
|
});
|
|
190
94
|
|
|
@@ -245,7 +149,7 @@
|
|
|
245
149
|
}
|
|
246
150
|
|
|
247
151
|
testDetails.innerHTML = `
|
|
248
|
-
<button class="button
|
|
152
|
+
<button class="button is-info is-light mb-4" id="back-to-summary" style="display: block"
|
|
249
153
|
onclick="showSummary()">
|
|
250
154
|
<span class="icon"><i class="fa-solid fa-chevron-left" style="color: #63E6BE;"></i></span>
|
|
251
155
|
<span>Back to Summary</span></button>
|
|
@@ -323,12 +227,27 @@
|
|
|
323
227
|
</ul>
|
|
324
228
|
</nav>
|
|
325
229
|
` : ''}
|
|
230
|
+
</div>
|
|
326
231
|
</div>
|
|
327
|
-
|
|
328
|
-
|
|
232
|
+
${test.annotations && test.annotations.length ? `
|
|
233
|
+
<article class="message">
|
|
234
|
+
<div class="message-body">
|
|
235
|
+
${test.annotations
|
|
236
|
+
.filter(annotation => annotation !== null && annotation !== undefined)
|
|
237
|
+
.map(annotation => `
|
|
238
|
+
<div>
|
|
239
|
+
${annotation?.type ? `<strong class="has-text-link">Type: </strong><span>${annotation?.type}</span>` : ''}
|
|
240
|
+
<br>
|
|
241
|
+
${annotation?.description ? `<strong class="has-text-link">Description: </strong><span>${annotation?.description}</span>` : ''}
|
|
242
|
+
</div>
|
|
243
|
+
<br>
|
|
244
|
+
`).join('')}
|
|
245
|
+
</div>
|
|
246
|
+
</article>
|
|
247
|
+
` : ``}
|
|
329
248
|
<div class="content">
|
|
330
249
|
${test.steps.length > 0 ? `
|
|
331
|
-
<details id="stepopen">
|
|
250
|
+
<details id="stepopen" open>
|
|
332
251
|
<summary><h4 class="title is-4">Steps</h4></summary>
|
|
333
252
|
<span id="stepDetails" class="content"></span>
|
|
334
253
|
</details>
|
|
@@ -338,32 +257,30 @@
|
|
|
338
257
|
${test.errors.length ? `
|
|
339
258
|
<h4 class="title is-4">Errors</h4>
|
|
340
259
|
<div class="content">
|
|
341
|
-
<pre><code class="data-lang=js">${
|
|
260
|
+
<pre><code class="data-lang=js">${test.errors.join('\n')}</code></pre>
|
|
342
261
|
</div>` : ''}
|
|
343
262
|
</div>
|
|
344
263
|
<div>
|
|
345
264
|
${test.logs ? `
|
|
346
265
|
<h4 class="title is-4">Logs</h4>
|
|
347
266
|
<div class="box">
|
|
348
|
-
<pre>${
|
|
267
|
+
<pre>${test.logs}</pre>
|
|
349
268
|
</div>` : ''}
|
|
350
269
|
</div>
|
|
351
270
|
`;
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
271
|
+
if(test.screenshots.length > 0){
|
|
272
|
+
document.querySelector('.pagination-previous').addEventListener('click', () => changeScreenshot(-1));
|
|
273
|
+
document.querySelector('.pagination-next').addEventListener('click', () => changeScreenshot(1));
|
|
274
|
+
document.querySelectorAll('.pagination-link').forEach((link, index) => {
|
|
275
|
+
link.addEventListener('click', () => gotoScreenshot(index));
|
|
276
|
+
});
|
|
277
|
+
}
|
|
357
278
|
const stepDetailsDiv = document.getElementById('stepDetails');
|
|
358
279
|
if (stepDetailsDiv) {
|
|
359
280
|
const stepsList = attachSteps(test);
|
|
360
281
|
const detail = document.getElementById("stepopen");
|
|
361
|
-
if (test.errors.length > 0) {
|
|
362
|
-
detail.setAttribute("open", "");
|
|
363
|
-
}
|
|
364
282
|
stepDetailsDiv.appendChild(stepsList);
|
|
365
283
|
}
|
|
366
|
-
|
|
367
284
|
}
|
|
368
285
|
|
|
369
286
|
function attachSteps(test) {
|
|
@@ -377,7 +294,7 @@
|
|
|
377
294
|
const pre = document.createElement('pre');
|
|
378
295
|
const code = document.createElement('code');
|
|
379
296
|
const locationText = step.location ? `\n\nat: ${step.location}` : '';
|
|
380
|
-
code.
|
|
297
|
+
code.innerHTML = `${step.snippet}${locationText}`;
|
|
381
298
|
code.setAttribute('data-lang', 'js');
|
|
382
299
|
pre.appendChild(code);
|
|
383
300
|
li.appendChild(pre);
|
|
@@ -555,28 +472,8 @@
|
|
|
555
472
|
|
|
556
473
|
searchInput.addEventListener('input', debouncedSearch);
|
|
557
474
|
|
|
558
|
-
const ctx = document.getElementById('testChart');
|
|
559
|
-
new Chart(ctx, {
|
|
560
|
-
type: 'doughnut',
|
|
561
|
-
data: {
|
|
562
|
-
labels: ['Passed', 'Failed', 'Skipped', 'Flaky'],
|
|
563
|
-
datasets: [{
|
|
564
|
-
data: [{{ passCount }}, {{ failCount }}, {{ skipCount }}, {{ flakyCount }}],
|
|
565
|
-
backgroundColor: ['#28a745', '#ff6685', '#66d1ff', '#ffb70f']
|
|
566
|
-
}]
|
|
567
|
-
},
|
|
568
|
-
options: {
|
|
569
|
-
responsive: true,
|
|
570
|
-
maintainAspectRatio: false,
|
|
571
|
-
plugins: {
|
|
572
|
-
legend: {
|
|
573
|
-
display: false
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
});
|
|
578
475
|
attachEventListeners();
|
|
579
|
-
|
|
476
|
+
});
|
|
580
477
|
</script>
|
|
581
478
|
</body>
|
|
582
479
|
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<div class="content sidebar">
|
|
2
|
+
{{#if showProject}}
|
|
3
|
+
{{#each groupedResults}}
|
|
4
|
+
<details class="box">
|
|
5
|
+
<summary class="is-size-5 has-icon-right">
|
|
6
|
+
<div class="icon-text">
|
|
7
|
+
<span class="icon has-text-info">
|
|
8
|
+
<svg class="image is-16x16" height="512" viewBox="0 0 32 32" width="512"
|
|
9
|
+
xmlns="http://www.w3.org/2000/svg">
|
|
10
|
+
<g data-name="Layer 2">
|
|
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>
|
|
18
|
+
</svg>
|
|
19
|
+
</span>
|
|
20
|
+
<span>{{@key}}</span>
|
|
21
|
+
</div>
|
|
22
|
+
</summary>
|
|
23
|
+
<ul class="mt-4 mb-4">
|
|
24
|
+
{{#each this}}
|
|
25
|
+
<details class="mt-2 mb-2">
|
|
26
|
+
<summary class="is-size-5 is-capitalized">
|
|
27
|
+
<div class="icon-text">
|
|
28
|
+
<span class="icon has-text-info">
|
|
29
|
+
<svg class="image is-16x16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
|
30
|
+
<path
|
|
31
|
+
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"
|
|
32
|
+
fill="#e6e9ed" />
|
|
33
|
+
<path
|
|
34
|
+
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"
|
|
35
|
+
fill="#ccd1d9" />
|
|
36
|
+
<path
|
|
37
|
+
d="M181.344 192v245.327C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V192H181.344z"
|
|
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>
|
|
43
|
+
</svg>
|
|
44
|
+
</span>
|
|
45
|
+
<span>{{@key}}</span>
|
|
46
|
+
</div>
|
|
47
|
+
</summary>
|
|
48
|
+
<ul class="mt-4 mb-4">
|
|
49
|
+
{{#each this}}
|
|
50
|
+
<details class="mt-2 mb-2">
|
|
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>
|
|
63
|
+
{{/each}}
|
|
64
|
+
</ul>
|
|
65
|
+
</details>
|
|
66
|
+
{{/each}}
|
|
67
|
+
</ul>
|
|
68
|
+
</details>
|
|
69
|
+
{{/each}}
|
|
70
|
+
{{else}}
|
|
71
|
+
{{#each groupedResults}}
|
|
72
|
+
<details class="box">
|
|
73
|
+
<summary class="is-size-5 has-icon-right">
|
|
74
|
+
<div class="icon-text">
|
|
75
|
+
<span class="icon has-text-info">
|
|
76
|
+
<svg class="image is-16x16" height="512" viewBox="0 0 32 32" width="512"
|
|
77
|
+
xmlns="http://www.w3.org/2000/svg">
|
|
78
|
+
<g data-name="Layer 2">
|
|
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>
|
|
86
|
+
</svg>
|
|
87
|
+
</span>
|
|
88
|
+
<span>{{@key}}</span>
|
|
89
|
+
</div>
|
|
90
|
+
</summary>
|
|
91
|
+
<ul class="mt-4 mb-4">
|
|
92
|
+
{{#each this}}
|
|
93
|
+
<details class="mt-2 mb-2">
|
|
94
|
+
<summary class="is-size-5 is-capitalized">
|
|
95
|
+
<div class="icon-text">
|
|
96
|
+
<span class="icon has-text-info">
|
|
97
|
+
<svg class="image is-16x16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
|
98
|
+
<path
|
|
99
|
+
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"
|
|
100
|
+
fill="#e6e9ed" />
|
|
101
|
+
<path
|
|
102
|
+
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"
|
|
103
|
+
fill="#ccd1d9" />
|
|
104
|
+
<path
|
|
105
|
+
d="M181.344 192v245.327C181.344 478.562 214.781 512 256 512c41.25 0 74.672-33.438 74.672-74.673V192H181.344z"
|
|
106
|
+
fill="#a0d468" />
|
|
107
|
+
<g fill="#434a54">
|
|
108
|
+
<path
|
|
109
|
+
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" />
|
|
110
|
+
</g>
|
|
111
|
+
</svg>
|
|
112
|
+
</span>
|
|
113
|
+
<span>{{@key}}</span>
|
|
114
|
+
</div>
|
|
115
|
+
</summary>
|
|
116
|
+
<ul class="mt-4 mb-4">
|
|
117
|
+
{{#each this}}
|
|
118
|
+
<li class="media {{#if (eq status 'skipped')}}is-hidden{{/if}}" data-suite-name="{{suite}}"
|
|
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>
|
|
126
|
+
</details>
|
|
127
|
+
{{/each}}
|
|
128
|
+
</ul>
|
|
129
|
+
</details>
|
|
130
|
+
{{/each}}
|
|
131
|
+
{{/if}}
|
|
132
|
+
</div>
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
{{#if (gr statusCount) }}
|
|
2
|
-
<div class="column is-one-
|
|
3
|
-
<div class="
|
|
4
|
-
<
|
|
5
|
-
|
|
6
|
-
</header>
|
|
7
|
-
<div class="card-content">
|
|
8
|
-
<div class="content">
|
|
9
|
-
<p class="has-text-centered has-text-white">{{statusCount}}</p>
|
|
10
|
-
</div>
|
|
11
|
-
</div>
|
|
2
|
+
<div class="column is-one-sixth">
|
|
3
|
+
<div class="box has-background-{{bg}} filter" data-status="{{status}}">
|
|
4
|
+
<p class="has-text-white is-size-6">{{statusHeader}}</p>
|
|
5
|
+
<p class="has-text-white is-size-4">{{statusCount}}</p>
|
|
12
6
|
</div>
|
|
13
7
|
</div>
|
|
14
|
-
{{/if}}
|
|
8
|
+
{{/if}}
|
package/dist/views/testPanel.hbs
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
{{#each projects}}
|
|
18
18
|
<div class="dropdown-item">
|
|
19
19
|
<label class="checkbox is-capitalized">
|
|
20
|
-
<input type="checkbox" data-filter-type="project" value="{{this}}"> {{this}}
|
|
20
|
+
<input name="{{this}}" type="checkbox" data-filter-type="project" value="{{this}}"> {{this}}
|
|
21
21
|
</label>
|
|
22
22
|
</div>
|
|
23
23
|
{{/each}}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
{{#each allTags}}
|
|
26
26
|
<div class="dropdown-item">
|
|
27
27
|
<label class="checkbox">
|
|
28
|
-
<input type="checkbox" data-filter-type="test-tags" value="{{this}}"> {{this}}
|
|
28
|
+
<input name="{{this}}" type="checkbox" data-filter-type="test-tags" value="{{this}}"> {{this}}
|
|
29
29
|
</label>
|
|
30
30
|
</div>
|
|
31
31
|
{{/each}}
|