import queries.crud from enums import CounterType def test_initial_state(app): app.run() assert not app.exception assert not app.error assert len(app.header) == 0 # No counter currently present def test_add_counter(app): app.run() # Open new counter dialog app.button(key="new_counter_button").click().run() # Fill in details and submit app.text_input(key="new_counter_title").set_value("Walk") app.selectbox(key='new_counter_type').select(CounterType.DAILY.name) app.radio(key='new_counter_color_selector').set_value("020122") app.button(key="create_counter_submit_btn").click() app.run() assert not app.exception assert not app.error assert len(app.text_input) == 0 # dialog closed, back in the main screen # Simulate button listener due to bug https://github.com/streamlit/streamlit/issues/9786 queries.crud.create_counter("Walk", CounterType.DAILY, "020122") app.run() assert len(app.header) == 1 # A new counter was added assert app.header[0].value == ":material/calendar_clock: Walk" def test_remove_counter(app): # Create a counter to remove queries.crud.create_counter("Remove me", CounterType.SIMPLE, "020122") app.run() assert not app.exception assert not app.error assert len(app.header) == 1 # One counter exists # Remove the counter app.button("remove_counter_1").click().run() # Confirmation assert app.subheader[0].value == 'Are you sure?' app.button(key="remove_counter_submit_btn").click() app.run() assert len(app.text_input) == 0 # dialog closed, back in the main screen # Simulate button listener due to bug https://github.com/streamlit/streamlit/issues/9786 queries.crud.remove_counter(1) app.run() assert len(app.header) == 0 # No counter exists def test_increment_counter(app): # Create a counter to increment queries.crud.create_counter("Remove me", CounterType.SIMPLE, "020122") app.run() assert not app.exception assert not app.error assert len(app.header) == 1 # One counter exists assert "0 times" in app.markdown[0].value # Counter is 0 app.button(key="increment_counter_1").click().run() assert "1 times" in app.markdown[0].value # Counter is 1