adds specs

This commit is contained in:
rgarcia
2016-12-20 16:46:20 +01:00
parent 4eb700e3d4
commit d09348ee49
3 changed files with 64 additions and 23 deletions

View File

@@ -345,10 +345,13 @@ FactoryGirl.define do
end
factory :signature_sheet do
association :signable, factory: :proposal
association :author, factory: :user
document_numbers "123A, 456B, 789C"
end
factory :signature do
signature_sheet
sequence(:document_number) { |n| "#{n}A" }
end
end

View File

@@ -2,29 +2,67 @@ require 'rails_helper'
describe SignatureSheet do
let(:signature_sheet) { build(:signature_sheet) }
describe "validations" do
it "should be valid"
it "should not be valid without a valid signable"
it "should not be valid without document numbers"
it "should not be valid without an author"
it "should be valid" do
expect(signature_sheet).to be_valid
end
it "should not be valid without a valid signable" do
signature_sheet.signable = nil
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
end
it "should not be valid without an author" do
signature_sheet.author = nil
expect(signature_sheet).to_not be_valid
end
end
describe "name" do
it "returns name for proposal signature sheets"
it "returns name for spending proposal signature sheets"
describe "#name" do
it "returns name for proposal signature sheets" do
proposal = create(:proposal)
signature_sheet.signable = proposal
expect(signature_sheet.name).to eq("Citizen proposal #{proposal.id}")
end
it "returns name for spending proposal signature sheets" do
spending_proposal = create(:spending_proposal)
signature_sheet.signable = spending_proposal
expect(signature_sheet.name).to eq("Spending proposal #{spending_proposal.id}")
end
end
describe "verify_signatures" do
it "marks signature sheet as processed after verifing all document numbers"
describe "#verify_signatures" do
it "creates signatures for each document number" do
signature_sheet = create(:signature_sheet, document_numbers: "123A, 456B")
signature_sheet.verify_signatures
expect(Signature.count).to eq(2)
end
it "marks signature sheet as processed" do
signature_sheet = create(:signature_sheet)
signature_sheet.verify_signatures
expect(signature_sheet.processed).to eq(true)
end
end
describe "invalid_signatures" do
it "returns invalid signatures"
it "does not return valid signatures"
end
describe "#parsed_document_numbers" do
it "returns an array after spliting document numbers by newlines or commas" do
signature_sheet.document_numbers = "123A\r\n456B\n789C,123B"
describe "parsed_document_numbers" do
it "returns an array after spliting document numbers by newlines"
expect(signature_sheet.parsed_document_numbers).to eq(['123A', '456B', '789C', '123B'])
end
end
end

View File

@@ -1,6 +1,6 @@
require 'rails_helper'
describe Signature
describe Signature do
describe "validations" do
it "should be valid"
@@ -9,25 +9,25 @@ describe Signature
it "should not be valid if not in census"
end
describe "in census" do
describe "#in_census" do
it "checks for all document_types"
end
describe "verify" do
describe "#verify" do
describie "valid" do
describe "valid" do
it "sets status to verified"
it "asigns vote to user"
end
describe "invalid"
describe "invalid" do
it "sets status to error"
it "does not asign any votes"
end
end
describe "assign vote" do
describe "#assign_vote" do
describe "existing user" do
it "assigns vote to user"