@voiden/runner 0.1.0-beta.5 → 0.1.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +117 -95
- package/dist/index.js +59 -34
- package/dist/index.js.map +1 -1
- package/dist/report/mail.d.ts +1 -0
- package/dist/report/mail.d.ts.map +1 -1
- package/dist/report/mail.js +199 -35
- package/dist/report/mail.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,6 @@ GitHub Actions, GitLab CI, Docker, and more.
|
|
|
15
15
|
- [Quick start](#quick-start)
|
|
16
16
|
- [Commands](#commands)
|
|
17
17
|
- [run](#run)
|
|
18
|
-
- [env](#env)
|
|
19
18
|
- [session](#session)
|
|
20
19
|
- [report](#report)
|
|
21
20
|
- [plugin](#plugin)
|
|
@@ -29,7 +28,7 @@ GitHub Actions, GitLab CI, Docker, and more.
|
|
|
29
28
|
- [voiden-advanced-auth](#voiden-advanced-auth)
|
|
30
29
|
- [voiden-graphql](#voiden-graphql)
|
|
31
30
|
- [Output formats](#output-formats)
|
|
32
|
-
- [Reports — CSV and email](#reports--csv-and-email)
|
|
31
|
+
- [Reports — CSV, JSON, and email](#reports--csv-json-and-email)
|
|
33
32
|
- [Exit codes](#exit-codes)
|
|
34
33
|
- [CI/CD](#cicd)
|
|
35
34
|
- [Supported protocols](#supported-protocols)
|
|
@@ -61,11 +60,16 @@ voiden-runner run ./requests/ --env .env.staging
|
|
|
61
60
|
# Stop on first failure (CI-friendly)
|
|
62
61
|
voiden-runner run ./tests/ --env .env.ci --stop-on-failure
|
|
63
62
|
|
|
64
|
-
#
|
|
65
|
-
|
|
63
|
+
# Send an email report (no attachment required — HTML includes all details)
|
|
64
|
+
voiden-runner run ./tests/ \
|
|
65
|
+
--env .env.staging \
|
|
66
|
+
--mail-to team@company.com
|
|
67
|
+
|
|
68
|
+
# Send with both CSV and JSON attached
|
|
66
69
|
voiden-runner run ./tests/ \
|
|
67
70
|
--env .env.staging \
|
|
68
71
|
--csv ./results/report.csv \
|
|
72
|
+
--output-json ./results/report.json \
|
|
69
73
|
--mail-to team@company.com
|
|
70
74
|
```
|
|
71
75
|
|
|
@@ -93,12 +97,12 @@ voiden-runner run <paths...> [options]
|
|
|
93
97
|
| `--show-req` | Print sent request headers and body for each request |
|
|
94
98
|
| `--show-res` | Print response headers and body for each request |
|
|
95
99
|
| `--verbose` | Print script logs, plugin messages, and section dividers |
|
|
96
|
-
| `--json` |
|
|
97
|
-
| `--no-session` | Completely stateless run
|
|
98
|
-
| `--output-json <file>` | Write the full result object to a JSON file
|
|
100
|
+
| `--json` | Output results as JSON to stdout instead of the normal colored output — useful for piping to other tools in CI |
|
|
101
|
+
| `--no-session` | Completely stateless run — no variables are loaded from disk, shared between files, or saved |
|
|
102
|
+
| `--output-json <file>` | Write the full result object to a JSON file (also attached to email if `--mail` is used) |
|
|
99
103
|
| `--csv <path>` | Export full report to a CSV file. Use `.` for the current directory (auto-generates filename) |
|
|
100
|
-
| `--mail` | Send HTML
|
|
101
|
-
| `--mail-to <address>` | Send HTML
|
|
104
|
+
| `--mail` | Send HTML report to the address in `VOIDEN_MAIL_TO` env |
|
|
105
|
+
| `--mail-to <address>` | Send HTML report to this email address |
|
|
102
106
|
| `--mail-from <address>` | Sender address (default: `VOIDEN_MAIL_FROM` env) |
|
|
103
107
|
| `--mail-subject <text>` | Email subject (default: `VOIDEN_MAIL_SUBJECT` env or auto-summary) |
|
|
104
108
|
| `--smtp-host <host>` | SMTP server host (default: `VOIDEN_SMTP_HOST` env) |
|
|
@@ -107,7 +111,7 @@ voiden-runner run <paths...> [options]
|
|
|
107
111
|
| `--smtp-user <user>` | SMTP username (default: `VOIDEN_SMTP_USER` env) |
|
|
108
112
|
| `--smtp-pass <pass>` | SMTP password (default: `VOIDEN_SMTP_PASS` env) |
|
|
109
113
|
|
|
110
|
-
###
|
|
114
|
+
### `session`
|
|
111
115
|
|
|
112
116
|
```
|
|
113
117
|
voiden-runner session status
|
|
@@ -122,15 +126,26 @@ state (results and runtime variables).
|
|
|
122
126
|
### `report`
|
|
123
127
|
|
|
124
128
|
```
|
|
125
|
-
voiden-runner report generate [
|
|
129
|
+
voiden-runner report generate [options]
|
|
126
130
|
voiden-runner report clear
|
|
127
131
|
```
|
|
128
132
|
|
|
129
|
-
`generate` (alias `gen`) creates a combined report from all accumulated results
|
|
130
|
-
in the current session. `clear` wipes the results history only (runtime
|
|
133
|
+
`generate` (alias `gen`) creates a combined report from all accumulated results
|
|
134
|
+
in the current session. `clear` wipes the results history only (runtime
|
|
131
135
|
variables are preserved).
|
|
132
136
|
|
|
133
|
-
|
|
137
|
+
**`report generate` options**
|
|
138
|
+
|
|
139
|
+
| Flag | Description |
|
|
140
|
+
|---|---|
|
|
141
|
+
| `-e, --env <path>` | `.env` file for SMTP configuration |
|
|
142
|
+
| `--csv <path>` | Export session results to a CSV file |
|
|
143
|
+
| `--output-json <file>` | Write session results to a JSON file (also attached to email if `--mail` is used) |
|
|
144
|
+
| `--mail` | Send HTML report to `VOIDEN_MAIL_TO` (attaches `--csv` and/or `--output-json` if provided) |
|
|
145
|
+
| `--mail-to <address>` | Send HTML report to this address |
|
|
146
|
+
| `--mail-from <address>` | Sender address |
|
|
147
|
+
| `--mail-subject <text>` | Email subject line |
|
|
148
|
+
| `--smtp-*` | All SMTP flags listed above |
|
|
134
149
|
|
|
135
150
|
### `plugin`
|
|
136
151
|
|
|
@@ -270,8 +285,8 @@ voiden.variables.set('token', voiden.response.body.access_token)
|
|
|
270
285
|
By default, runtime variables are **persisted to disk** at `~/.voiden/.process.env.json`.
|
|
271
286
|
This allows you to share state across multiple `voiden-runner` commands.
|
|
272
287
|
|
|
273
|
-
- **To
|
|
274
|
-
- **To clear variables**,
|
|
288
|
+
- **To run completely stateless**, use the `--no-session` flag — no variables are loaded from disk, no variables flow between files, and nothing is saved after the run.
|
|
289
|
+
- **To clear variables**, use `voiden-runner session clear`.
|
|
275
290
|
|
|
276
291
|
The `.void` files themselves are never modified. This ensures that your source
|
|
277
292
|
files remain clean while still allowing for stateful execution chains.
|
|
@@ -306,11 +321,11 @@ in `get-profile.void`.
|
|
|
306
321
|
## Sessions & Persistence
|
|
307
322
|
|
|
308
323
|
By default, `voiden-runner` operates in a **stateful session**. This means it
|
|
309
|
-
persists captured runtime variables and run results across multiple command
|
|
324
|
+
persists captured runtime variables and run results across multiple command
|
|
310
325
|
invocations until you explicitly clear them.
|
|
311
326
|
|
|
312
327
|
### 1. Persistent State
|
|
313
|
-
Captured variables stay active until you clear the session. This is ideal for
|
|
328
|
+
Captured variables stay active until you clear the session. This is ideal for
|
|
314
329
|
multi-step workflows:
|
|
315
330
|
|
|
316
331
|
```bash
|
|
@@ -329,20 +344,37 @@ voiden-runner run users.void
|
|
|
329
344
|
voiden-runner run posts.void
|
|
330
345
|
|
|
331
346
|
# Generate a combined CSV report for all 3 runs
|
|
332
|
-
voiden-runner report --csv ./session-report.csv
|
|
347
|
+
voiden-runner report generate --csv ./session-report.csv
|
|
333
348
|
|
|
334
349
|
# Email the combined report
|
|
335
|
-
voiden-runner report --mail-to qa@company.com
|
|
350
|
+
voiden-runner report generate --mail-to qa@company.com
|
|
351
|
+
|
|
352
|
+
# Email with both CSV and JSON attached
|
|
353
|
+
voiden-runner report generate \
|
|
354
|
+
--csv ./session-report.csv \
|
|
355
|
+
--output-json ./session-report.json \
|
|
356
|
+
--mail-to qa@company.com
|
|
336
357
|
```
|
|
337
358
|
|
|
338
|
-
###
|
|
359
|
+
### 3. Stateless runs
|
|
339
360
|
|
|
340
|
-
Use
|
|
361
|
+
Use `--no-session` to run completely isolated — no state is loaded from disk,
|
|
362
|
+
no variables flow between files within the run, and nothing is saved after:
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
# Each file is fully isolated — no vars from disk, no cross-file var sharing
|
|
366
|
+
voiden-runner run ./tests/ --no-session
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### Managing the Session
|
|
341
370
|
|
|
342
371
|
```bash
|
|
343
372
|
# See how many variables and results are stored
|
|
344
373
|
voiden-runner session status
|
|
345
374
|
|
|
375
|
+
# List all persisted runtime variables and their values
|
|
376
|
+
voiden-runner session vars
|
|
377
|
+
|
|
346
378
|
# Wipe everything (results and runtime variables)
|
|
347
379
|
voiden-runner session clear
|
|
348
380
|
```
|
|
@@ -497,6 +529,9 @@ POST (`Content-Type: application/json`, body `{query, variables}`).
|
|
|
497
529
|
|
|
498
530
|
### `--json`
|
|
499
531
|
|
|
532
|
+
Outputs results as JSON to stdout instead of the normal colored output. The terminal
|
|
533
|
+
output is completely replaced by the JSON — useful for piping directly to another tool.
|
|
534
|
+
|
|
500
535
|
```json
|
|
501
536
|
{
|
|
502
537
|
"summary": { "total": 3, "passed": 2, "failed": 1, "totalDurationMs": 559, "activePlugins": ["..."] },
|
|
@@ -515,9 +550,35 @@ POST (`Content-Type: application/json`, body `{query, variables}`).
|
|
|
515
550
|
}
|
|
516
551
|
```
|
|
517
552
|
|
|
553
|
+
### `--output-json <file>`
|
|
554
|
+
|
|
555
|
+
Writes the same JSON structure to a file. Unlike `--json`, normal terminal output
|
|
556
|
+
is preserved. If `--mail` is also used, the JSON file is attached to the email.
|
|
557
|
+
|
|
558
|
+
```bash
|
|
559
|
+
# Save results to file — terminal output still shows normally
|
|
560
|
+
voiden-runner run auth.void --output-json result.json
|
|
561
|
+
|
|
562
|
+
# Combine: normal output + JSON file + email with JSON attached
|
|
563
|
+
voiden-runner run ./tests/ \
|
|
564
|
+
--output-json results.json \
|
|
565
|
+
--mail-to qa@company.com
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
### `--json` vs `--output-json`
|
|
569
|
+
|
|
570
|
+
| | `--json` | `--output-json <file>` |
|
|
571
|
+
|---|---|---|
|
|
572
|
+
| Output destination | stdout | file on disk |
|
|
573
|
+
| Terminal output | replaced by JSON | preserved (normal colored output) |
|
|
574
|
+
| Email attachment | — | yes, if `--mail` is also used |
|
|
575
|
+
| Use case | piping to other tools | saving to disk / attaching to email |
|
|
576
|
+
|
|
577
|
+
Both flags can be combined — the JSON goes to stdout AND to a file simultaneously.
|
|
578
|
+
|
|
518
579
|
---
|
|
519
580
|
|
|
520
|
-
## Reports — CSV and email
|
|
581
|
+
## Reports — CSV, JSON, and email
|
|
521
582
|
|
|
522
583
|
### CSV
|
|
523
584
|
|
|
@@ -537,27 +598,50 @@ CSV columns: `File`, `Protocol`, `Method`, `URL`, `Success`, `Status`,
|
|
|
537
598
|
### Email
|
|
538
599
|
|
|
539
600
|
```bash
|
|
601
|
+
# Send HTML report (no attachment required)
|
|
540
602
|
voiden-runner run ./tests/ \
|
|
541
603
|
--env .env.ci \
|
|
542
604
|
--mail-to qa@company.com
|
|
605
|
+
|
|
606
|
+
# Attach a CSV
|
|
607
|
+
voiden-runner run ./tests/ \
|
|
608
|
+
--env .env.ci \
|
|
609
|
+
--csv ./report.csv \
|
|
610
|
+
--mail-to qa@company.com
|
|
611
|
+
|
|
612
|
+
# Attach both CSV and JSON
|
|
613
|
+
voiden-runner run ./tests/ \
|
|
614
|
+
--env .env.ci \
|
|
615
|
+
--csv ./report.csv \
|
|
616
|
+
--output-json ./report.json \
|
|
617
|
+
--mail-to qa@company.com
|
|
543
618
|
```
|
|
544
619
|
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
620
|
+
The HTML email is styled using the Voiden dark theme and includes:
|
|
621
|
+
|
|
622
|
+
- **Summary stats** — passed, failed, total, and total duration at a glance
|
|
623
|
+
- **Failed section** — all failed requests listed first, each with a red indicator
|
|
624
|
+
- **Passed section** — all passed requests listed after
|
|
625
|
+
- **Per-request cards** — each card shows method, URL, status code, and duration
|
|
626
|
+
- **▸ Request & Response dropdown** — expand any card to see the full request headers/body and response headers/body
|
|
627
|
+
- **Assertion results** — pass/fail per assertion shown inline on each card
|
|
628
|
+
- **Attachments** — CSV and/or JSON attached when `--csv` or `--output-json` is provided
|
|
548
629
|
|
|
549
630
|
**SMTP Configuration**
|
|
550
631
|
|
|
551
|
-
|
|
632
|
+
SMTP and mail settings are read from your `.env` file (passed via `--env`) or
|
|
552
633
|
the system environment.
|
|
553
634
|
|
|
554
635
|
| Variable | Description |
|
|
555
636
|
|---|---|
|
|
556
|
-
| `
|
|
557
|
-
| `
|
|
558
|
-
| `
|
|
559
|
-
| `
|
|
560
|
-
| `
|
|
637
|
+
| `VOIDEN_MAIL_TO` | Default recipient address (used when `--mail` is passed without `--mail-to`) |
|
|
638
|
+
| `VOIDEN_MAIL_FROM` | Default sender address |
|
|
639
|
+
| `VOIDEN_MAIL_SUBJECT` | Default email subject |
|
|
640
|
+
| `VOIDEN_SMTP_HOST` | **Required** for email. SMTP server hostname (e.g. `smtp.gmail.com`) |
|
|
641
|
+
| `VOIDEN_SMTP_PORT` | SMTP port. Defaults to `587` (or `465` if secure) |
|
|
642
|
+
| `VOIDEN_SMTP_SECURE` | Set to `true` to use TLS/SSL (port 465) |
|
|
643
|
+
| `VOIDEN_SMTP_USER` | SMTP login username |
|
|
644
|
+
| `VOIDEN_SMTP_PASS` | SMTP login password |
|
|
561
645
|
|
|
562
646
|
---
|
|
563
647
|
|
|
@@ -580,68 +664,6 @@ This exit code works universally — bash (`$?`), PowerShell (`$LASTEXITCODE`),
|
|
|
580
664
|
`set -e`, `&&`/`||` chains, GitHub Actions, GitLab CI, Jenkins, CircleCI, and
|
|
581
665
|
any other CI/CD system.
|
|
582
666
|
|
|
583
|
-
## Passing results to other CLI commands
|
|
584
|
-
|
|
585
|
-
### `--output-json <file>`
|
|
586
|
-
|
|
587
|
-
Writes the full result — the whole response object and array — to a JSON file.
|
|
588
|
-
Normal terminal output still shows. The next CLI, script, or tool reads the file
|
|
589
|
-
and gets everything: status, headers, body, assertions, duration.
|
|
590
|
-
|
|
591
|
-
```bash
|
|
592
|
-
# Write results to a file, then pass the whole object to the next tool
|
|
593
|
-
voiden-runner run auth.void --output-json result.json
|
|
594
|
-
my-deploy-cli --data result.json
|
|
595
|
-
|
|
596
|
-
# Chain multiple runs — each appends its own file
|
|
597
|
-
voiden-runner run login.void --output-json login.json
|
|
598
|
-
voiden-runner run users.void --output-json users.json
|
|
599
|
-
my-report-tool login.json users.json
|
|
600
|
-
```
|
|
601
|
-
|
|
602
|
-
The JSON structure written to the file is the same as `--json` stdout output:
|
|
603
|
-
|
|
604
|
-
```json
|
|
605
|
-
{
|
|
606
|
-
"summary": { "total": 1, "passed": 1, "failed": 0, "totalDurationMs": 342 },
|
|
607
|
-
"requests": [
|
|
608
|
-
{
|
|
609
|
-
"file": "/path/to/auth.void",
|
|
610
|
-
"protocol": "rest",
|
|
611
|
-
"method": "POST",
|
|
612
|
-
"url": "https://api.example.com/auth",
|
|
613
|
-
"success": true,
|
|
614
|
-
"status": 200,
|
|
615
|
-
"durationMs": 342,
|
|
616
|
-
"body": "{\"access_token\":\"sk-abc\",\"user\":{\"id\":42}}",
|
|
617
|
-
"requestHeaders": { "Content-Type": "application/json" },
|
|
618
|
-
"responseHeaders": { "content-type": "application/json" }
|
|
619
|
-
}
|
|
620
|
-
]
|
|
621
|
-
}
|
|
622
|
-
```
|
|
623
|
-
|
|
624
|
-
### `--json` stdout pipe
|
|
625
|
-
|
|
626
|
-
Use `--json` to pipe the same structure directly to another command:
|
|
627
|
-
|
|
628
|
-
```bash
|
|
629
|
-
voiden-runner run auth.void --json | jq .
|
|
630
|
-
voiden-runner run tests/ --json | my-cli --stdin
|
|
631
|
-
voiden-runner run tests/ --json > results.json && python3 analyse.py results.json
|
|
632
|
-
```
|
|
633
|
-
|
|
634
|
-
### Runtime variable chaining
|
|
635
|
-
|
|
636
|
-
Variables captured via `{{$res.body.xxx}}` blocks persist to
|
|
637
|
-
`~/.voiden/.process.env.json` between separate `voiden-runner run` calls —
|
|
638
|
-
no piping or files needed:
|
|
639
|
-
|
|
640
|
-
```bash
|
|
641
|
-
voiden-runner run login.void # captures token via runtime-variables block
|
|
642
|
-
voiden-runner run users.void # uses {{process.token}} automatically
|
|
643
|
-
```
|
|
644
|
-
|
|
645
667
|
---
|
|
646
668
|
|
|
647
669
|
## CI/CD
|
|
@@ -692,7 +714,7 @@ jobs:
|
|
|
692
714
|
voiden-runner run ./tests/ \
|
|
693
715
|
--env .env.ci \
|
|
694
716
|
--stop-on-failure \
|
|
695
|
-
--json
|
|
717
|
+
--output-json results.json
|
|
696
718
|
|
|
697
719
|
- uses: actions/upload-artifact@v4
|
|
698
720
|
if: always()
|
package/dist/index.js
CHANGED
|
@@ -308,7 +308,7 @@ program
|
|
|
308
308
|
.option('--fail-on-error', 'Exit with code 1 if any request fails (runs all files first)')
|
|
309
309
|
.option('--verbose', 'Print plugin and script logs')
|
|
310
310
|
.option('--json', 'Output results as JSON (suppresses normal output — useful for CI pipelines)')
|
|
311
|
-
.option('--no-session', 'Completely stateless run
|
|
311
|
+
.option('--no-session', 'Completely stateless run — no variables are loaded from disk, shared between files, or saved')
|
|
312
312
|
.option('--output-json <file>', 'Write the full result object to a JSON file — pass to the next CLI, script, or tool')
|
|
313
313
|
.option('--csv <path>', 'Export full report (request + response headers, bodies, assertions) to a CSV file')
|
|
314
314
|
.option('--mail', 'Send HTML report to address specified in VOIDEN_MAIL_TO env')
|
|
@@ -383,10 +383,6 @@ program
|
|
|
383
383
|
console.error(chalk.red(' ✗ Mail error: no recipient found. Please provide --mail-to or set VOIDEN_MAIL_TO.'));
|
|
384
384
|
process.exit(1);
|
|
385
385
|
}
|
|
386
|
-
if (!opts.csv) {
|
|
387
|
-
console.error(chalk.red(' ✗ Mail error: no CSV generated. Mail requires --csv flag.'));
|
|
388
|
-
process.exit(1);
|
|
389
|
-
}
|
|
390
386
|
if (!smtpHost) {
|
|
391
387
|
console.error(chalk.red(' ✗ Mail keys are missing. Please provide SMTP configuration (VOIDEN_SMTP_HOST).'));
|
|
392
388
|
process.exit(1);
|
|
@@ -401,7 +397,7 @@ program
|
|
|
401
397
|
const runtimeVars = {};
|
|
402
398
|
// Load persisted runtime variables if not disabled
|
|
403
399
|
const VARS_PATH = join(STORE_DIR, '.process.env.json');
|
|
404
|
-
if (
|
|
400
|
+
if (opts.session && existsSync(VARS_PATH)) {
|
|
405
401
|
try {
|
|
406
402
|
const data = JSON.parse(readFileSync(VARS_PATH, 'utf-8'));
|
|
407
403
|
Object.assign(runtimeVars, data);
|
|
@@ -419,7 +415,10 @@ program
|
|
|
419
415
|
const file = resolvedFiles[i];
|
|
420
416
|
const stopSpinner = opts.json ? () => { } : startSpinner(`[${i + 1}/${resolvedFiles.length}] ${basename(file)}`);
|
|
421
417
|
try {
|
|
422
|
-
|
|
418
|
+
// --no-session: each file is fully isolated — no vars flow from one file to another.
|
|
419
|
+
// Session mode: all files share runtimeVars so captured vars chain across files.
|
|
420
|
+
const fileVars = opts.session ? runtimeVars : {};
|
|
421
|
+
const { results } = await runVoidFile(file, { env, verbose: opts.verbose, runtimeVars: fileVars, activePlugins });
|
|
423
422
|
stopSpinner();
|
|
424
423
|
for (const { result } of results) {
|
|
425
424
|
if (!result.success)
|
|
@@ -450,12 +449,12 @@ program
|
|
|
450
449
|
}
|
|
451
450
|
}
|
|
452
451
|
// Save session results if not disabled
|
|
453
|
-
if (
|
|
452
|
+
if (opts.session) {
|
|
454
453
|
appendSessionResults(allResults);
|
|
455
454
|
}
|
|
456
455
|
const totalMs = Date.now() - runStart;
|
|
457
456
|
// Save runtime variables if not disabled
|
|
458
|
-
if (
|
|
457
|
+
if (opts.session && Object.keys(runtimeVars).length > 0) {
|
|
459
458
|
try {
|
|
460
459
|
mkdirSync(STORE_DIR, { recursive: true });
|
|
461
460
|
writeFileSync(VARS_PATH, JSON.stringify(runtimeVars, null, 2), 'utf-8');
|
|
@@ -489,6 +488,30 @@ program
|
|
|
489
488
|
console.error(chalk.red(` ✗ Failed to write CSV: ${err?.message ?? String(err)}`));
|
|
490
489
|
}
|
|
491
490
|
}
|
|
491
|
+
// ── Output JSON to file (before mail so it can be attached) ──────────────
|
|
492
|
+
let savedJsonPath;
|
|
493
|
+
if (opts.outputJson) {
|
|
494
|
+
const jsonData = {
|
|
495
|
+
summary: {
|
|
496
|
+
total: allResults.length,
|
|
497
|
+
passed: allResults.filter(r => r.result.success).length,
|
|
498
|
+
failed: allResults.filter(r => !r.result.success).length,
|
|
499
|
+
totalDurationMs: totalMs,
|
|
500
|
+
activePlugins,
|
|
501
|
+
},
|
|
502
|
+
requests: allResults.map(r => ({ file: r.file, ...r.result })),
|
|
503
|
+
};
|
|
504
|
+
try {
|
|
505
|
+
mkdirSync(dirname(opts.outputJson), { recursive: true });
|
|
506
|
+
writeFileSync(opts.outputJson, JSON.stringify(jsonData, null, 2) + '\n', 'utf-8');
|
|
507
|
+
savedJsonPath = opts.outputJson;
|
|
508
|
+
if (!opts.json)
|
|
509
|
+
console.log(chalk.gray(` ↳ Results written to ${opts.outputJson}`));
|
|
510
|
+
}
|
|
511
|
+
catch (err) {
|
|
512
|
+
console.error(chalk.red(` ✗ Failed to write JSON: ${err?.message ?? String(err)}`));
|
|
513
|
+
}
|
|
514
|
+
}
|
|
492
515
|
// ── Email report ──────────────────────────────────────────────────────────
|
|
493
516
|
if (mailTo) {
|
|
494
517
|
console.log(chalk.gray(` ↑ Sending report to ${mailTo} …`));
|
|
@@ -503,6 +526,7 @@ program
|
|
|
503
526
|
smtpUser: smtpUser,
|
|
504
527
|
smtpPass: smtpPass,
|
|
505
528
|
csvPath: savedCsvPath,
|
|
529
|
+
jsonPath: savedJsonPath,
|
|
506
530
|
});
|
|
507
531
|
console.log(chalk.green(` ✓ Report sent to ${mailTo}`));
|
|
508
532
|
}
|
|
@@ -510,23 +534,6 @@ program
|
|
|
510
534
|
console.error(chalk.red(` ✗ Failed to send email: ${err?.message ?? String(err)}`));
|
|
511
535
|
}
|
|
512
536
|
}
|
|
513
|
-
// ── Output JSON to file ───────────────────────────────────────────────────
|
|
514
|
-
if (opts.outputJson) {
|
|
515
|
-
const jsonData = {
|
|
516
|
-
summary: {
|
|
517
|
-
total: allResults.length,
|
|
518
|
-
passed: allResults.filter(r => r.result.success).length,
|
|
519
|
-
failed: allResults.filter(r => !r.result.success).length,
|
|
520
|
-
totalDurationMs: Date.now() - runStart,
|
|
521
|
-
activePlugins,
|
|
522
|
-
},
|
|
523
|
-
requests: allResults.map(r => ({ file: r.file, ...r.result })),
|
|
524
|
-
};
|
|
525
|
-
mkdirSync(dirname(opts.outputJson), { recursive: true });
|
|
526
|
-
writeFileSync(opts.outputJson, JSON.stringify(jsonData, null, 2) + '\n', 'utf-8');
|
|
527
|
-
if (!opts.json)
|
|
528
|
-
console.log(chalk.gray(` ↳ Results written to ${opts.outputJson}`));
|
|
529
|
-
}
|
|
530
537
|
const shouldFail = (opts.failOnError || stopOnFailure) && anyFailed;
|
|
531
538
|
if (shouldFail && !opts.json) {
|
|
532
539
|
const failedCount = allResults.filter(r => !r.result.success).length;
|
|
@@ -635,8 +642,9 @@ reportCmd
|
|
|
635
642
|
.alias('gen')
|
|
636
643
|
.option('-e, --env <path>', 'Path to .env or .yaml file for SMTP configuration')
|
|
637
644
|
.option('--csv <path>', 'Export session results to a CSV file')
|
|
638
|
-
.option('--
|
|
639
|
-
.option('--mail
|
|
645
|
+
.option('--output-json <file>', 'Write full result object to a JSON file (also attached to email if --mail is used)')
|
|
646
|
+
.option('--mail', 'Send HTML report to VOIDEN_MAIL_TO (attaches --csv and/or --output-json if provided)')
|
|
647
|
+
.option('--mail-to <address>', 'Send HTML report to this email address (attaches --csv and/or --output-json if provided)')
|
|
640
648
|
.option('--mail-from <address>', 'Sender address for the report email')
|
|
641
649
|
.option('--mail-subject <subject>', 'Email subject line')
|
|
642
650
|
.option('--smtp-host <host>', 'SMTP server host')
|
|
@@ -669,18 +677,14 @@ reportCmd
|
|
|
669
677
|
console.error(chalk.red(' ✗ Mail error: no recipient found. Please provide --mail-to or set VOIDEN_MAIL_TO.'));
|
|
670
678
|
process.exit(1);
|
|
671
679
|
}
|
|
672
|
-
if (!opts.csv) {
|
|
673
|
-
console.error(chalk.red(' ✗ Mail error: no CSV generated. Mail requires --csv flag.'));
|
|
674
|
-
process.exit(1);
|
|
675
|
-
}
|
|
676
680
|
const smtpHost = opts.smtpHost || env.VOIDEN_SMTP_HOST;
|
|
677
681
|
if (!smtpHost) {
|
|
678
682
|
console.error(chalk.red(' ✗ Mail keys are missing. Please provide SMTP configuration (VOIDEN_SMTP_HOST).'));
|
|
679
683
|
process.exit(1);
|
|
680
684
|
}
|
|
681
685
|
}
|
|
682
|
-
if (!opts.csv && !mailTo) {
|
|
683
|
-
console.log(chalk.gray(` Session has ${results.length} accumulated results. Specify --csv to generate a report.`));
|
|
686
|
+
if (!opts.csv && !opts.outputJson && !mailTo) {
|
|
687
|
+
console.log(chalk.gray(` Session has ${results.length} accumulated results. Specify --csv or --output-json to generate a report.`));
|
|
684
688
|
return;
|
|
685
689
|
}
|
|
686
690
|
let savedCsvPath;
|
|
@@ -693,6 +697,26 @@ reportCmd
|
|
|
693
697
|
console.error(chalk.red(` ✗ Failed to write CSV: ${err?.message ?? String(err)}`));
|
|
694
698
|
}
|
|
695
699
|
}
|
|
700
|
+
let savedJsonPath;
|
|
701
|
+
if (opts.outputJson) {
|
|
702
|
+
const jsonData = {
|
|
703
|
+
summary: {
|
|
704
|
+
total: results.length,
|
|
705
|
+
passed: results.filter(r => r.result.success).length,
|
|
706
|
+
failed: results.filter(r => !r.result.success).length,
|
|
707
|
+
},
|
|
708
|
+
requests: results.map(r => ({ file: r.file, ...r.result })),
|
|
709
|
+
};
|
|
710
|
+
try {
|
|
711
|
+
mkdirSync(dirname(opts.outputJson), { recursive: true });
|
|
712
|
+
writeFileSync(opts.outputJson, JSON.stringify(jsonData, null, 2) + '\n', 'utf-8');
|
|
713
|
+
savedJsonPath = opts.outputJson;
|
|
714
|
+
console.log(chalk.gray(` ↳ Results written to ${opts.outputJson}`));
|
|
715
|
+
}
|
|
716
|
+
catch (err) {
|
|
717
|
+
console.error(chalk.red(` ✗ Failed to write JSON: ${err?.message ?? String(err)}`));
|
|
718
|
+
}
|
|
719
|
+
}
|
|
696
720
|
if (mailTo) {
|
|
697
721
|
// SMTP settings — read from CLI options or environment
|
|
698
722
|
const smtpHost = opts.smtpHost || env.VOIDEN_SMTP_HOST || process.env.VOIDEN_SMTP_HOST;
|
|
@@ -717,6 +741,7 @@ reportCmd
|
|
|
717
741
|
smtpUser: smtpUser,
|
|
718
742
|
smtpPass: smtpPass,
|
|
719
743
|
csvPath: savedCsvPath,
|
|
744
|
+
jsonPath: savedJsonPath,
|
|
720
745
|
});
|
|
721
746
|
console.log(chalk.green(` ✓ Report sent to ${mailTo}`));
|
|
722
747
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/report/mail.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/report/mail.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAA;AAE5D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"mail.d.ts","sourceRoot":"","sources":["../../src/report/mail.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,aAAa,CAAA;AAE5D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AA+OD,wBAAsB,cAAc,CAClC,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,EACnD,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,IAAI,CAAC,CAmCf"}
|
package/dist/report/mail.js
CHANGED
|
@@ -1,56 +1,214 @@
|
|
|
1
1
|
import { createTransport } from 'nodemailer';
|
|
2
2
|
// ─── HTML helpers ─────────────────────────────────────────────────────────────
|
|
3
3
|
function esc(s) {
|
|
4
|
-
return s
|
|
4
|
+
return String(s ?? '')
|
|
5
|
+
.replace(/&/g, '&')
|
|
6
|
+
.replace(/</g, '<')
|
|
7
|
+
.replace(/>/g, '>')
|
|
8
|
+
.replace(/"/g, '"');
|
|
5
9
|
}
|
|
6
|
-
function
|
|
10
|
+
function fmtMs(ms) {
|
|
11
|
+
if (ms <= 0)
|
|
12
|
+
return '';
|
|
13
|
+
return ms < 1000 ? `${ms}ms` : `${(ms / 1000).toFixed(2)}s`;
|
|
14
|
+
}
|
|
15
|
+
function fmtBytes(bytes) {
|
|
16
|
+
if (!bytes)
|
|
17
|
+
return '';
|
|
18
|
+
if (bytes < 1024)
|
|
19
|
+
return `${bytes}B`;
|
|
20
|
+
if (bytes < 1024 * 1024)
|
|
21
|
+
return `${(bytes / 1024).toFixed(1)}KB`;
|
|
22
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
|
|
23
|
+
}
|
|
24
|
+
function assertionRows(entries) {
|
|
25
|
+
const list = entries.filter(e => e.type === 'assertion');
|
|
26
|
+
if (!list.length)
|
|
27
|
+
return '';
|
|
28
|
+
const p = list.filter(e => e.passed).length;
|
|
29
|
+
const f = list.length - p;
|
|
30
|
+
const summaryColor = f > 0 ? '#ee8da0' : '#7fd0b2';
|
|
31
|
+
const rows = list.map(e => {
|
|
32
|
+
const icon = e.passed ? '✓' : '✗';
|
|
33
|
+
const color = e.passed ? '#7fd0b2' : '#ee8da0';
|
|
34
|
+
let extra = '';
|
|
35
|
+
if (!e.passed && e.actual !== undefined && e.expected !== undefined) {
|
|
36
|
+
extra = ` <span style="color:#67728c">(got ${esc(JSON.stringify(e.actual))}, expected ${esc(e.operator ?? '==')} ${esc(JSON.stringify(e.expected))})</span>`;
|
|
37
|
+
}
|
|
38
|
+
return `<div style="padding:3px 0"><span style="color:${color}">${icon}</span> <span style="color:#e8eefc">${esc(e.message)}</span>${extra}</div>`;
|
|
39
|
+
}).join('');
|
|
40
|
+
return `
|
|
41
|
+
<div style="padding:8px 16px;border-top:1px solid #18233b;background:#0d1526;font-size:12px">
|
|
42
|
+
<div style="color:${summaryColor};font-weight:600;margin-bottom:4px">
|
|
43
|
+
assertions: ${p} passed${f > 0 ? ` · ${f} failed` : ''}
|
|
44
|
+
</div>
|
|
45
|
+
${rows}
|
|
46
|
+
</div>`;
|
|
47
|
+
}
|
|
48
|
+
function kvRows(obj) {
|
|
49
|
+
if (!obj || !Object.keys(obj).length)
|
|
50
|
+
return '';
|
|
51
|
+
return Object.entries(obj).map(([k, v]) => `<div style="padding:1px 0 1px 12px"><span style="color:#7f8aa3">${esc(k)}:</span> <span style="color:#e8eefc">${esc(v)}</span></div>`).join('');
|
|
52
|
+
}
|
|
53
|
+
function preBlock(text) {
|
|
54
|
+
const MAX = 2000;
|
|
55
|
+
const body = text.length > MAX ? text.slice(0, MAX) + '\n… (truncated)' : text;
|
|
56
|
+
return `<pre style="margin:4px 0 0;padding:8px 10px;background:#121c31;border-radius:4px;font-size:11px;white-space:pre-wrap;word-break:break-all;color:#e8eefc;font-family:monospace">${esc(body)}</pre>`;
|
|
57
|
+
}
|
|
58
|
+
function detailsBlock(result) {
|
|
59
|
+
const req = [];
|
|
60
|
+
const res = [];
|
|
61
|
+
if (result.method)
|
|
62
|
+
req.push(`<div><span style="color:#67728c">method:</span> <span style="color:#d7b56d">${esc(result.method)}</span></div>`);
|
|
63
|
+
if (result.url)
|
|
64
|
+
req.push(`<div style="word-break:break-all"><span style="color:#67728c">url:</span> <span style="color:#8fb4ff">${esc(result.url)}</span></div>`);
|
|
65
|
+
if (result.requestHeaders && Object.keys(result.requestHeaders).length) {
|
|
66
|
+
req.push(`<div style="margin-top:8px;color:#67728c">headers:</div>${kvRows(result.requestHeaders)}`);
|
|
67
|
+
}
|
|
68
|
+
if (result.requestBody) {
|
|
69
|
+
req.push(`<div style="margin-top:8px;color:#67728c">body:</div>${preBlock(result.requestBody)}`);
|
|
70
|
+
}
|
|
71
|
+
if (result.status !== undefined) {
|
|
72
|
+
res.push(`<div><span style="color:#67728c">status:</span> <span style="color:${result.success ? '#7fd0b2' : '#ee8da0'}">${esc(result.status)} ${esc(result.statusText ?? '')}</span></div>`);
|
|
73
|
+
}
|
|
74
|
+
if (result.responseHeaders && Object.keys(result.responseHeaders).length) {
|
|
75
|
+
res.push(`<div style="margin-top:8px;color:#67728c">headers:</div>${kvRows(result.responseHeaders)}`);
|
|
76
|
+
}
|
|
77
|
+
if (result.body) {
|
|
78
|
+
res.push(`<div style="margin-top:8px;color:#67728c">body:</div>${preBlock(result.body)}`);
|
|
79
|
+
}
|
|
80
|
+
if (!req.length && !res.length)
|
|
81
|
+
return '';
|
|
82
|
+
const reqSection = req.length ? `
|
|
83
|
+
<div style="margin-bottom:12px">
|
|
84
|
+
<div style="color:#8fb4ff;font-size:11px;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px">REQUEST</div>
|
|
85
|
+
${req.join('')}
|
|
86
|
+
</div>` : '';
|
|
87
|
+
const resSection = res.length ? `
|
|
88
|
+
<div>
|
|
89
|
+
<div style="color:#7dc4e4;font-size:11px;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px">RESPONSE</div>
|
|
90
|
+
${res.join('')}
|
|
91
|
+
</div>` : '';
|
|
92
|
+
return `
|
|
93
|
+
<details style="border-top:1px solid #18233b">
|
|
94
|
+
<summary style="padding:10px 16px;cursor:pointer;color:#7f8aa3;font-size:12px;user-select:none;list-style:none">▸ Request & Response</summary>
|
|
95
|
+
<div style="padding:12px 16px;border-top:1px solid #18233b;background:#0d1526;font-size:12px;line-height:1.7;font-family:monospace">
|
|
96
|
+
${reqSection}${resSection}
|
|
97
|
+
</div>
|
|
98
|
+
</details>`;
|
|
99
|
+
}
|
|
100
|
+
function resultCard(file, result) {
|
|
101
|
+
const ok = result.success;
|
|
102
|
+
const iconColor = ok ? '#7fd0b2' : '#ee8da0';
|
|
103
|
+
const icon = ok ? '✓' : '✗';
|
|
104
|
+
const filename = file.split('/').pop() ?? file;
|
|
105
|
+
const durStr = result.durationMs > 0 ? fmtMs(result.durationMs) : '';
|
|
106
|
+
const sizeStr = result.size !== undefined ? ` · ${fmtBytes(result.size)}` : '';
|
|
107
|
+
const methodBadge = result.method
|
|
108
|
+
? `<span style="background:#18233b;color:#d7b56d;font-size:10px;font-weight:600;padding:2px 6px;border-radius:3px;font-family:monospace;margin-right:6px">${esc(result.method)}</span>`
|
|
109
|
+
: '';
|
|
110
|
+
const statusBadge = result.status !== undefined
|
|
111
|
+
? `<span style="background:${ok ? '#7fd0b215' : '#ee8da015'};color:${iconColor};font-size:11px;font-weight:600;padding:2px 7px;border-radius:3px">${esc(result.status)}</span>`
|
|
112
|
+
: '';
|
|
113
|
+
const errorRow = result.error
|
|
114
|
+
? `<div style="padding:8px 16px;border-top:1px solid #18233b;background:#ee8da010;color:#ee8da0;font-size:12px;font-family:monospace;word-break:break-all">${esc(result.error)}</div>`
|
|
115
|
+
: '';
|
|
116
|
+
const assertions = result.reportEntries?.length ? assertionRows(result.reportEntries) : '';
|
|
117
|
+
const details = detailsBlock(result);
|
|
118
|
+
return `
|
|
119
|
+
<div style="background:#101a2d;border:1px solid #18233b;${!ok ? 'border-left:3px solid #ee8da040;' : ''}border-radius:8px;margin-bottom:8px;overflow:hidden">
|
|
120
|
+
<div style="padding:13px 16px;display:flex;align-items:flex-start;gap:12px">
|
|
121
|
+
<span style="color:${iconColor};font-size:16px;font-weight:700;line-height:1.3;flex-shrink:0">${icon}</span>
|
|
122
|
+
<div style="flex:1;min-width:0">
|
|
123
|
+
<div style="color:#e8eefc;font-size:14px;font-weight:500;margin-bottom:4px">${esc(filename)}</div>
|
|
124
|
+
<div style="color:#7f8aa3;font-size:12px;word-break:break-all">${methodBadge}${esc(result.url || '—')}</div>
|
|
125
|
+
</div>
|
|
126
|
+
<div style="text-align:right;flex-shrink:0;padding-left:12px">
|
|
127
|
+
${statusBadge ? `<div style="margin-bottom:4px">${statusBadge}</div>` : ''}
|
|
128
|
+
${durStr ? `<div style="color:#67728c;font-size:11px;white-space:nowrap">${durStr}${sizeStr}</div>` : ''}
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
${errorRow}${assertions}${details}
|
|
132
|
+
</div>`;
|
|
133
|
+
}
|
|
134
|
+
function buildHtml(results, totalMs, attachments = {}) {
|
|
7
135
|
const passed = results.filter(r => r.result.success).length;
|
|
8
136
|
const failed = results.length - passed;
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
137
|
+
const durStr = totalMs > 0 ? ` · ${fmtMs(totalMs)} total` : '';
|
|
138
|
+
const failedCards = results.filter(r => !r.result.success).map(r => resultCard(r.file, r.result)).join('');
|
|
139
|
+
const passedCards = results.filter(r => r.result.success).map(r => resultCard(r.file, r.result)).join('');
|
|
140
|
+
const parts = [];
|
|
141
|
+
if (attachments.csv)
|
|
142
|
+
parts.push('CSV');
|
|
143
|
+
if (attachments.json)
|
|
144
|
+
parts.push('JSON');
|
|
145
|
+
const attachNote = parts.length > 0
|
|
146
|
+
? `Detailed logs attached as <strong>${parts.join(' & ')}</strong>.`
|
|
147
|
+
: 'Run with <code style="background:#121c31;padding:1px 5px;border-radius:3px">--csv</code> or <code style="background:#121c31;padding:1px 5px;border-radius:3px">--output-json</code> to attach detailed logs.';
|
|
20
148
|
return `<!DOCTYPE html>
|
|
21
149
|
<html lang="en">
|
|
22
|
-
<head
|
|
23
|
-
<
|
|
150
|
+
<head>
|
|
151
|
+
<meta charset="utf-8">
|
|
152
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
153
|
+
<title>voiden report</title>
|
|
24
154
|
</head>
|
|
25
|
-
<body style="margin:0;padding:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
155
|
+
<body style="margin:0;padding:32px 20px;background:#0d1526;color:#e8eefc;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif">
|
|
156
|
+
<div style="max-width:720px;margin:0 auto">
|
|
157
|
+
|
|
158
|
+
<!-- Header -->
|
|
159
|
+
<div style="margin-bottom:28px">
|
|
160
|
+
<div style="display:flex;align-items:center;gap:10px;margin-bottom:6px">
|
|
161
|
+
<span style="font-size:18px;font-weight:700;color:#e8eefc;letter-spacing:-0.3px">voiden</span>
|
|
162
|
+
<span style="color:#18233b;font-size:18px">·</span>
|
|
163
|
+
<span style="font-size:14px;color:#7f8aa3;font-weight:500">Test Report</span>
|
|
164
|
+
</div>
|
|
165
|
+
<p style="margin:0;color:#67728c;font-size:13px">${new Date().toUTCString()}${durStr}</p>
|
|
166
|
+
</div>
|
|
29
167
|
|
|
30
|
-
|
|
168
|
+
<!-- Stats -->
|
|
169
|
+
<div style="background:#101a2d;border:1px solid #18233b;border-radius:10px;padding:22px 28px;margin-bottom:28px">
|
|
170
|
+
<div style="display:flex;gap:40px;flex-wrap:wrap">
|
|
31
171
|
<div>
|
|
32
|
-
<
|
|
33
|
-
<
|
|
172
|
+
<div style="color:#67728c;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px">Passed</div>
|
|
173
|
+
<div style="font-size:36px;font-weight:700;color:#7fd0b2;line-height:1">${passed}</div>
|
|
34
174
|
</div>
|
|
35
175
|
<div>
|
|
36
|
-
<
|
|
37
|
-
<
|
|
176
|
+
<div style="color:#67728c;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px">Failed</div>
|
|
177
|
+
<div style="font-size:36px;font-weight:700;color:${failed > 0 ? '#ee8da0' : '#67728c'};line-height:1">${failed}</div>
|
|
38
178
|
</div>
|
|
39
179
|
<div>
|
|
40
|
-
<
|
|
41
|
-
<
|
|
180
|
+
<div style="color:#67728c;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px">Total</div>
|
|
181
|
+
<div style="font-size:36px;font-weight:700;color:#7f8aa3;line-height:1">${results.length}</div>
|
|
42
182
|
</div>
|
|
183
|
+
${totalMs > 0 ? `<div>
|
|
184
|
+
<div style="color:#67728c;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px">Duration</div>
|
|
185
|
+
<div style="font-size:36px;font-weight:700;color:#8fb4ff;line-height:1">${fmtMs(totalMs)}</div>
|
|
186
|
+
</div>` : ''}
|
|
43
187
|
</div>
|
|
188
|
+
</div>
|
|
44
189
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
</
|
|
190
|
+
${failed > 0 ? `
|
|
191
|
+
<!-- Failed section -->
|
|
192
|
+
<div style="display:flex;align-items:center;gap:8px;margin-bottom:12px">
|
|
193
|
+
<span style="color:#ee8da0;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase">✗ Failed</span>
|
|
194
|
+
<span style="background:#ee8da015;color:#ee8da0;font-size:11px;padding:2px 8px;border-radius:10px">${failed}</span>
|
|
195
|
+
</div>
|
|
196
|
+
<div style="margin-bottom:24px">${failedCards}</div>` : ''}
|
|
49
197
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
198
|
+
${passed > 0 ? `
|
|
199
|
+
<!-- Passed section -->
|
|
200
|
+
<div style="display:flex;align-items:center;gap:8px;margin-bottom:12px">
|
|
201
|
+
<span style="color:#7fd0b2;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase">✓ Passed</span>
|
|
202
|
+
<span style="background:#7fd0b215;color:#7fd0b2;font-size:11px;padding:2px 8px;border-radius:10px">${passed}</span>
|
|
203
|
+
</div>
|
|
204
|
+
<div style="margin-bottom:24px">${passedCards}</div>` : ''}
|
|
205
|
+
|
|
206
|
+
<!-- Footer -->
|
|
207
|
+
<div style="border-top:1px solid #18233b;padding-top:18px;text-align:center;color:#67728c;font-size:12px">
|
|
208
|
+
${attachNote}
|
|
53
209
|
</div>
|
|
210
|
+
|
|
211
|
+
</div>
|
|
54
212
|
</body>
|
|
55
213
|
</html>`;
|
|
56
214
|
}
|
|
@@ -65,7 +223,7 @@ export async function sendMailReport(results, totalMs, opts) {
|
|
|
65
223
|
auth: opts.smtpUser ? { user: opts.smtpUser, pass: opts.smtpPass ?? '' } : undefined,
|
|
66
224
|
});
|
|
67
225
|
const subject = opts.subject
|
|
68
|
-
?? `voiden
|
|
226
|
+
?? `voiden: ${passed}/${results.length} passed${failed > 0 ? ` · ${failed} failed` : ' · all passed'}`;
|
|
69
227
|
const attachments = [];
|
|
70
228
|
if (opts.csvPath) {
|
|
71
229
|
attachments.push({
|
|
@@ -73,11 +231,17 @@ export async function sendMailReport(results, totalMs, opts) {
|
|
|
73
231
|
path: opts.csvPath,
|
|
74
232
|
});
|
|
75
233
|
}
|
|
234
|
+
if (opts.jsonPath) {
|
|
235
|
+
attachments.push({
|
|
236
|
+
filename: opts.jsonPath.split('/').pop() || 'report.json',
|
|
237
|
+
path: opts.jsonPath,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
76
240
|
await transport.sendMail({
|
|
77
241
|
from: opts.from ?? opts.smtpUser ?? 'voiden-runner',
|
|
78
242
|
to: opts.to,
|
|
79
243
|
subject,
|
|
80
|
-
html: buildHtml(results, totalMs),
|
|
244
|
+
html: buildHtml(results, totalMs, { csv: opts.csvPath, json: opts.jsonPath }),
|
|
81
245
|
attachments,
|
|
82
246
|
});
|
|
83
247
|
}
|
package/dist/report/mail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/report/mail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"mail.js","sourceRoot":"","sources":["../../src/report/mail.ts"],"names":[],"mappings":"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"}
|