Sha256: 15fa9af5e993b5f58a89b58fcca99f7ab7e7345d7b6cbcf8540389106df5f7c8

Contents?: true

Size: 1.4 KB

Versions: 4

Compression:

Stored size: 1.4 KB

Contents

require "test_helper"

require "reform/form/validation/unique_validator.rb"
require "reform/form/active_record"

class UniquenessValidatorOnCreateTest < MiniTest::Spec
  class SongForm < Reform::Form
    include ActiveRecord
    property :title
    validates :title, unique: true
  end

  it do
    Song.delete_all

    form = SongForm.new(Song.new)
    form.validate("title" => "How Many Tears").must_equal true
    form.save

    form = SongForm.new(Song.new)
    form.validate("title" => "How Many Tears").must_equal false
    form.errors.to_s.must_equal "{:title=>[\"title must be unique.\"]}"
  end
end


class UniquenessValidatorOnUpdateTest < MiniTest::Spec
  class SongForm < Reform::Form
    include ActiveRecord
    property :title
    validates :title, unique: true
  end

  it do
    Song.delete_all
    @song = Song.create(title: "How Many Tears")

    form = SongForm.new(@song)
    form.validate("title" => "How Many Tears").must_equal true
    form.save

    form = SongForm.new(@song)
    form.validate("title" => "How Many Tears").must_equal true
  end
end


class UniqueWithCompositionTest < MiniTest::Spec
  class SongForm < Reform::Form
    include ActiveRecord
    include Composition

    property :title, on: :song
    validates :title, unique: true
  end

  it do
    Song.delete_all

    form = SongForm.new(song: Song.new)
    form.validate("title" => "How Many Tears").must_equal true
    form.save
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
reform-2.0.5 test/unique_test.rb
reform-2.0.4 test/unique_test.rb
reform-2.0.3 test/unique_test.rb
reform-2.0.2 test/unique_test.rb