diff --git a/app/helpers/json_schema_validation.rb b/app/helpers/json_schema_validation.rb index 3e46be8e0..329186831 100644 --- a/app/helpers/json_schema_validation.rb +++ b/app/helpers/json_schema_validation.rb @@ -2,35 +2,45 @@ require "json-schema" require "json" # "form_type": "lettings", -# "start_year": 2021, -# "end_year": 2022, -# "sections": { -# "about_this_log": { -# "label": "About this log", -# "subsections": { -# "about_this_log": { -# "label": "About this log", -# "pages": { - # "tenant_code": { - # "header": "", - # "description": "", - # "questions": { - # "tenant_code": { - # "check_answer_label": "Tenant code", - # "header": "What is the tenant code?", - # "hint_text": "", - # "type": "text" - # } - # } - # }, +#start_year": 2021, +#end_year": 2022, +#sections": { +# about_this_log": { +# label": "About this log", +# subsections": { +# about_this_log": { +# label": "About this log", +# pages": { +# "tenant_code": { +# header": "", +# description": "", +# questions": { +# tenant_code": { +# check_answer_label": "Tenant code", +# header": "What is the tenant code?", +# hint_text": "", +# type": "text" +# } +# } +# } + +def get_all_form_paths(directories) + form_paths = [] + directories.each do |directory| + Dir.glob("#{directory}/*.json").each do |form_path| + form_paths.push(form_path) + end + end + form_paths +end + begin - path = "config/forms/schema/generic.json" - # path = "config/forms/schema/2021_2022.json" + # path = "config/forms/schema/generic.json" + path = "config/forms/schema/2021_2022.json" file = File.open(path) schema = JSON.parse(file.read) - metaschema = JSON::Validator.validator_for_name("draft4").metaschema if JSON::Validator.validate(metaschema, schema) @@ -43,28 +53,21 @@ begin path = "spec/fixtures/forms/test_validator.json" # path = "config/forms/2021_2022.json" - file = File.open(path) - data = JSON.parse(file.read) + directories = ["config/forms", "spec/fixtures/forms"] - puts JSON::Validator.validate(schema, data) + get_all_form_paths(directories).each do |path| + puts path + file = File.open(path) + data = JSON.parse(file.read) - puts JSON::Validator.fully_validate(schema, data, :strict => true) + puts JSON::Validator.validate(schema, data) - begin - JSON::Validator.validate!(schema, data) - rescue JSON::Schema::ValidationError => e - e.message - end + puts JSON::Validator.fully_validate(schema, data, :strict => true) - # def get_all_form_paths - # form_paths = [] - # directories = ["config/forms", "spec/fixtures/forms"] - # directories.each do |directory| - # Dir.glob("#{directory}/*.json").each do |form_path| - # form_path = form_path.sub(".json", "").split("/")[-1] - # form_paths.push(form_path) - # end - # end - # form_paths - # end + begin + JSON::Validator.validate!(schema, data) + rescue JSON::Schema::ValidationError => e + e.message + end + end end