12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- from typing import Optional
- from nicegui import ui
- from nicegui.testing import Screen
- def test_teleport(screen: Screen):
- ui.card().classes('card')
- def create_teleport():
- with ui.teleport('.card'):
- ui.label('Hello')
- ui.button('create', on_click=create_teleport)
- screen.open('/')
- screen.click('create')
- assert screen.find_by_css('.card > div').text == 'Hello'
- def test_teleport_with_element(screen: Screen):
- card = ui.card().classes('card')
- def create_teleport():
- with ui.teleport(card):
- ui.label('Hello')
- ui.button('create', on_click=create_teleport)
- screen.open('/')
- screen.click('create')
- assert screen.find_by_css('.card > div').text == 'Hello'
- def test_update(screen: Screen):
- teleport: Optional[ui.teleport] = None
- card = ui.card().classes('card')
- def create_teleport():
- nonlocal teleport
- with ui.teleport('.card') as teleport:
- ui.label('Hello')
- ui.button('create', on_click=create_teleport)
- def rebuild_card():
- card.delete()
- ui.card().classes('card')
- teleport.update() # type: ignore
- ui.button('rebuild card', on_click=rebuild_card)
- screen.open('/')
- screen.click('create')
- screen.should_contain('Hello')
- screen.click('rebuild card')
- assert screen.find_by_css('.card > div').text == 'Hello'
|