File size: 1,008 Bytes
14184e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from app.services.graph_state import GraphStateManager
from app.schemas.graph import NodeData, NodePatch


def test_apply_patch_updates_status():
    mgr = GraphStateManager()
    node = NodeData(id="n1", label="Entropy")
    mgr.add_node("s1", node)
    patched = mgr.apply_node_patch("s1", NodePatch(node_id="n1", status="completed"))
    assert patched.status == "completed"


def test_new_children_appended():
    mgr = GraphStateManager()
    mgr.add_node("s1", NodeData(id="n1", label="Root"))
    mgr.apply_node_patch("s1", NodePatch(node_id="n1", new_children=["n2", "n3"]))
    node = mgr.get_node("s1", "n1")
    assert "n2" in node.children_ids
    assert "n3" in node.children_ids


def test_duplicate_children_not_added():
    mgr = GraphStateManager()
    mgr.add_node("s1", NodeData(id="n1", label="Root", children_ids=["n2"]))
    mgr.apply_node_patch("s1", NodePatch(node_id="n1", new_children=["n2", "n3"]))
    node = mgr.get_node("s1", "n1")
    assert node.children_ids.count("n2") == 1