adds validations and info logging to Recount

This commit is contained in:
Juanjo Bazán
2017-01-03 21:35:04 +01:00
parent 0c1d7c15c1
commit 8b56403bb1
2 changed files with 29 additions and 4 deletions

View File

@@ -3,13 +3,18 @@ class Poll
belongs_to :booth_assignment, class_name: "Poll::BoothAssignment"
belongs_to :officer_assignment, class_name: "Poll::OfficerAssignment"
validates :booth_assignment_id, presence: true
validates :date, presence: true, uniqueness: {scope: :booth_assignment_id}
validates :officer_assignment_id, presence: true, uniqueness: {scope: :booth_assignment_id}
validates :count, presence: true
validates :count, presence: true, numericality: {only_integer: true}
before_save :update_count_log
before_save :update_logs
def update_count_log
self.count_log += ":#{self.count_was.to_s}" if self.count_changed? && self.count_was.present?
def update_logs
if self.count_changed? && self.count_was.present?
self.count_log += ":#{self.count_was.to_s}"
self.officer_assignment_id_log += ":#{self.officer_assignment_id_was.to_s}"
end
end
end
end

View File

@@ -17,4 +17,24 @@ describe :recount do
expect(recount.count_log).to eq(":33:32")
end
it "should update officer_assignment_id_log if count changes" do
recount = create(:poll_recount, count: 33)
expect(recount.count_log).to eq("")
recount.count = 33
recount.officer_assignment_id = 1
recount.save
recount.count = 32
recount.officer_assignment_id = 2
recount.save
recount.count = 34
recount.officer_assignment_id = 3
recount.save
expect(recount.officer_assignment_id_log).to eq(":1:2")
end
end