Skip to content

Commit e3a52a6

Browse files
committed
Test label for generation when using namespaces
1 parent b6b4909 commit e3a52a6

1 file changed

Lines changed: 54 additions & 0 deletions

File tree

test/lib/primer/forms/input_test.rb

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,33 @@ def test_removes_model_scope_from_name_and_id
107107
assert_selector "label[for=ultimate_answer]"
108108
end
109109

110+
def test_removes_model_scope_from_name_and_id_using_namespace
111+
model = DeepThought.new(42)
112+
113+
render_in_view_context do
114+
primer_form_with(model: model, url: "/foo", namespace: "baz") do |f|
115+
render(NoModelScopeForm.new(f))
116+
end
117+
end
118+
119+
assert_selector "input#baz_ultimate_answer[name=ultimate_answer]"
120+
end
121+
122+
def test_label_removes_model_scope_from_name_and_id_using_namespace
123+
# See upstream issue: https://github.com/rails/rails/pull/51237
124+
skip "Broken in Rails versions prior to 8.0.3" unless Rails::VERSION::STRING >= "8.0.3"
125+
126+
model = DeepThought.new(42)
127+
128+
render_in_view_context do
129+
primer_form_with(model: model, url: "/foo", namespace: "baz") do |f|
130+
render(NoModelScopeForm.new(f))
131+
end
132+
end
133+
134+
assert_selector "label[for=baz_ultimate_answer]"
135+
end
136+
110137
def test_uses_given_id
111138
model = DeepThought.new(42)
112139

@@ -119,4 +146,31 @@ def test_uses_given_id
119146
assert_selector "input#foobar[name=ultimate_answer]"
120147
assert_selector "label[for=foobar]"
121148
end
149+
150+
def test_uses_given_id_and_namespace
151+
model = DeepThought.new(42)
152+
153+
render_in_view_context do
154+
primer_form_with(model: model, url: "/foo", namespace: "baz") do |f|
155+
render(NoModelScopeForm.new(f, id: "foobar"))
156+
end
157+
end
158+
159+
assert_selector "input#baz_foobar[name=ultimate_answer]"
160+
end
161+
162+
def test_label_uses_given_id_and_namespace
163+
# See upstream issue: https://github.com/rails/rails/pull/51237
164+
skip "Broken in Rails versions prior to 8.0.3" unless Rails::VERSION::STRING >= "8.0.3"
165+
166+
model = DeepThought.new(42)
167+
168+
render_in_view_context do
169+
primer_form_with(model: model, url: "/foo", namespace: "baz") do |f|
170+
render(NoModelScopeForm.new(f, id: "foobar"))
171+
end
172+
end
173+
174+
assert_selector "label[for=baz_foobar]"
175+
end
122176
end

0 commit comments

Comments
 (0)