from sir import NodeKind, SemanticNode, SirSnapshot, SourceRef, snapshot_from_json, snapshot_to_json def test_snapshot_serialization_roundtrip(): node = SemanticNode( semantic_id="module.demo", lineage_id="lineage.module.demo", kind=NodeKind.MODULE, name="Module", qualified_name="Module", source_ref=SourceRef(source_path="module.bsl"), ) snapshot = SirSnapshot(snapshot_id="snapshot.demo", project_id="demo", nodes=[node]) data = snapshot_to_json(snapshot) restored = snapshot_from_json(data) assert restored.snapshot_id == snapshot.snapshot_id assert restored.nodes[0].lineage_id == node.lineage_id