12 changed files with 70 additions and 10 deletions
@ -0,0 +1,22 @@
|
||||
class FormHandler |
||||
include Singleton |
||||
|
||||
def initialize |
||||
@forms = {} |
||||
end |
||||
|
||||
def get_form(form) |
||||
# binding.pry |
||||
@forms[form] ||= Form.new(form) |
||||
end |
||||
|
||||
def get_all_forms |
||||
Dir.foreach("config/forms") do |filename| |
||||
next if (filename == ".") || (filename == "..") |
||||
|
||||
form_name = filename.sub(".json", "") |
||||
@forms[form_name] = Form.new(form_name) |
||||
end |
||||
@forms |
||||
end |
||||
end |
@ -0,0 +1,27 @@
|
||||
require "rails_helper" |
||||
|
||||
RSpec.describe FormHandler do |
||||
describe "Get all forms" do |
||||
it "should be able to load all the forms" 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) |
||||
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") |
||||
expect(form).to be_a(Form) |
||||
expect(form.all_pages.count).to eq(43) |
||||
end |
||||
end |
||||
|
||||
it "should only load the form once at boot time" do |
||||
form_handler = FormHandler.instance |
||||
expect(Form).not_to receive(:new).with("test_form") |
||||
expect(form_handler.get_form("test_form")).to be_a(Form) |
||||
end |
||||
end |
Loading…
Reference in new issue