User-feedback iteration on S2 PoC template:
- Update validate_readme_structure test-data ('complete' + 'missing_api')
to use new bold-list Badges + ## Topology H2 heading.
- Add 'missing_topology' case: README without ## Topology heading must
report Topology as missing MUST-Section.
- Add 'missing_badges' case: README without **Lib-ID:** bold-line must
report Badges as missing MUST-Section.
Assertion-count: 32 -> 35 (+3 new). README Coverage-Statement updated.
32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
# lib-core.api-discovery-test
|
|
|
|
Test-lib for `lib-core.api-discovery` (Tests-as-Libs per ADR-0037).
|
|
|
|
## Coverage Statement
|
|
|
|
Per Fault-Injection-Audit-Convention (2026-05-16):
|
|
|
|
| Function | Assertion-Count | Coverage |
|
|
|---|---|---|
|
|
| `parse_lua_surface` | 7 | Happy-path (2 public + 1 private), empty-source edge |
|
|
| `parse_readme_api` | 4 | Standard H3-pattern, no-API-section edge |
|
|
| `diff_surface` | 5 | Equal (no diff), surface-superset (missing), doc-superset (stale) |
|
|
| `grep_engine_calls` | 5 | 3 unique calls, no-calls edge |
|
|
| `generate_topology_block` | 6 | Lib-with-deps+engine, asset-lib (no deps, no engine) |
|
|
| `validate_readme_structure` | 8 | Complete core, missing-API core, missing-Topology, missing-Badges, community-tier-no-enforcement |
|
|
| **TOTAL** | **35** | |
|
|
|
|
### Tested-Surface
|
|
- All 6 public functions of `lib-core.api-discovery` v0.1.0.
|
|
|
|
### Structurally Untestable
|
|
- Idiomatic-edge: `M.foo = function ... end` mit Multi-Line-Body wird durch pattern-line-match abgedeckt; very-creative-patterns (z.B. dynamic `_ENV[k] = function...`) sind by-design out-of-scope.
|
|
- Doc-quality (sind die Function-Descriptions akkurat?) — sentiment-level question, kein assertion-target.
|
|
|
|
### Deferred
|
|
- Mutation-Audit der Test-Lib selbst (analog 2026-05-16 Test-Coverage-Audit) — Folge-Slice.
|
|
|
|
## Running
|
|
|
|
Wird automatisch via `--test-libs=lib-core.api-discovery-test` ausgeführt (Smoke P0-S-batch Stage).
|