11import asyncio
22from typing import Any , Sequence
33
4+ from jsonpointer import set_pointer
5+
46import idom
5- from idom .core .layout import Layout , LayoutEventMessage , LayoutUpdateMessage
6- from idom .core .serve import LayoutUpdateMessage , serve_layout
7+ from idom .core .layout import Layout
8+ from idom .core .serve import serve_layout
9+ from idom .core .types import LayoutUpdateMessage
710from idom .testing import StaticEventHandler
11+ from tests .tooling .common import event_message
812
913
1014EVENT_NAME = "onEvent"
1115STATIC_EVENT_HANDLER = StaticEventHandler ()
1216
1317
14- def test_vdom_json_patch_create_from_apply_to ():
15- update = LayoutUpdateMessage ("" , {"a" : 1 , "b" : [1 ]}, {"a" : 2 , "b" : [1 , 2 ]})
16- patch = LayoutUpdateMessage .create_from (update )
17- result = patch .apply_to ({"a" : 1 , "b" : [1 ]})
18- assert result == {"a" : 2 , "b" : [1 , 2 ]}
19-
20-
2118def make_send_recv_callbacks (events_to_inject ):
2219 changes = []
2320
@@ -46,7 +43,7 @@ async def recv():
4643
4744
4845def make_events_and_expected_model ():
49- events = [LayoutEventMessage (STATIC_EVENT_HANDLER .target , [] )] * 4
46+ events = [event_message (STATIC_EVENT_HANDLER .target )] * 4
5047 expected_model = {
5148 "tagName" : "" ,
5249 "children" : [
@@ -72,7 +69,12 @@ def assert_changes_produce_expected_model(
7269) -> None :
7370 model_from_changes = {}
7471 for update in changes :
75- model_from_changes = update .apply_to (model_from_changes )
72+ if update ["path" ]:
73+ model_from_changes = set_pointer (
74+ model_from_changes , update ["path" ], update ["model" ]
75+ )
76+ else :
77+ model_from_changes .update (update ["model" ])
7678 assert model_from_changes == expected_model
7779
7880
@@ -128,8 +130,8 @@ async def handle_event():
128130 )
129131 )
130132
131- await recv_queue .put (LayoutEventMessage (blocked_handler .target , [] ))
133+ await recv_queue .put (event_message (blocked_handler .target ))
132134 await will_block .wait ()
133135
134- await recv_queue .put (LayoutEventMessage (non_blocked_handler .target , [] ))
136+ await recv_queue .put (event_message (non_blocked_handler .target ))
135137 await second_event_did_execute .wait ()
0 commit comments