adds specs

This commit is contained in:
rgarcia
2016-12-20 18:00:36 +01:00
parent 53ac18f68f
commit b10dbd7cb5
3 changed files with 61 additions and 15 deletions

View File

@@ -8,12 +8,14 @@ class Signature < ActiveRecord::Base
scope :verified, -> { where(verified: true) } scope :verified, -> { where(verified: true) }
scope :unverified, -> { where(verified: false) } scope :unverified, -> { where(verified: false) }
delegate :signable, to: :signature_sheet
before_save :verify before_save :verify
def verify def verify
if verified? if verified?
assign_vote assign_vote
verified = true self.verified = true
end end
end end
@@ -36,7 +38,8 @@ class Signature < ActiveRecord::Base
end end
def user_exists? def user_exists?
user = User.where(document_number: document_number).exists? self.user = User.where(document_number: document_number).first
self.user.present?
end end
def create_user def create_user
@@ -49,10 +52,6 @@ class Signature < ActiveRecord::Base
end end
end end
def signable
signature_sheet.signable
end
def document_types def document_types
%w(1 2 3 4) %w(1 2 3 4)
end end

View File

@@ -10,11 +10,24 @@ describe SignatureSheet do
expect(signature_sheet).to be_valid expect(signature_sheet).to be_valid
end 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 signature_sheet.signable = nil
expect(signature_sheet).to_not be_valid expect(signature_sheet).to_not be_valid
end 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 it "should not be valid without document numbers" do
signature_sheet.document_numbers = nil signature_sheet.document_numbers = nil
expect(signature_sheet).to_not be_valid expect(signature_sheet).to_not be_valid

View File

@@ -2,22 +2,47 @@ require 'rails_helper'
describe Signature do describe Signature do
let(:signature) { build(:signature) }
describe "validations" do describe "validations" do
it "should be valid" it "should be valid" do
it "should be valid if user exists" expect(signature).to be_valid
it "should not be valid if already voted" end
it "should not be valid if not in census"
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 end
describe "#in_census" do describe "#in_census" do
it "checks for all document_types" it "checks for all document_types" do
####
end
end end
describe "#verify" do describe "#verify" do
describe "valid" do describe "valid", :focus do
it "sets status to verified" it "asigns vote to user" do
it "asigns vote to user" 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 end
describe "invalid" do describe "invalid" do
@@ -27,6 +52,15 @@ describe Signature do
end 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 "#assign_vote" do
describe "existing user" do describe "existing user" do