Files
markitect-tool/docs/markitect-main-test-migration-inventory.md

153 lines
6.6 KiB
Markdown

# markitect-main Test Migration Inventory
Source repo: `/home/worsch/markitect-main`
This inventory classifies old tests and fixtures by the `markitect-tool` FRS.
It is a migration filter, not a promise to copy tests verbatim.
## Migration Rule
Migrate tests when they verify provider-neutral markdown behavior. Rewrite tests
when the old assertion depends on database state, platform lifecycle, UI
rendering, domain-specific infospace semantics, or provider-specific LLM calls.
## FR-001/002: Markdown Parsing and Structuring
Candidate tests and fixtures:
| Source | Use |
| --- | --- |
| `tests/test_l7_foundation_markdown_parsing.py` | Minimal parser smoke test for heading and paragraph tokens. |
| `tests/fixtures/frontmatter_test_files/*.md` | YAML/JSON/TOML/no-frontmatter fixtures. |
| `tests/fixtures/content_test_files/*.md` | Frontmatter/content/tailmatter segmentation fixtures. |
| `tests/fixtures/markdown_samples.py` | Reusable samples if not coupled to legacy AST shape. |
| `testdata/test_frontmatter.md`, `testdata/test_roundtrip.md` | Roundtrip and frontmatter fixtures. |
| `tests/test_roundtrip_consolidated.py` | Review for parse/serialize expectations. |
| `tests/test_issue_51_outline_mode.py`, `tests/test_issue_52_heading_text_capture.py` | Review for heading tree behavior. |
Define the new structured representation first, then port only behavior that
still applies.
## FR-010/012: Schema Definition and Validation
Strong candidates:
| Source | Use |
| --- | --- |
| `tests/test_schema_loader.py` | Markdown schema load/save/roundtrip, frontmatter extraction, JSON extraction, edge cases. |
| `tests/test_issue_5_schema_generation.py` | Schema derivation from simple/complex markdown, depth limits, empty/file-not-found behavior. |
| `tests/test_issue_7_schema_validation.py` | Matching/non-matching schemas, invalid inputs, depth-limited schema validation. |
| `tests/test_issue_8_validation_errors.py` | Structured validation errors, formatting, summaries, file/string inputs. |
| `tests/test_schema_metaschema.py` | Metaschema validation fixtures. |
| `tests/test_schema_naming.py` | Migrate only if schema naming remains part of the contract. |
| `markitect/schemas/*.md`, `markitect/schemas/markitect-metaschema.json` | Candidate fixtures, not automatically built-in product schemas. |
Do not migrate database-backed schema ingest/list/get/delete behavior.
## FR-020/022: Transformation and Composition
Candidate tests:
| Source | Use |
| --- | --- |
| `tests/test_issue_150_transclusion_engine.py` | Includes, variables, conditionals, circular references, depth limits, partial errors. |
| `tests/test_issue_149_explode_implode_variants.py` | Review explode/implode variants as transform primitives. |
| `tests/unit/infospace/test_composition.py` | Extract only generic markdown composition expectations. |
| `tests/unit/spaces/test_transclusion.py` | Extract only generic transclusion rules. |
Rewrite around a small operation API. Avoid importing `infospace`, `spaces`, or
packaging semantics into the toolkit core.
## FR-030/031: Query and Extraction
Candidate tests:
| Source | Use |
| --- | --- |
| `tests/test_l4_service_ast_analysis.py` | AST display/query/stats behavior and JSONPath error handling. |
| `markitect/query_paradigms/tests/test_query_paradigms.py` | Review for adapter boundary ideas only. |
| `markitect/graphql/tests/*` | Do not migrate; GraphQL service is out of scope. |
Initial query tests should cover selector matches, empty matches, invalid
selectors, and structured output over parsed documents.
## FR-040/042: Templating and Generation
Strong candidates:
| Source | Use |
| --- | --- |
| `tests/test_issue_65_template_parser.py` | Variable detection, nested variables, duplicates, malformed braces, empty templates. |
| `tests/test_issue_65_template_substitution.py` | Strict/lenient substitution, nested data, markdown formatting, special characters, large templates. |
| `tests/test_issue_6_stub_generation.py` | Review for schema-to-markdown stub generation. |
Do not migrate prompt execution or LLM quality gates into core. FR-042 should be
an optional adapter hook after deterministic generation works.
## FR-050/052: CLI, Batch, and Repeatability
Candidate tests:
| Source | Use |
| --- | --- |
| `tests/test_issue_17_batch_processing.py` | File discovery, recursion, depth limits, glob behavior, stop/continue errors. |
| `tests/test_cli_simple.py`, `tests/test_cli_integration.py`, `tests/test_issue_6_cli_integration.py` | Review command ergonomics only; command names change to `mkt`. |
| `tests/test_l4_service_output_formatting.py` | Structured output formatting expectations. |
Rewrite around new `mkt` commands. Do not keep database ingest/status/list as
first-class behavior.
## FR-060/061: Configuration Handling
Strong candidates:
| Source | Use |
| --- | --- |
| `tests/test_issue_18_config_management.py` | Config show/set/init/validate/help, YAML/JSON parsing, env vars, sensitive masking. |
| `tests/test_issue_37_configuration_integration.py` | Review for config precedence if not provider-specific. |
Drop LLM provider preference handling from core config.
## FR-070/071: Caching and Incremental Processing
Candidate tests:
| Source | Use |
| --- | --- |
| `tests/test_l5_infrastructure_cache_management.py` | Cache stats/clean/invalidate behavior and feedback. |
| `markitect/ast_cache.py`, `cache_service.py` | Reference after parser representation stabilizes. |
Do not migrate prompt incremental recompute tests.
## FR-080/081: Structured Errors
Candidate tests:
| Source | Use |
| --- | --- |
| `tests/test_issue_8_validation_errors.py` | Highest-value source for typed validation failures and formatting. |
| `tests/test_issue_152_153_edge_cases.py` | Review for generic edge cases. |
| `markitect/exceptions.py`, `validation_error.py` | Reference for error taxonomy. |
Structured errors should be introduced early because they shape CLI and API
behavior across all FRS areas.
## Explicitly Out of Scope
Do not migrate:
- `tests/unit/infospace/*`, except tiny generic markdown composition ideas.
- `tests/unit/spaces/*`, except generic transclusion ideas.
- `tests/unit/prompts/*`, `tests/integration/prompts/*`.
- `tests/unit/llm/*`, `tests/integration/llm/*`.
- Asset/package/rendering/plugin/browser/editor/theme tests.
- `markitect/finance/tests/*`, profile tests, legacy management tests,
wishlist/project tooling tests.
## First Test Migration Slice
Start with parser/frontmatter fixtures, `tests/test_schema_loader.py`,
`tests/test_issue_7_schema_validation.py`, `tests/test_issue_8_validation_errors.py`,
template parser/substitution tests, and batch discovery tests without database
processors.