Submit social housing lettings and sales data (CORE)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
1.8 KiB

require "json-schema"
require "json"
# "form_type": "lettings",
# "start_year": 2021,
# "end_year": 2022,
# "sections": {
# "about_this_log": {
# "label": "About this log",
3 years ago
# "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"
# }
# }
# },
begin
3 years ago
path = "config/forms/schema/generic.json"
# path = "config/forms/schema/2021_2022.json"
file = File.open(path)
schema = JSON.parse(file.read)
3 years ago
metaschema = JSON::Validator.validator_for_name("draft4").metaschema
3 years ago
if JSON::Validator.validate(metaschema, schema)
3 years ago
puts "schema valid"
3 years ago
else
3 years ago
puts "schema not valid"
return
3 years ago
end
path = "spec/fixtures/forms/test_validator.json"
# path = "config/forms/2021_2022.json"
file = File.open(path)
data = JSON.parse(file.read)
puts JSON::Validator.validate(schema, data)
puts JSON::Validator.fully_validate(schema, data, :strict => true)
begin
3 years ago
JSON::Validator.validate!(schema, data)
rescue JSON::Schema::ValidationError => e
3 years ago
e.message
end
# def get_all_form_paths
3 years ago
# 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
3 years ago
# form_paths
# end
end