Sha256: 03b2c833013cef9598cd63bca36ea5d7496771ce3e85b89779f31aab7e4e3e5b

Contents?: true

Size: 929 Bytes

Versions: 4

Compression:

Stored size: 929 Bytes

Contents

require 'spec_helper'

RSpec.describe 'ActiveModelErrors' do
  class DummyModel
    def self.human_attribute_name(attr, default='')
      return attr.capitalize
    end
  end

  let(:test_model) { DummyModel.new }
  let(:errors) { ActiveModel::Errors.new(test_model) }

  it 'can record errors' do
    errors.add(:foo, 'bar')
    expect(errors[:foo]).to eq ['bar']
    expect(errors.any?).to be(true)
  end

  it 'can add using strings' do
    errors.add('crash', 'is a bad bad value')
    expect(errors[:crash]).to eq ['is a bad bad value']
    expect(errors.include?('crash')).to be true
  end

  it 'duplicates when copy called' do
    model = OpenStruct.new

    error = ActiveModel::Errors.new(model)
    error.add(:code, 'error')
    expect(error[:code]).to eq ['error']

    other = ActiveModel::Errors.new(model)
    other.add(:code, 'warning')
    error.copy!(other)
    expect(error[:code]).to eq ['warning']
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lev-13.0.0 spec/active_model_errors_spec.rb
lev-12.1.0 spec/active_model_errors_spec.rb
lev-12.0.0 spec/active_model_errors_spec.rb
lev-11.0.0 spec/active_model_errors_spec.rb