Files
markitect-tool/tests/test_builtin_extension_catalog.py

84 lines
2.7 KiB
Python

from markitect_tool.extension import builtin_extension_registry
def test_builtin_extension_registry_lists_query_processors_and_backend():
registry = builtin_extension_registry()
ids = [descriptor.id for descriptor in registry.list()]
assert "query.selector" not in ids
assert "selector" in ids
assert "jsonpath" in ids
assert "processor.identity" in ids
assert "processor.uppercase" in ids
assert "processor.include" in ids
assert "backend.local-sqlite" in ids
assert "workflow.markdown-dataflow" in ids
assert "runtime.context" in ids
assert "runtime.form-state" in ids
assert "runtime.assessment" in ids
def test_builtin_processor_descriptors_capture_safety_and_provenance():
registry = builtin_extension_registry()
include = registry.get("processor.include")
uppercase = registry.get("processor.uppercase")
assert include.kind == "processor"
assert include.safety["reads_files"] is True
assert include.provenance_prefix == "processor.include"
assert uppercase.safety == {}
assert uppercase.provenance_prefix == "processor.uppercase"
def test_builtin_local_sqlite_descriptor_exposes_backend_capabilities():
registry = builtin_extension_registry()
descriptor = registry.get("backend.local-sqlite")
assert descriptor.kind == "backend"
assert {capability.id for capability in descriptor.capabilities} >= {
"snapshots",
"ast",
"json",
"fts",
"sql",
"provenance",
}
assert descriptor.cli["commands"] == [
"mkt cache init",
"mkt cache index",
"mkt cache query",
"mkt search",
]
def test_builtin_workflow_descriptor_exposes_cli_and_safety():
registry = builtin_extension_registry()
descriptor = registry.get("workflow.markdown-dataflow")
assert descriptor.kind == "workflow-engine"
assert descriptor.safety["writes_output_files"] is True
assert descriptor.safety["assisted_generation"] == "adapter-only"
assert descriptor.cli["commands"] == [
"mkt workflow inspect",
"mkt workflow plan",
"mkt workflow run",
]
def test_builtin_runtime_descriptors_expose_boundaries():
registry = builtin_extension_registry()
context = registry.get("runtime.context")
form_state = registry.get("runtime.form-state")
assessment = registry.get("runtime.assessment")
assert context.safety["reads_files"] is True
assert "mkt contract check --context" in context.cli["commands"]
assert {capability.id for capability in form_state.capabilities} >= {"forms", "rules"}
assert assessment.kind == "assessment-runner"
assert assessment.safety["provider_calls"] == "adapter-only"