test_notification.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from nicegui import ui
  2. from nicegui.testing import Screen
  3. def test_notification(screen: Screen):
  4. ui.button('Notify', on_click=lambda: ui.notification('Hi!'))
  5. screen.open('/')
  6. screen.click('Notify')
  7. screen.should_contain('Hi!')
  8. def test_close_button(screen: Screen):
  9. b = ui.button('Notify', on_click=lambda: ui.notification('Hi!', timeout=None, close_button=True))
  10. screen.open('/')
  11. screen.click('Notify')
  12. screen.should_contain('Hi!')
  13. assert len(b.client.layout.default_slot.children) == 2
  14. screen.wait_for('Close')
  15. screen.wait(0.1) # NOTE: wait for button to become clickable
  16. screen.click('Close')
  17. screen.wait(1.5)
  18. screen.should_not_contain('Hi!')
  19. assert len(b.client.layout.default_slot.children) == 1
  20. def test_dismiss(screen: Screen):
  21. n = ui.notification('Hi!', timeout=None)
  22. b = ui.button('Dismiss', on_click=n.dismiss)
  23. screen.open('/')
  24. screen.should_contain('Hi!')
  25. assert len(b.client.layout.default_slot.children) == 2
  26. screen.wait(1)
  27. screen.click('Dismiss')
  28. screen.wait(1.5)
  29. screen.should_not_contain('Hi!')
  30. assert len(b.client.layout.default_slot.children) == 1