Sha256: ca730b6bea176212e2c7ad96c2fdee84b25be08360d3237b564c10f4a02b7cf1

Contents?: true

Size: 1.21 KB

Versions: 6

Compression:

Stored size: 1.21 KB

Contents

require 'spec_helper'

unless RUBY_PLATFORM == 'opal'
  describe 'validations block' do
    let(:model) { test_model_class.new }

    let(:test_model_class) do
      Class.new(Volt::Model) do
        set_collection_name :test_model3_classes
        validations do
          if _is_ready == true
            validate :name, length: 5
          end
        end
      end
    end

    let(:test_model_action_pass_class) do
      Class.new(Volt::Model) do
        set_collection_name :test_model_action_pass_classes
        validations do |action|
          # Only validation the name on update
          if action == :update
            validate :name, length: 5
          end
        end
      end
    end

    it 'should run conditional validations in the validations block' do
      a = test_model_class.new(name: 'Jo')

      expect(a.errors.size).to eq(0)

      a._is_ready = true

      expect(a.errors.size).to eq(1)
    end


    class ::Person < Volt::Model
    end

    it 'should send the action name to the validations block' do
      jo = test_model_action_pass_class.new(name: 'Jo')

      expect(jo.errors.size).to eq(0)

      store.people << jo

      jo._name = 'Joe'

      expect(jo.errors.size).to eq(1)

    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
volt-0.9.7.pre8 spec/models/validators/block_validations_spec.rb
volt-0.9.7.pre7 spec/models/validators/block_validations_spec.rb
volt-0.9.7.pre6 spec/models/validators/block_validations_spec.rb
volt-0.9.7.pre5 spec/models/validators/block_validations_spec.rb
volt-0.9.7.pre3 spec/models/validators/block_validations_spec.rb
volt-0.9.7.pre2 spec/models/validators/block_validations_spec.rb