Browse Source

Refactor specs

pull/22/head
baarkerlounger 3 years ago
parent
commit
36ba98a9ae
  1. 70
      spec/features/case_log_spec.rb

70
spec/features/case_log_spec.rb

@ -3,7 +3,16 @@ RSpec.describe "Test Features" do
let!(:case_log) { FactoryBot.create(:case_log, :in_progress) }
let(:id) { case_log.id }
let(:status) { case_log.status }
pages = %w[tenant_code tenant_age tenant_gender tenant_ethnic_group tenant_nationality tenant_economic_status household_number_of_other_members]
question_answers = {
tenant_code: {type: "text", answer: "BZ737"},
tenant_age: {type: "numeric", answer: 25},
tenant_gender: {type: "radio", answer: "1"},
tenant_ethnic_group: {type: "radio", answer: "2"},
tenant_nationality: {type: "radio", answer: "0"},
tenant_economic_status: {type: "radio", answer: "4"},
household_number_of_other_members: {type: "numeric", answer: 2},
}
describe "Create new log" do
it "redirects to the task list for the new log" do
@ -40,47 +49,23 @@ RSpec.describe "Test Features" do
end
it "updates model attributes correctly for each question" do
visit("/case_logs/#{id}/tenant_code")
fill_in(:tenant_code, with: "BZ737")
expect { click_button("Save and continue") }.to change {
case_log.reload.tenant_code
}.from("TH356").to("BZ737")
visit("/case_logs/#{id}/tenant_age")
fill_in(:tenant_age, with: 25)
expect { click_button("Save and continue") }.to change {
case_log.reload.tenant_age
}.from(NilClass).to(25)
visit("/case_logs/#{id}/tenant_gender")
choose("tenant-gender-1-field")
expect { click_button("Save and continue") }.to change {
case_log.reload.tenant_gender
}.from(NilClass).to("1")
visit("/case_logs/#{id}/tenant_ethnic_group")
choose("tenant-ethnic-group-2-field")
expect { click_button("Save and continue") }.to change {
case_log.reload.tenant_ethnic_group
}.from(NilClass).to("2")
visit("/case_logs/#{id}/tenant_nationality")
choose("tenant-nationality-0-field")
expect { click_button("Save and continue") }.to change {
case_log.reload.tenant_nationality
}.from(NilClass).to("0")
visit("/case_logs/#{id}/tenant_economic_status")
choose("tenant-economic-status-4-field")
expect { click_button("Save and continue") }.to change {
case_log.reload.tenant_economic_status
}.from(NilClass).to("4")
visit("/case_logs/#{id}/household_number_of_other_members")
fill_in(:household_number_of_other_members, with: 2)
expect { click_button("Save and continue") }.to change {
case_log.reload.household_number_of_other_members
}.from(NilClass).to(2)
question_answers.each do |question, hsh|
type = hsh[:type]
answer = hsh[:answer]
original_value = case_log.send(question)
visit("/case_logs/#{id}/#{question}")
case type
when "text"
fill_in("#{question}", with: answer)
when "radio"
choose("#{question.to_s.gsub('_', '-')}-#{answer}-field")
else
fill_in("#{question}", with: answer)
end
expect { click_button("Save and continue") }.to change {
case_log.reload.send("#{question}")
}.from(original_value).to(answer)
end
end
end
@ -102,6 +87,7 @@ RSpec.describe "Test Features" do
describe "Form flow is correct" do
context "given an ordered list of pages" do
it "leads to the next one in the correct order" do
pages = question_answers.keys
pages[0..-2].each_with_index do |val, index|
visit("/case_logs/#{id}/#{val}")
click_button("Save and continue")

Loading…
Cancel
Save