Sha256: d59e4d6a408419f50c124a6e3d3baeea800b53907d59294c164d2696690b3253

Contents?: true

Size: 1.57 KB

Versions: 32

Compression:

Stored size: 1.57 KB

Contents

require 'volt/models'

class TestModel < Model
  validate :_name, length: 4
  validate :_description, length: {message: 'needs to be longer', length: 50}
  validate :_username, presence: true
end


describe Model do
  it "should validate the name" do
    expect(TestModel.new.errors).to eq(
      {
        :_name => ["must be at least 4 characters"],
        :_description => ["needs to be longer"],
        :_username => ["must be specified"]
      }
    )
  end

  it "should show marked validations once they are marked" do
    model = TestModel.new

    expect(model.marked_errors).to eq({})

    model.mark_field!(:_name)

    expect(model.marked_errors).to eq(
      {
        :_name => ["must be at least 4 characters"]
      }
    )
  end

  it "should show all fields in marked errors once saved" do
    model = TestModel.new

    expect(model.marked_errors).to eq({})

    model.save!

    expect(model.marked_errors.keys).to eq([:_name, :_description, :_username])
  end

  describe "length" do
    it "should allow custom errors on length" do
      model = TestModel.new

      expect(model.marked_errors).to eq({})

      model.mark_field!(:_description)

      expect(model.marked_errors).to eq(
        {
          :_description => ["needs to be longer"]
        }
      )
    end
  end

  describe "presence" do
    it "should validate presence" do
      model = TestModel.new

      expect(model.marked_errors).to eq({})

      model.mark_field!(:_username)

      expect(model.marked_errors).to eq(
        {
          :_username => ["must be specified"]
        }
      )
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
volt-0.8.14 spec/models/validations_spec.rb
volt-0.8.13 spec/models/validations_spec.rb
volt-0.8.11 spec/models/validations_spec.rb
volt-0.8.10 spec/models/validations_spec.rb
volt-0.8.9 spec/models/validations_spec.rb
volt-0.8.8 spec/models/validations_spec.rb
volt-0.8.7 spec/models/validations_spec.rb
volt-0.8.6 spec/models/validations_spec.rb
volt-0.8.5 spec/models/validations_spec.rb
volt-0.8.4 spec/models/validations_spec.rb
volt-0.8.3 spec/models/validations_spec.rb
volt-0.8.2 spec/models/validations_spec.rb
volt-0.8.1 spec/models/validations_spec.rb
volt-0.8.0 spec/models/validations_spec.rb
volt-0.7.23 spec/models/validations_spec.rb
volt-0.7.22 spec/models/validations_spec.rb
volt-0.7.21 spec/models/validations_spec.rb
volt-0.7.20 spec/models/validations_spec.rb
volt-0.7.19 spec/models/validations_spec.rb
volt-0.7.18 spec/models/validations_spec.rb