4 changed files with 69 additions and 14 deletions
@ -0,0 +1,20 @@ |
|||||||
|
module LocationsHelper |
||||||
|
def mobility_type_selection |
||||||
|
mobility_types_to_display = Location.mobility_types.excluding("Property designed to accessible general standard", "Missing") |
||||||
|
mobility_types_to_display.map { |key, value| OpenStruct.new(id: key, name: key.to_s.humanize, description: I18n.t("questions.descriptions.location.mobility_type.#{value}")) } |
||||||
|
end |
||||||
|
|
||||||
|
def another_location_selection |
||||||
|
selection_options(%w[Yes No]) |
||||||
|
end |
||||||
|
|
||||||
|
def type_of_units_selection |
||||||
|
selection_options(Location.type_of_units) |
||||||
|
end |
||||||
|
|
||||||
|
def selection_options(resource) |
||||||
|
return [] if resource.blank? |
||||||
|
|
||||||
|
resource.map { |key, _| OpenStruct.new(id: key, name: key.to_s.humanize) } |
||||||
|
end |
||||||
|
end |
@ -0,0 +1,49 @@ |
|||||||
|
require "rails_helper" |
||||||
|
|
||||||
|
RSpec.describe LocationsHelper do |
||||||
|
describe "mobility type selection" do |
||||||
|
expected_selection = [OpenStruct.new(id: "Wheelchair-user standard", name: "Wheelchair-user standard", description: "The majority of units are suitable for someone who uses a wheelchair and offer the full use of all rooms and facilities."), |
||||||
|
OpenStruct.new(id: "Fitted with equipment and adaptations", name: "Fitted with equipment and adaptations", description: "For example, the majority of units have been fitted with stairlifts, ramps, level access showers or grab rails."), |
||||||
|
OpenStruct.new(id: "None", name: "None", description: "The majority of units are not designed to wheelchair-user standards or fitted with any equipment and adaptations.")] |
||||||
|
it "returns correct selection to display" do |
||||||
|
expect(mobility_type_selection).to eq(expected_selection) |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
describe "another location selection" do |
||||||
|
it "returns correct selection to display" do |
||||||
|
expected_selection = [OpenStruct.new(id: "Yes", name: "Yes"), OpenStruct.new(id: "No", name: "No")] |
||||||
|
expect(another_location_selection).to eq(expected_selection) |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
describe "type of units selection" do |
||||||
|
it "returns correct selection to display" do |
||||||
|
expected_selection = [OpenStruct.new(id: "Bungalow", name: "Bungalow"), |
||||||
|
OpenStruct.new(id: "Self-contained flat or bedsit", name: "Self-contained flat or bedsit"), |
||||||
|
OpenStruct.new(id: "Self-contained flat or bedsit with common facilities", name: "Self-contained flat or bedsit with common facilities"), |
||||||
|
OpenStruct.new(id: "Self-contained house", name: "Self-contained house"), |
||||||
|
OpenStruct.new(id: "Shared flat", name: "Shared flat"), |
||||||
|
OpenStruct.new(id: "Shared house or hostel", name: "Shared house or hostel")] |
||||||
|
expect(type_of_units_selection).to eq(expected_selection) |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
describe "selection options" do |
||||||
|
it "returns empty array for nil" do |
||||||
|
expect(selection_options(nil)).to eq([]) |
||||||
|
end |
||||||
|
|
||||||
|
it "returns empty array for empty string" do |
||||||
|
expect(selection_options("")).to eq([]) |
||||||
|
end |
||||||
|
|
||||||
|
it "returns empty array for empty object" do |
||||||
|
expect(selection_options({})).to eq([]) |
||||||
|
end |
||||||
|
|
||||||
|
it "can map a resource with values" do |
||||||
|
expect(selection_options(%w[example])).to eq([OpenStruct.new(id: "example", name: "Example")]) |
||||||
|
end |
||||||
|
end |
||||||
|
end |
Loading…
Reference in new issue