Fix: use 'refreshing' reactive to avoid Textual built-in loading dots
Widget.loading is a Textual built-in reactive that swaps the widget for the default dots spinner. Our dashboard used the same name, so setting it True activated the built-in indicator (dots) instead of the dog loader. Renamed to 'refreshing' and assert app.screen.loading stays False in tests.
This commit is contained in:
@@ -317,9 +317,12 @@ async def test_dog_loader_hidden_when_idle(tmp_path) -> None:
|
||||
await pilot.pause()
|
||||
loader = app.screen.query_one("#dog-loader", DogLoader)
|
||||
assert not loader.has_class("visible")
|
||||
assert loader.display is False
|
||||
assert not loader.running
|
||||
line = app.screen.query_one("#progress-line", Static)
|
||||
assert str(line.render()) == ""
|
||||
# встроенный loading Textual не должен активироваться (иначе — точки)
|
||||
assert app.screen.loading is False
|
||||
|
||||
|
||||
async def test_dog_loader_shown_during_refresh(tmp_path) -> None:
|
||||
@@ -339,13 +342,16 @@ async def test_dog_loader_shown_during_refresh(tmp_path) -> None:
|
||||
await pilot.pause()
|
||||
loader = app.screen.query_one("#dog-loader", DogLoader)
|
||||
assert loader.has_class("visible")
|
||||
assert loader.display is True
|
||||
assert loader.running
|
||||
line = app.screen.query_one("#progress-line", Static)
|
||||
assert "обновляет статистику" in str(line.render())
|
||||
assert app.screen.loading is False
|
||||
|
||||
release.set()
|
||||
await pilot.pause(0.1)
|
||||
assert not loader.has_class("visible")
|
||||
assert loader.display is False
|
||||
assert not loader.running
|
||||
assert str(line.render()) == ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user