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

6.6 KiB

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.