Skip to content

Expand testing specification and close P0/P1 gaps#152

Draft
Alek99 wants to merge 34 commits into
mainfrom
agent/add-testing-spec
Draft

Expand testing specification and close P0/P1 gaps#152
Alek99 wants to merge 34 commits into
mainfrom
agent/add-testing-spec

Conversation

@Alek99

@Alek99 Alek99 commented Jul 22, 2026

Copy link
Copy Markdown
Member

Stacked on #159 (TypeScript/vite client). Documents current testing coverage, marks missing gates as NOT IMPLEMENTED, and adds separate hard CI gates for dashboard health, browser baselines, runtime security, dependency auditing, native parity, release testing, and related P0/P1 gaps.

@greptile-apps

greptile-apps Bot commented Jul 22, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds a living testing specification and gap register. The main changes are:

  • Documents current test coverage, enforcement, and known boundaries.
  • Adds prioritized gaps with explicit completion criteria.
  • Adds a checker for links, statuses, gap IDs, repository paths, and workflow jobs.
  • Wires the checker into documentation and quick local verification commands.

Confidence Score: 5/5

This looks safe to merge.

No blocking issues found in the changed code.

T-Rex T-Rex Logs

What T-Rex did

  • Established the baseline by confirming that the parent revision did not contain scripts/check_testing_spec.py.
  • The updated testing checker exited 0 and reported testing specification OK (4 documents).
  • Executed the focused tests, which completed with 63 passed in 0.46s.
  • Ran make check-docs and confirmed it exited 0, indicating guardrails, testing-spec validation, and examples all passed.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
scripts/check_testing_spec.py Adds mechanical validation for the testing specification and gap register.
scripts/verify_local.py Registers the testing specification check in local quick verification.
Makefile Adds a dedicated testing specification target and extends the documentation gate.
tests/test_check_testing_spec.py Adds focused coverage for valid and invalid testing specification content.
spec/testing/current.md Inventories current test surfaces, commands, enforcement, and coverage boundaries.
spec/testing/gaps.md Adds prioritized testing gaps with statuses, owners, and completion criteria.

Reviews (2): Last reviewed commit: "Make the testing catalog self-validating" | Re-trigger Greptile

@codspeed-hq

codspeed-hq Bot commented Jul 22, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 97 untouched benchmarks
⏩ 1 skipped benchmark1


Comparing agent/add-testing-spec (14bf6d5) with main (b0f8780)

Open in CodSpeed

Footnotes

  1. 1 benchmark was skipped, so the baseline result was used instead. If it was deleted from the codebase, click here and archive it to remove it from the performance reports.

Comment thread spec/testing/gaps.md
Comment on lines +257 to +274
### TST-NI-024 — Runtime DOM-XSS, CSP, and network-isolation tests

- Status: `NOT IMPLEMENTED`
- Current gap: text-boundary security is strong, but much of the client sink
contract is source-based rather than observed in a browser.
- Implemented when: hostile strings flow through every public text surface;
tests assert literal text, no executable nodes/dialogs, and no network request
under standalone CSP; hostile CSS is exercised; and fixed internal icon sinks
are structurally allowlisted.

### TST-NI-025 — Observable or opt-in Chromium sandbox downgrade

- Status: `NOT IMPLEMENTED`
- Current gap: public export can retry unsandboxed after a sandboxed launch
failure without a product-level policy assertion.
- Implemented when: policy chooses explicit opt-in or an observable warning,
launch-failure tests assert exact arguments and diagnostics, no silent downgrade
occurs, and trusted CI requests `sandbox=False` explicitly when necessary.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

huh

Comment thread spec/testing/gaps.md
Comment on lines +326 to +333
### TST-NI-031 — Strict marker, skip, and xfail policy

- Status: `NOT IMPLEMENTED`
- Current gap: a single dependency skip can hide a suite and configured browser
failures can become skips without an enforced per-job budget.
- Implemented when: registered markers describe all layers; each job declares its
selection and allowed skips; skip reasons/budgets are enforced; required
dependency/browser skips fail; and strict xfails carry an issue and expiry.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NO MORE importorskip!

Comment thread spec/testing/gaps.md

- Status: `NOT IMPLEMENTED`
- Current gap: root hard CI floats `.[dev]` and tool versions, Python versions are
partly incidental, and the floor lane omits relevant optional test dependencies.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there should be no optional test deps. i think that's a mistake.

if the test deps are overly specific to one subsystem, then we should consider splitting the tests across package boundaries. for example, reflex-xy tests can live at python/reflex-xy/tests and have their own pyproject and dev deps separate from the outer project

Comment thread tests/test_check_testing_spec.py Outdated
Comment on lines +26 to +29
GOOD_README = """# Testing Specification

See [`current.md`](current.md) and [`gaps.md`](gaps.md).
"""

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WTF kind of test module is this...

@Alek99
Alek99 force-pushed the agent/add-testing-spec branch from 8c5f886 to a88a02a Compare July 22, 2026 03:54
@greptile-apps

greptile-apps Bot commented Jul 22, 2026

Copy link
Copy Markdown

Too many files changed for review. (165 files found, 100 file limit)

Bypass the limit by tagging @greptile-apps to review.

@Alek99 Alek99 changed the title Add living testing specification and gap register Expand testing specification and close P0/P1 gaps Jul 22, 2026
@Alek99
Alek99 changed the base branch from main to feat/ts-vite-client July 22, 2026 03:54
Alek99 added 22 commits July 21, 2026 22:48
Address review feedback on the testing specification:

- add scripts/check_testing_spec.py, which validates the catalog's Markdown
  links and heading anchors, status vocabulary, gap-ID uniqueness/sequence/
  reachability, and every referenced make target, repository path, and
  workflow job; the checks that were previously run by hand now run in
  automation
- add tests/test_check_testing_spec.py with a positive case and 15 negative
  controls, per the register's own promotion rule
- wire the checker into scripts/verify_local.py, the quick gate, make
  check-docs, and a new make check-testing-spec, so the root suite fails when
  a renamed script or retired target makes the catalog false
- require an Owner field on P0 entries and enforce it in the checker
- add current.md rows for TST-NI-049, 052, 053, and 054, which were defined
  in the register but unreachable from the inventory
- move the point-in-time audit snapshot out of the evergreen README into
  spec/testing/audits/2026-07-21.md, recording how each number was observed
- restate TST-NI-005 as the remaining scope: spec-only pull requests still
  receive no required result and the rest of spec/ is unchecked
- order the spec/README intro to match its section order
@Alek99
Alek99 force-pushed the agent/add-testing-spec branch from a88a02a to 14bf6d5 Compare July 22, 2026 05:49
@Alek99
Alek99 changed the base branch from feat/ts-vite-client to main July 22, 2026 05:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants