Sha256: 3f5af61d28c6c3226e2455844c78bac4d41dd3916e4a75bccfd0a0c5ecdfa281

Contents?: true

Size: 1.1 KB

Versions: 57

Compression:

Stored size: 1.1 KB

Contents

require File.expand_path('../helper', __FILE__)

class OhmErrorTest < Test::Unit::TestCase
  describe "errors_on" do
    include Rack::Test::Methods

    class App < Sinatra::Base
      FORM = (<<-FORM).gsub(/^ {6}/, '')
      - errors_on @post do |e|
        - e.on [:email, :not_present], "Email is required."
        - e.on [:name, :not_present], "Name is required."
      FORM

      helpers Sinatra::OhmErrorHelpers

      class Post < Ohm::Model
        attribute :email
        attribute :name

        def validate
          assert_present :email
          assert_present :name
        end
      end

      get '/form' do
        @post = Post.new
        @post.valid?

        haml FORM
      end
    end

    def app
      App.new
    end

    test "produces proper errors" do
      get '/form'
    
      doc = Nokogiri(last_response.body)

      assert_equal 1, doc.search('div.errors').length

      assert_equal 'Email is required.', 
        doc.search('div.errors > ul > li:first-child').text

      assert_equal 'Name is required.',
        doc.search('div.errors > ul > li:last-child').text
    end
  end
end

Version data entries

57 entries across 57 versions & 2 rubygems

Version Path
classiccms-0.7.5 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.7.4 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.7.3 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.7.2 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.7.1 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.7.0 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.6.9 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.6.8 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.6.7 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.6.6 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.6.5 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.6.4 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.6.3 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.6.2 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.6.1 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.6.0 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.5.17 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.5.16 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.5.15 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb
classiccms-0.5.14 vendor/bundle/gems/sinatra-support-1.2.2/test/test_ohmerror.rb