test_tree.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from nicegui import ui
  2. from nicegui.testing import Screen
  3. def test_tree(screen: Screen):
  4. ui.tree([
  5. {'id': 'numbers', 'children': [{'id': '1'}, {'id': '2'}]},
  6. {'id': 'letters', 'children': [{'id': 'A'}, {'id': 'B'}]},
  7. ], label_key='id')
  8. screen.open('/')
  9. screen.should_contain('numbers')
  10. screen.should_contain('letters')
  11. screen.should_not_contain('1')
  12. screen.should_not_contain('2')
  13. screen.should_not_contain('A')
  14. screen.should_not_contain('B')
  15. screen.find_by_class('q-icon').click()
  16. screen.wait(0.5)
  17. screen.should_contain('1')
  18. screen.should_contain('2')
  19. def test_expand_and_collapse_nodes(screen: Screen):
  20. tree = ui.tree([
  21. {'id': 'numbers', 'children': [{'id': '1'}, {'id': '2'}]},
  22. {'id': 'letters', 'children': [{'id': 'A'}, {'id': 'B'}]},
  23. ], label_key='id')
  24. ui.button('Expand all', on_click=tree.expand)
  25. ui.button('Collapse all', on_click=tree.collapse)
  26. ui.button('Expand numbers', on_click=lambda: tree.expand(['numbers']))
  27. ui.button('Collapse numbers', on_click=lambda: tree.collapse(['numbers']))
  28. screen.open('/')
  29. screen.click('Expand all')
  30. screen.wait(0.5)
  31. screen.should_contain('1')
  32. screen.should_contain('2')
  33. screen.should_contain('A')
  34. screen.should_contain('B')
  35. screen.click('Collapse all')
  36. screen.wait(0.5)
  37. screen.should_not_contain('1')
  38. screen.should_not_contain('2')
  39. screen.should_not_contain('A')
  40. screen.should_not_contain('B')
  41. screen.click('Expand numbers')
  42. screen.wait(0.5)
  43. screen.should_contain('1')
  44. screen.should_contain('2')
  45. screen.should_not_contain('A')
  46. screen.should_not_contain('B')
  47. screen.click('Expand all')
  48. screen.click('Collapse numbers')
  49. screen.wait(0.5)
  50. screen.should_not_contain('1')
  51. screen.should_not_contain('2')
  52. screen.should_contain('A')
  53. screen.should_contain('B')