Sha256: e1cec9f5a6a289b3c8977c2782dbecb2eb9a018f61db8ea908a683a9554ab412

Contents?: true

Size: 1.49 KB

Versions: 6

Compression:

Stored size: 1.49 KB

Contents

require 'spec_helper'

RSpec.describe JsonSchemaRails::SchemaValidator do
  let(:validator) { JsonSchemaRails::SchemaValidator.new }

  describe "#use_core_schemas!" do
    context "with default option" do
      before { validator.use_core_schemas! }

      it "has 2 schemas" do
        expect(validator.meta_schemas.size).to eq 2
      end

      it "uses strict schemas" do
        schema = validator.meta_schemas.first
        expect(schema.additional_properties).to eq false
      end
    end

    context "with loose option" do
      before { validator.use_core_schemas!(loose: true) }

      it "has 2 schemas" do
        expect(validator.meta_schemas.size).to eq 2
      end

      it "uses loose schemas" do
        schema = validator.meta_schemas.first
        expect(schema.additional_properties).to eq true
      end
    end
  end

  describe "#validate" do
    before { validator.use_core_schemas! }
    subject { -> { validator.validate(schema_file) } }

    context "with valid schema" do
      let(:schema_file) { File.join(TEST_SCHEMAS_DIR, "posts/create.yml") }

      it "returns true" do
        expect(subject.call).to eq true
      end
    end

    context "with invalid schema" do
      let(:schema_file) { File.join(TEST_SCHEMAS_DIR, "invalid_schema.yml") }

      it "raises ValidationError with 2 errors" do
        expect(subject).to raise_error do |e|
          expect(e).to be_a JsonSchemaRails::ValidationError
          expect(e.errors.size).to eq 2
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
json_schema_rails-0.2.1 spec/lib/json_schema_rails/schema_validator_spec.rb
json_schema_rails-0.2.0 spec/lib/json_schema_rails/schema_validator_spec.rb
json_schema_rails-0.1.0 spec/lib/json_schema_rails/schema_validator_spec.rb
json_schema_rails-0.0.3 spec/lib/json_schema_rails/schema_validator_spec.rb
json_schema_rails-0.0.2 spec/lib/json_schema_rails/schema_validator_spec.rb
json_schema_rails-0.0.1 spec/lib/json_schema_rails/schema_validator_spec.rb