Skip to content

Commit c56bb70

Browse files
committed
adding test
1 parent d6fbc0e commit c56bb70

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

components/dash-core-components/tests/integration/loading/test_loading_component.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -689,3 +689,66 @@ def updateDiv(n_clicks):
689689
dash_dcc.wait_for_text_to_equal("#div-1", "changed")
690690

691691
assert dash_dcc.get_logs() == []
692+
693+
# multiple components, only one triggers the spinner
694+
def test_ldcp017_loading_component_target_components_duplicates(dash_dcc):
695+
696+
lock = Lock()
697+
698+
app = Dash(__name__)
699+
700+
app.layout = html.Div(
701+
[
702+
dcc.Loading(
703+
[
704+
html.Button(id="btn-1"),
705+
html.Button(id="btn-2", children="content 2"),
706+
],
707+
className="loading-1",
708+
target_components={"btn-2": "children"},
709+
debug=True
710+
)
711+
],
712+
id="root",
713+
)
714+
715+
@app.callback(Output("btn-1", "children"), [Input("btn-2", "n_clicks")])
716+
def updateDiv1(n_clicks):
717+
if n_clicks:
718+
with lock:
719+
return "changed 1"
720+
721+
return "content 1"
722+
723+
@app.callback(Output("btn-2", "children", allow_duplicate=True),
724+
[Input("btn-1", "n_clicks")],
725+
prevent_initial_call=True)
726+
def updateDiv2(n_clicks):
727+
if n_clicks:
728+
with lock:
729+
return "changed 2"
730+
731+
return "content 2"
732+
733+
dash_dcc.start_server(app)
734+
735+
dash_dcc.wait_for_text_to_equal("#btn-1", "content 1")
736+
dash_dcc.wait_for_text_to_equal("#btn-2", "content 2")
737+
738+
with lock:
739+
dash_dcc.find_element("#btn-1").click()
740+
741+
dash_dcc.find_element(".loading-1 .dash-spinner")
742+
dash_dcc.wait_for_text_to_equal("#btn-2", "")
743+
744+
dash_dcc.wait_for_text_to_equal("#btn-2", "changed 2")
745+
746+
with lock:
747+
dash_dcc.find_element("#btn-2").click()
748+
spinners = dash_dcc.find_elements(".loading-1 .dash-spinner")
749+
dash_dcc.wait_for_text_to_equal("#btn-1", "")
750+
751+
dash_dcc.wait_for_text_to_equal("#btn-1", "changed 1")
752+
assert spinners == []
753+
754+
assert dash_dcc.get_logs() == []

0 commit comments

Comments
 (0)