Sha256: 9842f7281351234a0d6b7e255e3934efe42b044b24ff70b094b813007ef17d1b

Contents?: true

Size: 1.13 KB

Versions: 12

Compression:

Stored size: 1.13 KB

Contents

require 'spec_helper'
require 'attributor/extras/field_selector'

describe Attributor::FieldSelector do
  subject(:type) { Attributor::FieldSelector }

  it 'loads a Hash' do
    expect(subject.load('one,two')).to be_kind_of(::Hash)
  end

  context 'loading all the test combinations' do
    cases = {
      nil => nil,
      '' => {},
      'one' => { one: true },
      'one,two,three' => { one: true, two: true, three: true },
      'one,two{a,b},three' => { one: true, two: { a: true, b: true }, three: true },
      'one,two{a,b,c{A,B}},three' => {
        one: true,
        two: {
          a: true,
          b: true,
          c: { A: true, B: true }
        },
        three: true
      }
    }

    cases.each do |fields, result|
      it "loads #{fields.inspect}" do
        loaded = subject.load(fields)
        expect(loaded).to eq result
      end
    end
  end

  context '.as_json_schema' do
    subject(:js){ type.as_json_schema }
    it 'adds the right attributes' do
      expect(js.keys).to include(:type, :'x-type_name')
      expect(js[:type]).to eq(:string)
      expect(js[:'x-type_name']).to eq('FieldSelector')
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
attributor-8.0 spec/extras/field_selector/field_selector_spec.rb
attributor-7.1 spec/extras/field_selector/field_selector_spec.rb
attributor-7.0 spec/extras/field_selector/field_selector_spec.rb
attributor-6.5 spec/extras/field_selector/field_selector_spec.rb
attributor-6.4 spec/extras/field_selector/field_selector_spec.rb
attributor-6.3 spec/extras/field_selector/field_selector_spec.rb
attributor-6.2 spec/extras/field_selector/field_selector_spec.rb
attributor-6.1 spec/extras/field_selector/field_selector_spec.rb
attributor-6.0 spec/extras/field_selector/field_selector_spec.rb
attributor-5.7 spec/extras/field_selector/field_selector_spec.rb
attributor-5.6 spec/extras/field_selector/field_selector_spec.rb
attributor-5.5 spec/extras/field_selector/field_selector_spec.rb