From 0beb386beadcc366159a964564218fa20243ff97 Mon Sep 17 00:00:00 2001 From: Steven Miers Date: Mon, 20 Jul 2015 11:29:19 -0500 Subject: [PATCH] VRFS-3316 : Review Uniqueness validation and spec. --- ruby/lib/jam_ruby/models/review.rb | 7 +++++++ ruby/spec/jam_ruby/models/review_spec.rb | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ruby/lib/jam_ruby/models/review.rb b/ruby/lib/jam_ruby/models/review.rb index 454e03943..bdddb6d73 100644 --- a/ruby/lib/jam_ruby/models/review.rb +++ b/ruby/lib/jam_ruby/models/review.rb @@ -6,8 +6,15 @@ module JamRuby belongs_to :deleted_by_user, foreign_key: 'deleted_by_user_id', class_name: "JamRuby::User" validates :rating, presence:true, numericality: {only_integer: true, minimum:1, maximum:5} + validates :target, presence:true validates :user, presence:true + validates :target_id, uniqueness: {scope: :user_id, message: "There is already a review for this User and Target."} + # # @options - can contain values: + # # * target_id (optional) + # def reduce(options) + # arel = Review.where("deleted_at=?", nil) + # end end end \ No newline at end of file diff --git a/ruby/spec/jam_ruby/models/review_spec.rb b/ruby/spec/jam_ruby/models/review_spec.rb index b8dd67f4d..622b688aa 100644 --- a/ruby/spec/jam_ruby/models/review_spec.rb +++ b/ruby/spec/jam_ruby/models/review_spec.rb @@ -35,9 +35,17 @@ describe Review do end it "complete" do - review = Review.create(target:target, rating:3, user:@user) + review = Review.create(target:target, rating:3, user:@user) review.valid?.should be_true end + + it "unique" do + review = Review.create(target:target, rating:3, user:@user) + review.valid?.should be_true + + review2 = Review.create(target:target, rating:3, user:@user) + review2.valid?.should be_false + end end context "validates review summary" do