Skip to content

Commit 087a3e0

Browse files
authored
Merge pull request #236 from opf/fix/custom-button-text-regression
Fix Danger Dialog regression: unable to set custom button text
2 parents 1d2a349 + f7cd457 commit 087a3e0

File tree

5 files changed

+53
-0
lines changed

5 files changed

+53
-0
lines changed

.changeset/gold-moles-beg.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@openproject/primer-view-components': patch
3+
---
4+
5+
Fix regression: callers unable to set custom button text

app/components/primer/open_project/danger_dialog.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ def initialize(
7777
@form_wrapper = FormWrapper.new(**form_arguments)
7878
@dialog_id = id.to_s
7979

80+
@confirm_button_text = confirm_button_text
81+
@cancel_button_text = cancel_button_text
82+
8083
@system_arguments = system_arguments
8184
@system_arguments[:id] = @dialog_id
8285
@system_arguments[:classes] = class_names(

previews/primer/open_project/danger_dialog_preview/playground.html.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<%= render(Primer::OpenProject::DangerDialog.new(id: "my-dialog",
2+
title: "My dialog",
23
confirm_button_text: confirm_button_text,
34
cancel_button_text: cancel_button_text)) do |dialog| %>
45
<% dialog.with_show_button { "Click me" } %>

test/components/primer/open_project/danger_dialog_test.rb

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,22 @@ def test_renders_default_button_text
3232
end
3333
end
3434

35+
def test_renders_default_with_custom_button_text
36+
render_inline(Primer::OpenProject::DangerDialog.new(
37+
confirm_button_text: "Do it!",
38+
cancel_button_text: "Don't do it!"
39+
)) do |dialog|
40+
dialog.with_confirmation_message do |message|
41+
message.with_heading(tag: :h2) { "Danger" }
42+
end
43+
end
44+
45+
assert_selector("dialog.DangerDialog") do
46+
assert_selector(".Overlay-footer .Button", text: "Don't do it!")
47+
assert_selector(".Overlay-footer .Button", text: "Do it!")
48+
end
49+
end
50+
3551
def test_renders_with_confirmation_check_box
3652
render_inline(Primer::OpenProject::DangerDialog.new) do |dialog|
3753
dialog.with_confirmation_message do |message|
@@ -62,6 +78,23 @@ def test_renders_with_confirmation_check_box_button_text
6278
end
6379
end
6480

81+
def test_renders_with_confirmation_check_box_custom_button_text
82+
render_inline(Primer::OpenProject::DangerDialog.new(
83+
confirm_button_text: "Do it FOREVER!",
84+
cancel_button_text: "Nah"
85+
)) do |dialog|
86+
dialog.with_confirmation_message do |message|
87+
message.with_heading(tag: :h2) { "Danger" }
88+
dialog.with_confirmation_check_box { "I am sure about this deletion" }
89+
end
90+
end
91+
92+
assert_selector("dialog.DangerDialog") do
93+
assert_selector(".Overlay-footer .Button", text: "Nah")
94+
assert_selector(".Overlay-footer .Button", text: "Do it FOREVER!")
95+
end
96+
end
97+
6598
def test_does_not_render_if_no_confirmation_message_provided
6699
error = assert_raises(ArgumentError) do
67100
render_inline(Primer::OpenProject::DangerDialog.new)

test/system/open_project/danger_dialog_test.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,17 @@ def test_submit_button_enabled_when_confirmation_check_box_checked
3636
end
3737
end
3838

39+
def test_playground_custom_button_text
40+
visit_preview(:playground, confirm_button_text: "Löschen", cancel_button_text: "Abbrechen")
41+
42+
click_button("Click me")
43+
assert_selector(".DangerDialog")
44+
within(".DangerDialog") do
45+
assert_selector("button[data-submit-dialog-id]", text: "Löschen")
46+
assert_selector("button[data-close-dialog-id]", text: "Abbrechen")
47+
end
48+
end
49+
3950
def test_submit_button_submits_form
4051
visit_preview(:with_form_test, route_format: :json)
4152

0 commit comments

Comments
 (0)