test/errors_test.rb in reform-2.2.3 vs test/errors_test.rb in reform-2.2.4
- old
+ new
@@ -1,165 +1,165 @@
-# require "test_helper"
+require "test_helper"
-# class ErrorsTest < MiniTest::Spec
-# class AlbumForm < Reform::Form
-# property :title
+class ErrorsTest < MiniTest::Spec
+ class AlbumForm < Reform::Form
+ property :title
-# property :hit do
-# property :title
-# validation do
-# key(:title).required
-# end
-# end
+ property :hit do
+ property :title
+ validation do
+ required(:title).filled
+ end
+ end
-# collection :songs do
-# property :title
-# validation do
-# key(:title).required
-# end
-# end
+ collection :songs do
+ property :title
+ validation do
+ required(:title).filled
+ end
+ end
-# property :band do # yepp, people do crazy stuff like that.
-# property :name
-# property :label do
-# property :name
-# validation do
-# key(:name).required
-# end
-# end
-# # TODO: make band a required object.
+ property :band do # yepp, people do crazy stuff like that.
+ property :name
+ property :label do
+ property :name
+ validation do
+ required(:name).filled
+ end
+ end
+ # TODO: make band a required object.
-# validation do
-# key(:name).required(:music_taste_ok?)
+ validation do
+ # required(:name).filled(:music_taste_ok?)
-# configure do
-# config.messages_file = "test/validation/errors.yml"
+ configure do
+ config.messages_file = "test/validation/errors.yml"
-# def music_taste_ok?(value)
-# value != "Nickelback"
-# # errors.add(:base, "You are a bad person") if name == "Nickelback"
-# end
-# end
-# end
-# # validate :music_taste_ok?
+ def music_taste_ok?(value)
+ value != "Nickelback"
+ # errors.add(:base, "You are a bad person") if name == "Nickelback"
+ end
+ end
+ end
+ # validate :music_taste_ok?
-# # private
-# # def music_taste_ok?
-# # errors.add(:base, "You are a bad person") if name == "Nickelback"
-# # end
-# end
+ # private
+ # def music_taste_ok?
+ # errors.add(:base, "You are a bad person") if name == "Nickelback"
+ # end
+ end
-# validation do
-# key(:title).required
-# end
-# end
+ validation do
+ required(:title).filled
+ end
+ end
-# let (:album) do
-# OpenStruct.new(
-# :title => "Blackhawks Over Los Angeles",
-# :hit => song,
-# :songs => songs, # TODO: document this requirement,
+ let (:album) do
+ OpenStruct.new(
+ :title => "Blackhawks Over Los Angeles",
+ :hit => song,
+ :songs => songs, # TODO: document this requirement,
-# :band => Struct.new(:name, :label).new("Epitaph", OpenStruct.new),
-# )
-# end
-# let (:song) { OpenStruct.new(:title => "Downtown") }
-# let (:songs) { [song=OpenStruct.new(:title => "Calling"), song] }
-# let (:form) { AlbumForm.new(album) }
+ :band => Struct.new(:name, :label).new("Epitaph", OpenStruct.new),
+ )
+ end
+ let (:song) { OpenStruct.new(:title => "Downtown") }
+ let (:songs) { [song=OpenStruct.new(:title => "Calling"), song] }
+ let (:form) { AlbumForm.new(album) }
-# describe "incorrect #validate" do
-# before { form.validate(
-# "hit" =>{"title" => ""},
-# "title" => "",
-# "songs" => [{"title" => ""}, {"title" => ""}]) } # FIXME: what happens if item is missing?
+ describe "incorrect #validate" do
+ before { form.validate(
+ "hit" =>{"title" => ""},
+ "title" => "",
+ "songs" => [{"title" => ""}, {"title" => ""}]) } # FIXME: what happens if item is missing?
-# it do
-# form.errors.messages.must_equal({
-# :title => ["must be filled"],
-# :"hit.title"=>["must be filled"],
-# :"songs.title"=>["must be filled"],
-# :"band.label.name"=>["is missing"]
-# })
-# end
+ it do
+ form.errors.messages.must_equal({
+ :title => ["must be filled"],
+ :"hit.title"=>["must be filled"],
+ :"songs.title"=>["must be filled"],
+ :"band.label.name"=>["is missing"]
+ })
+ end
-# it do
-# #form.errors.must_equal({:title => ["must be filled"]})
-# # TODO: this should only contain local errors?
-# end
+ it do
+ #form.errors.must_equal({:title => ["must be filled"]})
+ # TODO: this should only contain local errors?
+ end
-# # nested forms keep their own Errors:
-# it { form.hit.errors.messages.must_equal({:title=>["must be filled"]}) }
-# it { form.songs[0].errors.messages.must_equal({:title=>["must be filled"]}) }
+ # nested forms keep their own Errors:
+ it { form.hit.errors.messages.must_equal({:title=>["must be filled"]}) }
+ it { form.songs[0].errors.messages.must_equal({:title=>["must be filled"]}) }
-# it do
-# form.errors.messages.must_equal({
-# :title => ["must be filled"],
-# :"hit.title" => ["must be filled"],
-# :"songs.title"=> ["must be filled"],
-# :"band.label.name"=>["is missing"]
-# })
-# end
-# end
+ it do
+ form.errors.messages.must_equal({
+ :title => ["must be filled"],
+ :"hit.title" => ["must be filled"],
+ :"songs.title"=> ["must be filled"],
+ :"band.label.name"=>["is missing"]
+ })
+ end
+ end
-# describe "#validate with main form invalid" do
-# it do
-# form.validate("title"=>"", "band"=>{"label"=>{:name => "Fat Wreck"}}).must_equal false
-# form.errors.messages.must_equal({:title=>["must be filled"]})
-# end
-# end
+ describe "#validate with main form invalid" do
+ it do
+ form.validate("title"=>"", "band"=>{"label"=>{:name => "Fat Wreck"}}).must_equal false
+ form.errors.messages.must_equal({:title=>["must be filled"]})
+ end
+ end
-# describe "#validate with middle nested form invalid" do
-# before { @result = form.validate("hit"=>{"title" => ""}, "band"=>{"label"=>{:name => "Fat Wreck"}}) }
+ describe "#validate with middle nested form invalid" do
+ before { @result = form.validate("hit"=>{"title" => ""}, "band"=>{"label"=>{:name => "Fat Wreck"}}) }
-# it { @result.must_equal false }
-# it { form.errors.messages.must_equal({:"hit.title"=>["must be filled"]}) }
-# end
+ it { @result.must_equal false }
+ it { form.errors.messages.must_equal({:"hit.title"=>["must be filled"]}) }
+ end
-# describe "#validate with collection form invalid" do
-# before { @result = form.validate("songs"=>[{"title" => ""}], "band"=>{"label"=>{:name => "Fat Wreck"}}) }
+ describe "#validate with collection form invalid" do
+ before { @result = form.validate("songs"=>[{"title" => ""}], "band"=>{"label"=>{:name => "Fat Wreck"}}) }
-# it { @result.must_equal false }
-# it { form.errors.messages.must_equal({:"songs.title"=>["must be filled"]}) }
-# end
+ it { @result.must_equal false }
+ it { form.errors.messages.must_equal({:"songs.title"=>["must be filled"]}) }
+ end
-# describe "#validate with collection and 2-level-nested invalid" do
-# before { @result = form.validate("songs"=>[{"title" => ""}], "band" => {"label" => {}}) }
+ describe "#validate with collection and 2-level-nested invalid" do
+ before { @result = form.validate("songs"=>[{"title" => ""}], "band" => {"label" => {}}) }
-# it { @result.must_equal false }
-# it { form.errors.messages.must_equal({:"songs.title"=>["must be filled"], :"band.label.name"=>["is missing"]}) }
-# end
+ it { @result.must_equal false }
+ it { form.errors.messages.must_equal({:"songs.title"=>["must be filled"], :"band.label.name"=>["is missing"]}) }
+ end
-# describe "#validate with nested form using :base invalid" do
-# it do
-# result = form.validate("songs"=>[{"title" => "Someday"}], "band" => {"name" => "Nickelback", "label" => {"name" => "Roadrunner Records"}})
-# result.must_equal false
-# form.errors.messages.must_equal({:"band.name"=>["You are a bad person"]})
-# end
-# end
+ describe "#validate with nested form using :base invalid" do
+ it do
+ result = form.validate("songs"=>[{"title" => "Someday"}], "band" => {"name" => "Nickelback", "label" => {"name" => "Roadrunner Records"}})
+ result.must_equal false
+ form.errors.messages.must_equal({:"band.name"=>["You are a bad person"]})
+ end
+ end
-# describe "correct #validate" do
-# before { @result = form.validate(
-# "hit" => {"title" => "Sacrifice"},
-# "title" => "Second Heat",
-# "songs" => [{"title"=>"Heart Of A Lion"}],
-# "band" => {"label"=>{:name => "Fat Wreck"}}
-# ) }
+ describe "correct #validate" do
+ before { @result = form.validate(
+ "hit" => {"title" => "Sacrifice"},
+ "title" => "Second Heat",
+ "songs" => [{"title"=>"Heart Of A Lion"}],
+ "band" => {"label"=>{:name => "Fat Wreck"}}
+ ) }
-# it { @result.must_equal true }
-# it { form.hit.title.must_equal "Sacrifice" }
-# it { form.title.must_equal "Second Heat" }
-# it { form.songs.first.title.must_equal "Heart Of A Lion" }
-# end
+ it { @result.must_equal true }
+ it { form.hit.title.must_equal "Sacrifice" }
+ it { form.title.must_equal "Second Heat" }
+ it { form.songs.first.title.must_equal "Heart Of A Lion" }
+ end
-# describe "Errors#to_s" do
-# before { form.validate("songs"=>[{"title" => ""}], "band" => {"label" => {}}) }
+ describe "Errors#to_s" do
+ before { form.validate("songs"=>[{"title" => ""}], "band" => {"label" => {}}) }
-# # to_s is aliased to messages
-# it { form.errors.to_s.must_equal "{:\"songs.title\"=>[\"must be filled\"], :\"band.label.name\"=>[\"is missing\"]}" }
-# end
-# end
+ # to_s is aliased to messages
+ it { form.errors.to_s.must_equal "{:\"songs.title\"=>[\"must be filled\"], :\"band.label.name\"=>[\"is missing\"]}" }
+ end
+end