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 :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

View File

@@ -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

View File

@@ -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