From d0b35aaa6e252bff3f7d8f0765ec6c1b4aebbe5e Mon Sep 17 00:00:00 2001 From: Dzmitry Plashchynski Date: Fri, 6 Mar 2015 23:27:02 +0200 Subject: [PATCH] Validate uniqueness of CronoJob job_id --- lib/crono/orm/active_record/crono_job.rb | 2 +- spec/orm/active_record/crono_job_spec.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/crono/orm/active_record/crono_job.rb b/lib/crono/orm/active_record/crono_job.rb index a44e43d..363cea1 100644 --- a/lib/crono/orm/active_record/crono_job.rb +++ b/lib/crono/orm/active_record/crono_job.rb @@ -3,6 +3,6 @@ require 'active_record' module Crono class CronoJob < ActiveRecord::Base self.table_name = "crono_jobs" - validates :job_id, presence: true + validates :job_id, presence: true, uniqueness: true end end diff --git a/spec/orm/active_record/crono_job_spec.rb b/spec/orm/active_record/crono_job_spec.rb index 40b1b8e..2a7a25a 100644 --- a/spec/orm/active_record/crono_job_spec.rb +++ b/spec/orm/active_record/crono_job_spec.rb @@ -15,6 +15,14 @@ describe Crono::CronoJob do it "should validate presence of job_id" do @crono_job = Crono::CronoJob.new() expect(@crono_job).not_to be_valid + expect(@crono_job.errors.added?(:job_id, :blank)).to be true + end + + it "should validate uniqueness of job_id" do + Crono::CronoJob.create!(job_id: "TestJob every 2 days") + @crono_job = Crono::CronoJob.create(job_id: "TestJob every 2 days") + expect(@crono_job).not_to be_valid + expect(@crono_job.errors.added?(:job_id, :taken)).to be true end it "should save job_id to DB" do