Browse Source

Add test case for #4947

Masen Furer 2 months ago
parent
commit
65864d695c
1 changed files with 38 additions and 0 deletions
  1. 38 0
      tests/integration/test_event_chain.py

+ 38 - 0
tests/integration/test_event_chain.py

@@ -143,6 +143,21 @@ def EventChain():
             time.sleep(0.5)
             self.interim_value = "final"
 
+        @rx.event
+        def yield_chain_referential(self):
+            self.event_order.append("yield_chain_referential")
+            yield type(self).event_arg(1)
+            yield type(self).event_arg(2)
+            yield type(self).event_arg(3)
+
+        @rx.event(background=True)
+        async def yield_chain_referential_background(self):
+            async with self:
+                self.event_order.append("yield_chain_referential_background")
+            yield type(self).event_arg(4)
+            yield type(self).event_arg(5)
+            yield type(self).event_arg(6)
+
     app = rx.App(_state=rx.State)
 
     token_input = rx.input(
@@ -219,6 +234,16 @@ def EventChain():
                 id="click_yield_interim_value",
                 on_click=State.click_yield_interim_value,
             ),
+            rx.button(
+                "Yield Chain Referential",
+                id="yield_chain_referential",
+                on_click=State.yield_chain_referential,
+            ),
+            rx.button(
+                "Yield Chain Referential Background",
+                id="yield_chain_referential_background",
+                on_click=State.yield_chain_referential_background,
+            ),
         )
 
     def on_load_return_chain():
@@ -399,6 +424,19 @@ def assert_token(event_chain: AppHarness, driver: WebDriver) -> str:
             "return_dict_type",
             ["click_return_dict_type", "event_arg_repr:{'a': 1}_dict"],
         ),
+        (
+            "yield_chain_referential",
+            ["yield_chain_referential", "event_arg:1", "event_arg:2", "event_arg:3"],
+        ),
+        (
+            "yield_chain_referential_background",
+            [
+                "yield_chain_referential_background",
+                "event_arg:4",
+                "event_arg:5",
+                "event_arg:6",
+            ],
+        ),
     ],
 )
 @pytest.mark.asyncio