Sha256: faa31bf958cdbd443b49e77d6a694ac4f3f50d07640bfe980095706eb81ecaad

Contents?: true

Size: 1.15 KB

Versions: 10

Compression:

Stored size: 1.15 KB

Contents

require 'test_helper.rb'

describe "Slug Validation" do
  def build_slug_validation attrs = {}
    TestRecord.reset_callbacks(:validate)
    TestRecord.validates :slug, :slug => true
    TestRecord.new attrs
  end

  it "accepts valid slugs" do
    subject = build_slug_validation
    subject.slug = '1234567890-foo-bar-bar'
    subject.valid?.must_equal true
    subject.errors.size.must_equal 0
  end

  describe "for invalid slugs" do
    it "rejects invalid slugs" do
      subject = build_slug_validation :slug => '@#$%^'
      subject.valid?.must_equal false
      subject.errors.size.must_equal 1
    end

    it "generates an error message of type invalid" do
      subject = build_slug_validation :slug => '@#$%^'
      subject.valid?.must_equal false
      subject.errors[:slug].include?(subject.errors.generate_message(:slug, :invalid)).must_equal true
    end
  end

  describe "for empty slugs" do
    it "generates an error message of type blank" do
      subject = build_slug_validation :slug => nil
      subject.valid?.must_equal false
      subject.errors[:slug].include?(subject.errors.generate_message(:slug, :blank)).must_equal true
    end
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
activevalidators-2.1.0 test/validations/slug_test.rb
activevalidators-2.0.2 test/validations/slug_test.rb
activevalidators-2.0.1 test/validations/slug_test.rb
activevalidators-2.0.0 test/validations/slug_test.rb
activevalidators-1.9.0 test/validations/slug_test.rb
activevalidators-1.8.1 test/validations/slug_test.rb
activevalidators-1.8.0 test/validations/slug_test.rb
activevalidators-1.7.1 test/validations/slug_test.rb
activevalidators-1.7.0 test/validations/slug_test.rb
activevalidators-1.6.0 test/validations/slug_test.rb