Sha256: 2a4cab23c418eb72765a34ddf4832aca7db0527848113167b60fa70948973877

Contents?: true

Size: 857 Bytes

Versions: 10

Compression:

Stored size: 857 Bytes

Contents

# frozen_string_literal: true

require_relative '../../../lib/declare_schema/field_declaration_dsl'

RSpec.describe DeclareSchema::FieldDeclarationDsl do
  before do
    load File.expand_path('prepare_testapp.rb', __dir__)

    class TestModel < ActiveRecord::Base
      fields do
        name :string, limit: 127

        timestamps
      end
    end
  end

  let(:model) { TestModel.new }
  subject { declared_class.new(model) }

  it 'has fields' do
    expect(TestModel.field_specs).to be_kind_of(Hash)
    expect(TestModel.field_specs.keys).to eq(['name', 'created_at', 'updated_at'])
    expect(TestModel.field_specs.values.map(&:type)).to eq([:string, :datetime, :datetime])
  end

  it 'stores limits' do
    expect(TestModel.field_specs['name'].limit).to eq(127), TestModel.field_specs['name'].inspect
  end

  # TODO: fill out remaining tests
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
declare_schema-0.9.0 spec/lib/declare_schema/field_declaration_dsl_spec.rb
declare_schema-0.8.0 spec/lib/declare_schema/field_declaration_dsl_spec.rb
declare_schema-0.8.0.pre.6 spec/lib/declare_schema/field_declaration_dsl_spec.rb
declare_schema-0.8.0.pre.5 spec/lib/declare_schema/field_declaration_dsl_spec.rb
declare_schema-0.8.0.pre.4 spec/lib/declare_schema/field_declaration_dsl_spec.rb
declare_schema-0.8.0.pre.3 spec/lib/declare_schema/field_declaration_dsl_spec.rb
declare_schema-0.8.0.pre.2 spec/lib/declare_schema/field_declaration_dsl_spec.rb
declare_schema-0.8.0.pre.1 spec/lib/declare_schema/field_declaration_dsl_spec.rb
declare_schema-0.7.1 spec/lib/declare_schema/field_declaration_dsl_spec.rb
declare_schema-0.7.0 spec/lib/declare_schema/field_declaration_dsl_spec.rb