From ff655ba34c74b8bd9eb3453858f1f251128ea1ce Mon Sep 17 00:00:00 2001 From: MadeTech Dushan Date: Thu, 14 Oct 2021 12:27:50 +0100 Subject: [PATCH] redefine form model to use filepaths instead --- app/models/form.rb | 7 +++---- app/models/form_handler.rb | 13 +++++++++---- {config => spec/fixtures}/forms/test_form.json | 0 spec/models/form_handler_spec.rb | 6 +++--- 4 files changed, 15 insertions(+), 11 deletions(-) rename {config => spec/fixtures}/forms/test_form.json (100%) diff --git a/app/models/form.rb b/app/models/form.rb index db60b4d93..26ab1ad6e 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -1,11 +1,10 @@ class Form attr_reader :form_definition - def initialize(filename) - form_json = "config/forms/#{filename}.json" - raise "No form definition file exists for given year".freeze unless File.exist?(form_json) + def initialize(form_path) + raise "No form definition file exists for given year".freeze unless File.exist?(form_path) - @form_definition = JSON.parse(File.open(form_json).read) + @form_definition = JSON.parse(File.open(form_path).read) end # Returns a hash with sections as keys diff --git a/app/models/form_handler.rb b/app/models/form_handler.rb index 8576859b2..b0de71250 100644 --- a/app/models/form_handler.rb +++ b/app/models/form_handler.rb @@ -3,6 +3,7 @@ class FormHandler def initialize @forms = {} + get_all_forms end def get_form(form) @@ -11,11 +12,15 @@ class FormHandler end def get_all_forms - Dir.foreach("config/forms") do |filename| - next if (filename == ".") || (filename == "..") + directories = ["config/forms", "spec/fixtures/forms"] + directories.each do |directory| + Dir.foreach(directory) do |filename| + next if (filename == ".") || (filename == "..") - form_name = filename.sub(".json", "") - @forms[form_name] = Form.new(form_name) + form_name = filename.sub(".json", "") + form_path = "#{directory}/#{filename}" + @forms[form_name] = Form.new(form_path) + end end @forms end diff --git a/config/forms/test_form.json b/spec/fixtures/forms/test_form.json similarity index 100% rename from config/forms/test_form.json rename to spec/fixtures/forms/test_form.json diff --git a/spec/models/form_handler_spec.rb b/spec/models/form_handler_spec.rb index 58daaf10b..8e4e53e53 100644 --- a/spec/models/form_handler_spec.rb +++ b/spec/models/form_handler_spec.rb @@ -6,16 +6,16 @@ RSpec.describe FormHandler do form_handler = FormHandler.instance all_forms = form_handler.get_all_forms expect(all_forms.count).to be >= 1 - expect(all_forms["2021_2022"]).to be_a(Form) + expect(all_forms["test_form"]).to be_a(Form) end end describe "Get specific form" do it "should be able to load a specific form" do form_handler = FormHandler.instance - form = form_handler.get_form("2021_2022") + form = form_handler.get_form("test_form") expect(form).to be_a(Form) - expect(form.all_pages.count).to eq(43) + expect(form.all_pages.count).to eq(18) end end