Skip to content

Commit b3468c2

Browse files
author
Nils Henning
committed
form working with partials
1 parent 69ccfea commit b3468c2

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
require_relative "../../../../support/utils"
2+
require_relative "../../../../support/test_controller"
3+
require_relative "support/form_test_controller"
4+
require_relative "support/model_form_test_controller"
5+
include Utils
6+
7+
describe "form component", type: :feature, js: true do
8+
9+
before :all do
10+
Rails.application.routes.append do
11+
scope "form_text_input_error_spec" do
12+
post '/input_error_failure_form_test/:id', to: 'form_test#failure_submit', as: 'input_error_failure_form_test'
13+
end
14+
end
15+
Rails.application.reload_routes!
16+
end
17+
18+
before :each do
19+
allow_any_instance_of(FormTestController).to receive(:expect_params)
20+
end
21+
22+
it "should work with partials" do
23+
class ExamplePage < Matestack::Ui::Page
24+
def response
25+
form form_config, :include do
26+
form_input id: "text-input", key: :foo, type: :text
27+
input_partial
28+
form_submit do
29+
button text: "Submit me!"
30+
end
31+
end
32+
end
33+
34+
def input_partial
35+
form_input id: "input-partial", key: :bar, type: :text
36+
inception
37+
end
38+
39+
def inception
40+
form_input id: "inception", key: :baz, type: :text
41+
end
42+
43+
def form_config
44+
{
45+
for: :my_object,
46+
method: :post,
47+
path: :input_error_failure_form_test_path,
48+
params: {
49+
id: 42
50+
}
51+
}
52+
end
53+
end
54+
55+
visit "/example"
56+
expect_any_instance_of(FormTestController).to receive(:expect_params)
57+
.with(
58+
hash_including(my_object: {
59+
bar: 'from partial',
60+
baz: 'partial in partial',
61+
foo: 'text',
62+
}
63+
)
64+
)
65+
expect(page).to have_selector('#text-input')
66+
expect(page).to have_selector('#input-partial')
67+
expect(page).to have_selector('#inception')
68+
fill_in "text-input", with: "text"
69+
fill_in "input-partial", with: "from partial"
70+
fill_in "inception", with: "partial in partial"
71+
click_button "Submit me!"
72+
end
73+
74+
end

0 commit comments

Comments
 (0)