Files
t3mp3st/src
Lyubomir Bozhinov 32b81708ea test(ui): add semantic defect gate for inline scripts (#111 hardening) (#113)
#111 shipped 8 bad-auto-merge scars into the SPA past a CI that only ever
lints/tests `src/` — the 27k-line docs/index.html had (and still has) no
static gate. The parse test added with the #111 fix catches outright syntax
failures; this adds the *semantic* layer that parsing misses.

It runs ESLint's high-precision "possible problem" rules programmatically
over each inline <script> (no new dependency — `eslint` is already a
devDependency; no eslint.config or CI change — rides the existing `npm test`):
no-redeclare, no-unreachable, no-dupe-keys, no-dupe-args, no-dupe-else-if,
no-duplicate-case, no-const-assign, no-import-assign, no-class-assign — the
exact shapes a conflict-concatenating merge leaves behind.

Tight, always-a-bug rules, each script linted in isolation → zero false
positives on the real file. no-undef / no-unused-vars are excluded (the SPA
relies on cross-<script> and browser globals a per-block lint can't see) and
no-func-assign is excluded (the app legitimately monkey-patches navigateTo).

Verified: 0 findings on the fixed tree, and it rejects the pre-fix main
(catches the duplicate `response`). Full suite green.

Also drops a now-unused eslint-disable directive in the parse test.
2026-07-26 14:53:12 -04:00
..
2026-07-02 13:56:02 -04:00
2026-07-03 10:57:20 -04:00
2026-07-03 10:57:20 -04:00
2026-07-03 10:57:20 -04:00
2026-07-02 13:56:02 -04:00
2026-07-03 10:57:20 -04:00
2026-07-03 10:57:20 -04:00
2026-07-02 13:56:02 -04:00
2026-07-03 10:57:20 -04:00
2026-07-09 11:50:16 -04:00
2026-07-03 10:57:20 -04:00