Sha256: 7b3157464ce03d5fe70382f7636e9838fdc3920de2b288011d70365d27236bc4

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require 'spec_helper'

RSpec.describe Yaks::Mapper::Form::Field do
  include_context 'yaks context'

  let(:field)   { described_class.new( full_args ) }
  let(:name)      { :the_field }
  let(:full_args) { {name: name}.merge(args) }
  let(:args) {
    {
      label: 'a label',
      type: 'text',
      value: 'hello'
    }
  }

  let(:mapper) { Yaks::Mapper.new(yaks_context) }

  describe '.create' do
    it 'can take all args as a hash' do
      expect(described_class.create(full_args)).to eql described_class.new(full_args)
    end

    it 'can take a name as a positional arg' do
      expect(described_class.create(name, args)).to eql described_class.new(full_args)
    end

    it 'can take only a name' do
      expect(described_class.create(name)).to eql described_class.new(name: :the_field)
    end
  end

  describe '#to_resource_field' do
    it 'creates a Yaks::Resource::Form::Field with the same attributes' do
      expect(field.to_resource(mapper)).to eql Yaks::Resource::Form::Field.new(full_args)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
yaks-0.7.7 spec/unit/yaks/mapper/form/field_spec.rb