From b10dbd7cb59816a56327a563cb501ceb14ea7ca4 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 20 Dec 2016 18:00:36 +0100 Subject: [PATCH] adds specs --- app/models/signature.rb | 11 +++---- spec/models/signature_sheet_spec.rb | 15 ++++++++- spec/models/signature_spec.rb | 50 ++++++++++++++++++++++++----- 3 files changed, 61 insertions(+), 15 deletions(-) diff --git a/app/models/signature.rb b/app/models/signature.rb index 37340b227..b89bf2587 100644 --- a/app/models/signature.rb +++ b/app/models/signature.rb @@ -8,12 +8,14 @@ class Signature < ActiveRecord::Base scope :verified, -> { where(verified: true) } scope :unverified, -> { where(verified: false) } + delegate :signable, to: :signature_sheet + before_save :verify def verify if verified? assign_vote - verified = true + self.verified = true end end @@ -36,7 +38,8 @@ class Signature < ActiveRecord::Base end def user_exists? - user = User.where(document_number: document_number).exists? + self.user = User.where(document_number: document_number).first + self.user.present? end def create_user @@ -49,10 +52,6 @@ class Signature < ActiveRecord::Base end end - def signable - signature_sheet.signable - end - def document_types %w(1 2 3 4) end diff --git a/spec/models/signature_sheet_spec.rb b/spec/models/signature_sheet_spec.rb index 3b0ced629..d8f5c3513 100644 --- a/spec/models/signature_sheet_spec.rb +++ b/spec/models/signature_sheet_spec.rb @@ -10,11 +10,24 @@ describe SignatureSheet do expect(signature_sheet).to be_valid end - it "should not be valid without a valid signable" do + it "should be valid with a valid signable" do + signature_sheet.signable = create(:proposal) + expect(signature_sheet).to be_valid + + signature_sheet.signable = create(:spending_proposal) + expect(signature_sheet).to be_valid + end + + it "should not be valid without signable" do signature_sheet.signable = nil expect(signature_sheet).to_not be_valid end + it "should not be valid without a valid signable" do + signature_sheet.signable = create(:comment) + expect(signature_sheet).to_not be_valid + end + it "should not be valid without document numbers" do signature_sheet.document_numbers = nil expect(signature_sheet).to_not be_valid diff --git a/spec/models/signature_spec.rb b/spec/models/signature_spec.rb index 7fac0e65a..fe3ee47e0 100644 --- a/spec/models/signature_spec.rb +++ b/spec/models/signature_spec.rb @@ -2,22 +2,47 @@ require 'rails_helper' describe Signature do + let(:signature) { build(:signature) } + describe "validations" do - it "should be valid" - it "should be valid if user exists" - it "should not be valid if already voted" - it "should not be valid if not in census" + it "should be valid" do + expect(signature).to be_valid + end + + it "should not be valid without a document number" do + signature.document_number = nil + expect(signature).to_not be_valid + end + + it "should not be valid without an associated signature sheet" do + signature.signature_sheet = nil + expect(signature).to_not be_valid + end end describe "#in_census" do - it "checks for all document_types" + it "checks for all document_types" do + #### + end end describe "#verify" do - describe "valid" do - it "sets status to verified" - it "asigns vote to user" + describe "valid", :focus do + it "asigns vote to user" do + proposal = create(:proposal) + user = create(:user, document_number: "123A") + signature_sheet = create(:signature_sheet, signable: proposal) + signature = create(:signature, signature_sheet: signature_sheet, document_number: "123A") + + signature.verify + expect(user.voted_for?(proposal)).to be + end + + it "sets status to verified" do + + end + end describe "invalid" do @@ -27,6 +52,15 @@ describe Signature do end + describe "#verified?" do + it "returns true if user exists" do + + end + + it "returns true if document number in census" + it "returns false if user does not exist and not in census" + end + describe "#assign_vote" do describe "existing user" do