Sha256: b9700579af9d5969a0da0b2d16738d73735683b8afa2f7500cd932747d39be84

Contents?: true

Size: 1.41 KB

Versions: 1

Compression:

Stored size: 1.41 KB

Contents

require 'test_helper'

describe AgeValidator do
  before do
    @adult = Adult.new
  end

  it 'validates age' do
    travel_to Date.new(2018,1,2) do
      @adult.birthday = Date.new(2000,1,1)
      _(@adult.valid?).must_equal true

      @adult.birthday = Date.new(2000,1,2)
      _(@adult.valid?).must_equal true

      @adult.birthday = Date.new(2000,1,3)
      _(@adult.valid?).must_equal false
      _(@adult.errors.full_messages.first).must_equal 'Birthday must be over 18'
    end
  end

  it 'validates presence' do
    travel_to Date.new(2018,1,2) do
      @adult.birthday = nil
      _(@adult.valid?).must_equal false
      _(@adult.errors.full_messages.first).must_equal "Birthday can't be blank"
    end
  end

  it 'validates date' do
    travel_to Date.new(2018,1,2) do
      @adult.birthday = 'invalid'
      _(@adult.valid?).must_equal false
      _(@adult.errors.full_messages.first).must_equal 'Birthday is not a valid date'
    end
  end

  it 'allows blank' do
    adult = AdultAllowBlank.new

    travel_to Date.new(2018,1,2) do
      adult.birthday = nil
      _(adult.valid?).must_equal true
    end
  end

  it 'validates age as of 2018-01-02' do
    adult = AdultAsOf.new

    adult.birthday = Date.new(2000,1,1)
    _(adult.valid?).must_equal true

    adult.birthday = Date.new(2000,1,2)
    _(adult.valid?).must_equal true

    adult.birthday = Date.new(2000,1,3)
    _(adult.valid?).must_equal false
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
age_calculator-2.0.0 test/age_validator_test.rb