Browse Source

Add some unit tests for this

pull/192/head
baarkerlounger 3 years ago
parent
commit
a50dc06dfc
  1. 2
      app/controllers/application_controller.rb
  2. 1
      config/initializers/default_form_builder.rb
  3. 74
      spec/views/form/page_view_spec.rb

2
app/controllers/application_controller.rb

@ -1,6 +1,4 @@
class ApplicationController < ActionController::Base
default_form_builder GOVUKDesignSystemFormBuilder::FormBuilder
def render_not_found
render "errors/not_found", status: :not_found
end

1
config/initializers/default_form_builder.rb

@ -0,0 +1 @@
Rails.application.config.action_view.default_form_builder = GOVUKDesignSystemFormBuilder::FormBuilder

74
spec/views/form/page_view_spec.rb

@ -0,0 +1,74 @@
require "rails_helper"
require_relative "../../request_helper"
RSpec.describe "form/page" do
before do
RequestHelper.stub_http_requests
end
let(:case_log) { FactoryBot.create(:case_log, :in_progress) }
let(:form) { case_log.form }
let(:subsection) { form.get_subsection("income_and_benefits") }
let(:page) { form.get_page("net_income") }
let(:question) { page.questions.find { |q| q.id == "earnings" } }
def assign_attributes(object, attrs)
attrs.each_pair do |attr, value|
object.public_send("#{attr}=", value)
end
end
context "given a question with extra guidance" do
let(:expected_guidance) { /What counts as income?/ }
before do
assign(:case_log, case_log)
assign(:page, page)
assign(:subsection, subsection)
assign_attributes(question, attribs)
render
end
context "with radio type" do
let(:attribs) { { type: "radio", answer_options: {"1": "A", "2": "B"} } }
it "renders the guidance partial for radio questions" do
expect(rendered).to match(expected_guidance)
end
end
context "with text type" do
let(:attribs) { { type: "text", answer_options: nil } }
it "renders the guidance partial for text questions" do
expect(rendered).to match(expected_guidance)
end
end
context "with numeric type" do
let(:attribs) { { type: "numeric", answer_options: nil } }
it "renders the guidance partial for numeric questions" do
expect(rendered).to match(expected_guidance)
end
end
context "with select type" do
let(:attribs) { { type: "select", answer_options: {"1": "A", "2": "B"} } }
it "renders the guidance partial for select questions" do
expect(rendered).to match(expected_guidance)
end
end
context "with checkbox type" do
let(:attribs) { { type: "checkbox", answer_options: {"1": "A", "2": "B"} } }
it "renders the guidance partial for checkbox questions" do
expect(rendered).to match(expected_guidance)
end
end
context "with date type" do
let(:attribs) { { type: "date", answer_options: nil } }
it "renders the guidance partial for date questions" do
expect(rendered).to match(expected_guidance)
end
end
end
end
Loading…
Cancel
Save