generated from coulomb/repo-seed
153 lines
6.6 KiB
Markdown
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.
|