adds specs
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user