From 7d9a23cdcd9cc0eeb6f98cb1371ede65d19850b2 Mon Sep 17 00:00:00 2001 From: uu59 Date: Tue, 13 Jan 2015 15:13:47 +0900 Subject: [PATCH] Fix SettingHelper for hidden field --- app/helpers/settings_helper.rb | 2 +- .../fluentd/setting/out_forward_spec.rb | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 spec/features/fluentd/setting/out_forward_spec.rb diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index 6f9d98c..ae5239b 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -12,7 +12,7 @@ module SettingsHelper def field_resolver(type, html, form, key, opts) case type when :hidden - return form.hidden_field(key) + html << form.hidden_field(key) when :boolean, :flag boolean_field(html, form, key, opts) when :choice diff --git a/spec/features/fluentd/setting/out_forward_spec.rb b/spec/features/fluentd/setting/out_forward_spec.rb new file mode 100644 index 0000000..170e483 --- /dev/null +++ b/spec/features/fluentd/setting/out_forward_spec.rb @@ -0,0 +1,40 @@ +require "spec_helper" + +describe "out_forward", stub: :daemon do + before { login_with exists_user } + + let(:type) { "out_forward" } + let(:page_url) { send("daemon_setting_#{type}_path") } + let(:form_values) { { + Match: "*", + Name: "name", + Host: "host", + Port: "9999", + Path: "/dev/null", + } } + + it "Updated config after submit" do + daemon.agent.config.should_not include("type file") # out_forward's Secondary hidden field + form_values.each_pair do |k,v| + daemon.agent.config.should_not include(v) + end + visit page_url + within("#new_fluentd_setting_#{type}") do + form_values.each_pair do |k,v| + fill_in k, with: v + end + end + click_button I18n.t("fluentd.common.finish") + form_values.each_pair do |k,v| + daemon.agent.config.should include(v) + end + daemon.agent.config.should include("type file") # out_forward's Secondary hidden field + end + + it "Click to append Server fields", js: true do + visit page_url + all(".js-multiple").length.should == 1 + first(".js-multiple .js-append").click + all(".js-multiple").length.should == 2 + end +end