Skip to content
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions panel/models/card.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,8 @@ export class CardView extends ColumnView {
header.r_after_render()
}

if (this.model.collapsed) {
return
}

for (const child_view of this.child_views.slice(1)) {
child_view.model.visible = !this.model.collapsed
this.shadow_el.appendChild(child_view.el)
child_view.render()
child_view.r_after_render()
Expand Down
1 change: 1 addition & 0 deletions panel/tests/test_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -826,6 +826,7 @@ def cb(event):
wait_until(lambda: bool(called))


@pytest.mark.flaky(max_runs=3)
def test_server_thread_pool_change_event(server_implementation, threads):
button = Button(name='Click')
button2 = Button(name='Click')
Expand Down
26 changes: 13 additions & 13 deletions panel/tests/ui/layout/test_accordion.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ def accordion_components():
return d0, d1


def is_collapsed(card_object, card_content):
def is_collapsed(card_object, card_content, page):
expect(card_object.locator('svg')).to_have_class("icon icon-tabler icons-tabler-outline icon-tabler-chevron-right")
expect(card_object).not_to_contain_text(card_content)
expect(page.get_by_text(card_content)).to_be_hidden()
return True


Expand Down Expand Up @@ -51,8 +51,8 @@ def test_accordion_default(page, accordion_components):
expect(d1_object).to_contain_text(d1.name)

# cards are collapsed and their content is hidden by default
assert is_collapsed(card_object=d0_object, card_content=d0.text)
assert is_collapsed(card_object=d1_object, card_content=d1.text)
assert is_collapsed(card_object=d0_object, card_content=d0.text, page=page)
assert is_collapsed(card_object=d1_object, card_content=d1.text, page=page)

# cards can be expanded simultaneously
d0_object.click()
Expand Down Expand Up @@ -94,7 +94,7 @@ def test_accordion_active(page, accordion_components):
# second card is collapsed and its content is hidden
d1_object = accordion_elements.nth(1)
d1_object.wait_for()
assert is_collapsed(card_object=d1_object, card_content=d1.text)
assert is_collapsed(card_object=d1_object, card_content=d1.text, page=page)


def test_accordion_objects(page, accordion_components):
Expand Down Expand Up @@ -127,11 +127,11 @@ def test_accordion_toggle(page, accordion_components):
# click to expand the first card, 2nd card is collapsed
d0_object.click()
assert is_expanded(card_object=d0_object, card_content=d0.text)
assert is_collapsed(card_object=d1_object, card_content=d1.text)
assert is_collapsed(card_object=d1_object, card_content=d1.text, page=page)

# click to expand the 2nd card, 1st card is collapsed
d1_object.click()
assert is_collapsed(card_object=d0_object, card_content=d0.text)
assert is_collapsed(card_object=d0_object, card_content=d0.text, page=page)
assert is_expanded(card_object=d1_object, card_content=d1.text)


Expand All @@ -150,15 +150,15 @@ def test_accordion_append(page, accordion_components):
expect(accordion_elements).to_have_count(1)
# collapsed by default
d0_object = accordion_elements.nth(0)
assert is_collapsed(card_object=d0_object, card_content=d0.text)
assert is_collapsed(card_object=d0_object, card_content=d0.text, page=page)

# add new element d1
accordion.append(d1)
expect(accordion_elements).to_have_count(2)
d1_object = accordion_elements.nth(1)
# both cards are collapsed
assert is_collapsed(card_object=d0_object, card_content=d0.text)
assert is_collapsed(card_object=d1_object, card_content=d1.text)
assert is_collapsed(card_object=d0_object, card_content=d0.text, page=page)
assert is_collapsed(card_object=d1_object, card_content=d1.text, page=page)


def test_accordion_extend(page, accordion_components):
Expand All @@ -179,9 +179,9 @@ def test_accordion_extend(page, accordion_components):
d0_object = accordion_elements.nth(0)
d1_object = accordion_elements.nth(1)
d2_object = accordion_elements.nth(2)
assert is_collapsed(card_object=d0_object, card_content=d0.text)
assert is_collapsed(card_object=d1_object, card_content=d1.text)
assert is_collapsed(card_object=d2_object, card_content=d2.text)
assert is_collapsed(card_object=d0_object, card_content=d0.text, page=page)
assert is_collapsed(card_object=d1_object, card_content=d1.text, page=page)
assert is_collapsed(card_object=d2_object, card_content=d2.text, page=page)


def test_accordion_clear(page, accordion_components):
Expand Down
19 changes: 19 additions & 0 deletions panel/tests/ui/layout/test_card.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,3 +201,22 @@

wait_until(lambda: w2.value == 'F', page)
assert not card.collapsed


def test_card_child_visible(page, card_components):
w1, w2 = card_components
w1.visible = False
card = Card(w1, header=Row(w2), collapsed=True)

serve_component(page, card)

text_input = page.locator('.bk-Slider')
expect(text_input).not_to_be_visible()

w1.visible = True

expect(text_input).not_to_be_visible()

Check failure on line 218 in panel/tests/ui/layout/test_card.py

View workflow job for this annotation

GitHub Actions / ui:test-ui:macos-latest

test_card_child_visible AssertionError: Locator expected not to be visible Actual value: visible Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for locator(".bk-Slider") 9 × locator resolved to <div class="bk-Slider class_w1"></div> - unexpected value "visible"

Check failure on line 218 in panel/tests/ui/layout/test_card.py

View workflow job for this annotation

GitHub Actions / ui:test-ui:ubuntu-latest

test_card_child_visible AssertionError: Locator expected not to be visible Actual value: visible Call log: - Expect "to_be_visible" with timeout 5000ms - waiting for locator(".bk-Slider") 9 × locator resolved to <div class="bk-Slider class_w1"></div> - unexpected value "visible"
Comment thread
philippjfr marked this conversation as resolved.
Outdated

card.collapsed = False

expect(text_input).to_be_visible()
Loading