• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

cameri / nostream / 41250598084
78%

Build:
DEFAULT BRANCH: main
Ran 31 Oct 2026 11:03PM UTC
Jobs 1
Files 320
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

31 Oct 2026 10:59PM UTC coverage: 74.822% (-2.6%) from 77.408%
41250598084

push

github

web-flow
fix(startup): print the banner as text, not as one JSON record per line (#1012)

The startup banner went through `logger.info(...)`, so with JSON output
the logo arrived inside one record with `\n` escapes:

```json
{"level":30,"scope":"primary:app-primary","msg":"\n ███▄    █  ▒█████    ██████ ▄▄▄█████▓ ██▀███ …"}
{"level":30,"scope":"primary:app-primary","msg":"                                  v3.10.0"}
```

A banner is read by a person. The logo and its centred facts now go to
stdout as plain text:

```
 ███▄    █  ▒█████    ██████ ▄▄▄█████▓ ██▀███  ▓█████ ▄▄▄       ███▄ ▄███▓
 ██ ▀█   █ ▒██▒  ██▒▒██    ▒ ▓  ██▒ ▓▒▓██ ▒ ██▒▓█   ▀▒████▄    ▓██▒▀█▀ ██▒
…
                                 v3.10.0
                        NIPs implemented: 1,2,3,…
                           Pay-to-relay disabled
```

## Notes

- Nothing is lost for a log pipeline. `logger.info` here is
`createLogger`, which turns an object argument into a formatted string
before handing it to pino, so every other line in this file is text too
— adding a "structured" record beside the banner would have been a
string in a `msg` field, not fields. I tried that first and dropped it.
- `logCentered` used `logger.info(' '.repeat(start), input)` — a printf
call with no placeholder. pino kept the extra argument, but relying on
that was luck; the padding is now part of the string.
- The banner text moved to `src/utils/banner.ts` (`RELAY_BANNER_LINES`,
`centre`), testable without a database, a cluster or a settings
document. Its spec pins that no line exceeds the 74-column block — a
wrapped line turns the logo into noise — and that an overlong line is
left alone rather than truncated.
- `app.spec.ts`'s `fakeProcess` gains a `stdout`, and a new case pins
that `run()` writes the banner there as text.

## Verification

- `test/unit/app/app.spec.ts` — 7 passing, including the new banner case
- `test/unit/utils/banner.spec.ts` — 4 passing
- `src/app/app.ts` type-checks; the banner renders as shown thr... (continued)

4270 of 6240 branches covered (68.43%)

Branch coverage included in aggregate %.

27 of 32 new or added lines in 2 files covered. (84.38%)

322 existing lines in 39 files now uncovered.

9269 of 11855 relevant lines covered (78.19%)

760.46 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
67.93
1.27% src/app/app.ts

Coverage Regressions

Lines Coverage ∆ File
101
11.15
-47.84% src/utils/relay-probe/ws-protocol-probe.ts
30
67.53
-15.26% src/scripts/export-events.ts
20
9.62
-55.77% src/controllers/admission/get-admission-check-controller.ts
16
64.82
-13.57% src/import-events.ts
14
50.91
-38.18% src/utils/admin-health.ts
11
54.17
-45.83% src/factories/web-app-factory.ts
10
12.0
-56.0% src/controllers/invoices/get-invoice-status-controller.ts
9
17.5
-32.5% src/handlers/request-handlers/rate-limiter-middleware.ts
8
93.85
-2.77% src/repositories/event-repository.ts
7
32.0
-44.0% src/factories/payments-processors/lnbits-payments-processor-factory.ts
7
29.63
-40.74% src/factories/payments-processors/opennode-payments-processor-factory.ts
7
33.33
-52.38% src/factories/rate-limiter-factory.ts
7
63.64
-21.21% src/utils/relay-probe/dns-probe.ts
6
57.14
-42.86% src/factories/controllers/post-invoice-controller-factory.ts
6
18.0
-12.0% src/utils/relay-probe/tls-probe.ts
5
64.06
-15.63% src/cache/client.ts
5
58.33
-41.67% src/factories/controllers/get-admission-check-controller-factory.ts
5
50.0
-31.25% src/factories/payments-processor-factory.ts
4
41.67
-41.67% src/factories/payments-processors/lnurl-payments-processor-factory.ts
4
42.86
-57.14% src/handlers/request-handlers/nodeinfo-handler.ts
4
57.14
-42.86% src/utils/monitor-identity.ts
3
74.77
-5.61% src/adapters/redis-adapter.ts
3
37.5
-12.5% src/app/worker.ts
3
57.14
-42.86% src/factories/controllers/get-invoice-status-controller-factory.ts
3
78.38
-21.62% src/routes/index.ts
3
93.01
-2.18% src/utils/event.ts
3
41.67
-5.21% src/utils/relay-probe/nip11-probe.ts
2
78.57
-7.14% src/repositories/invoice-repository.ts
2
80.56
-2.78% src/services/event-import-service.ts
2
33.33
-66.67% src/utils/misc.ts
2
76.79
-2.68% src/utils/nip66-events.ts
2
85.11
-4.26% src/utils/relay-probe-targets.ts
2
86.51
-0.57% src/utils/settings-config.ts
1
96.67
-3.33% src/adapters/web-server-adapter.ts
1
85.71
-2.14% src/app/relay-monitor-worker.ts
1
83.33
-16.67% src/factories/controllers/lnbits-callback-controller-factory.ts
1
75.0
-25.0% src/factories/controllers/opennode-callback-controller-factory.ts
1
81.48
-5.56% src/utils/nip66-nip11-tags.ts
1
87.88
-6.06% src/utils/relay-probe-snapshot.ts
Jobs
ID Job ID Ran Files Coverage
1 Unit - 41250598084.1 31 Oct 2026 11:03PM UTC 320
74.82
GitHub Action Run
Source Files on build 41250598084
  • Tree
  • List 320
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #41250598084
  • c1523685 on github
  • Prev Build on main (#41248663387)
  • Next Build on main (#41250750917)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc