Browse Source

extract numeric html attributes to a helper

pull/34/head
Kat 4 years ago
parent
commit
2aed0841bc
  1. 12
      app/helpers/numeric_questions_helper.rb
  2. 0
      app/javascript/controllers/numeric_question_controller.js
  3. 5
      app/views/form/_numeric_question.html.erb
  4. 1
      spec/features/case_log_spec.rb
  5. 21
      spec/helpers/numeric_questions_helper_spec.rb

12
app/helpers/numeric_questions_helper.rb

@ -0,0 +1,12 @@
module NumericQuestionsHelper
def numeric_question_html_attributes(question)
return {} if question["fields-to-add"].blank? || question["result-field"].blank?
{
"data-controller": "numeric-question",
"data-action": "numeric-question#calculateFields",
"data-affected": "#{question['result-field'].to_s.dasherize}-field",
"data-calculated": question["fields-to-add"].to_json,
}
end
end

0
app/javascript/controllers/number_question_controller.js → app/javascript/controllers/numeric_question_controller.js

5
app/views/form/_numeric_question.html.erb

@ -3,8 +3,5 @@
label: { text: question["header"].html_safe, size: "l"},
min: question["min"], max: question["max"], step: question["step"],
width: 20, :readonly => question["readonly"],
:"data-controller" => "number-question",
:"data-action"=> "number-question#calculateFields",
:"data-affected" => "#{question["result-field"].to_s.dasherize}-field",
:"data-calculated" => question["fields-to-add"].to_json
**numeric_question_html_attributes(question)
%>

1
spec/features/case_log_spec.rb

@ -130,7 +130,6 @@ RSpec.describe "Test Features" do
fill_in("support_charge", with: 4)
expect(page).to have_field("total-charge-field", with: "10")
end
end
describe "Back link directs correctly" do

21
spec/helpers/numeric_questions_helper_spec.rb

@ -0,0 +1,21 @@
require "rails_helper"
RSpec.describe NumericQuestionsHelper do
let(:form) { Form.new(2021, 2022) }
let(:questions) { form.questions_for_page("rent") }
describe "html attributes" do
it "returns empty hash if fields-to-add or result-field are empty " do
expect(numeric_question_html_attributes(questions["total_charge"])).to eq({})
end
it "returns html attributes if fields-to-add or result-field are not empty " do
expect(numeric_question_html_attributes(questions["basic_rent"])).to eq({
"data-controller": "numeric-question",
"data-action": "numeric-question#calculateFields",
"data-affected": "#{questions['basic_rent']['result-field'].to_s.dasherize}-field",
"data-calculated": questions["basic_rent"]["fields-to-add"].to_json,
})
end
end
end
Loading…
Cancel
Save