Enables RSpec/DescribedClass cop & fixes all issues

Autocorrection for existing issues, and stashing at .rubocop_todo.yml
the false positives

Read about cop at http://www.rubydoc.info/gems/rubocop-rspec/RuboCop/Cop/RSpec/DescribedClass
This commit is contained in:
Bertocq
2018-01-07 00:38:19 +01:00
parent 0c3dc56650
commit 265d4d0967
38 changed files with 327 additions and 316 deletions

View File

@@ -59,4 +59,7 @@ RSpec/DescribeMethod:
Enabled: true Enabled: true
RSpec/DescribeSymbol: RSpec/DescribeSymbol:
Enabled: true
RSpec/DescribedClass:
Enabled: true Enabled: true

View File

@@ -784,7 +784,7 @@ Style/WordArray:
EnforcedStyle: percent EnforcedStyle: percent
MinSize: 8 MinSize: 8
# Offense count: 9 # Offense count: 10
RSpec/DescribeClass: RSpec/DescribeClass:
Exclude: Exclude:
- 'spec/customization_engine_spec.rb' - 'spec/customization_engine_spec.rb'
@@ -796,4 +796,12 @@ RSpec/DescribeClass:
- 'spec/lib/tasks/dev_seed_spec.rb' - 'spec/lib/tasks/dev_seed_spec.rb'
- 'spec/lib/tasks/settings_spec.rb' - 'spec/lib/tasks/settings_spec.rb'
- 'spec/models/abilities/organization_spec.rb' - 'spec/models/abilities/organization_spec.rb'
- 'spec/views/welcome/index.html.erb_spec.rb' - 'spec/views/welcome/index.html.erb_spec.rb'
# Offense count: 2
# Configuration parameters: SkipBlocks, EnforcedStyle.
# SupportedStyles: described_class, explicit
RSpec/DescribedClass:
Exclude:
- 'spec/controllers/concerns/has_filters_spec.rb'
- 'spec/controllers/concerns/has_orders_spec.rb'

View File

@@ -3,56 +3,56 @@ require 'rails_helper'
describe Age do describe Age do
describe '.in_years' do describe '.in_years' do
it "handles nils" do it "handles nils" do
expect(Age.in_years(nil)).to be_nil expect(described_class.in_years(nil)).to be_nil
end end
it "calculates age correctly for common dates" do it "calculates age correctly for common dates" do
d = Date.new(1980, 3, 13) d = Date.new(1980, 3, 13)
expect(Age.in_years(d, Date.new(2000, 3, 12))).to eq(19) expect(described_class.in_years(d, Date.new(2000, 3, 12))).to eq(19)
expect(Age.in_years(d, Date.new(2000, 3, 13))).to eq(20) expect(described_class.in_years(d, Date.new(2000, 3, 13))).to eq(20)
expect(Age.in_years(d, Date.new(2000, 3, 14))).to eq(20) expect(described_class.in_years(d, Date.new(2000, 3, 14))).to eq(20)
end end
it "calculates age correctly for people born near a year's limit" do it "calculates age correctly for people born near a year's limit" do
d = Date.new(1980, 12, 31) d = Date.new(1980, 12, 31)
expect(Age.in_years(d, Date.new(2000, 12, 30))).to eq(19) expect(described_class.in_years(d, Date.new(2000, 12, 30))).to eq(19)
expect(Age.in_years(d, Date.new(2000, 12, 31))).to eq(20) expect(described_class.in_years(d, Date.new(2000, 12, 31))).to eq(20)
expect(Age.in_years(d, Date.new(2001, 1, 1))).to eq(20) expect(described_class.in_years(d, Date.new(2001, 1, 1))).to eq(20)
d = Date.new(1980, 1, 1) d = Date.new(1980, 1, 1)
expect(Age.in_years(d, Date.new(2000, 12, 31))).to eq(20) expect(described_class.in_years(d, Date.new(2000, 12, 31))).to eq(20)
expect(Age.in_years(d, Date.new(2001, 1, 1))).to eq(21) expect(described_class.in_years(d, Date.new(2001, 1, 1))).to eq(21)
expect(Age.in_years(d, Date.new(2001, 1, 2))).to eq(21) expect(described_class.in_years(d, Date.new(2001, 1, 2))).to eq(21)
end end
it "calculates age correctly for people born around February the 29th" do it "calculates age correctly for people born around February the 29th" do
# 1980 and 2000 are leap years. 2001 is a regular year # 1980 and 2000 are leap years. 2001 is a regular year
d = Date.new(1980, 2, 29) d = Date.new(1980, 2, 29)
expect(Age.in_years(d, Date.new(2000, 2, 27))).to eq(19) expect(described_class.in_years(d, Date.new(2000, 2, 27))).to eq(19)
expect(Age.in_years(d, Date.new(2000, 2, 28))).to eq(19) expect(described_class.in_years(d, Date.new(2000, 2, 28))).to eq(19)
expect(Age.in_years(d, Date.new(2000, 2, 29))).to eq(20) expect(described_class.in_years(d, Date.new(2000, 2, 29))).to eq(20)
expect(Age.in_years(d, Date.new(2000, 3, 1))).to eq(20) expect(described_class.in_years(d, Date.new(2000, 3, 1))).to eq(20)
expect(Age.in_years(d, Date.new(2001, 2, 27))).to eq(20) expect(described_class.in_years(d, Date.new(2001, 2, 27))).to eq(20)
expect(Age.in_years(d, Date.new(2001, 2, 28))).to eq(20) expect(described_class.in_years(d, Date.new(2001, 2, 28))).to eq(20)
expect(Age.in_years(d, Date.new(2001, 3, 1))).to eq(21) expect(described_class.in_years(d, Date.new(2001, 3, 1))).to eq(21)
d = Date.new(1980, 2, 28) d = Date.new(1980, 2, 28)
expect(Age.in_years(d, Date.new(2000, 2, 27))).to eq(19) expect(described_class.in_years(d, Date.new(2000, 2, 27))).to eq(19)
expect(Age.in_years(d, Date.new(2000, 2, 28))).to eq(20) expect(described_class.in_years(d, Date.new(2000, 2, 28))).to eq(20)
expect(Age.in_years(d, Date.new(2000, 2, 29))).to eq(20) expect(described_class.in_years(d, Date.new(2000, 2, 29))).to eq(20)
expect(Age.in_years(d, Date.new(2000, 3, 1))).to eq(20) expect(described_class.in_years(d, Date.new(2000, 3, 1))).to eq(20)
expect(Age.in_years(d, Date.new(2001, 2, 27))).to eq(20) expect(described_class.in_years(d, Date.new(2001, 2, 27))).to eq(20)
expect(Age.in_years(d, Date.new(2001, 2, 28))).to eq(21) expect(described_class.in_years(d, Date.new(2001, 2, 28))).to eq(21)
expect(Age.in_years(d, Date.new(2001, 3, 1))).to eq(21) expect(described_class.in_years(d, Date.new(2001, 3, 1))).to eq(21)
d = Date.new(1980, 3, 1) d = Date.new(1980, 3, 1)
expect(Age.in_years(d, Date.new(2000, 2, 27))).to eq(19) expect(described_class.in_years(d, Date.new(2000, 2, 27))).to eq(19)
expect(Age.in_years(d, Date.new(2000, 2, 28))).to eq(19) expect(described_class.in_years(d, Date.new(2000, 2, 28))).to eq(19)
expect(Age.in_years(d, Date.new(2000, 2, 29))).to eq(19) expect(described_class.in_years(d, Date.new(2000, 2, 29))).to eq(19)
expect(Age.in_years(d, Date.new(2000, 3, 1))).to eq(20) expect(described_class.in_years(d, Date.new(2000, 3, 1))).to eq(20)
expect(Age.in_years(d, Date.new(2001, 2, 27))).to eq(20) expect(described_class.in_years(d, Date.new(2001, 2, 27))).to eq(20)
expect(Age.in_years(d, Date.new(2001, 2, 28))).to eq(20) expect(described_class.in_years(d, Date.new(2001, 2, 28))).to eq(20)
expect(Age.in_years(d, Date.new(2001, 3, 1))).to eq(21) expect(described_class.in_years(d, Date.new(2001, 3, 1))).to eq(21)
end end
end end
end end

View File

@@ -12,7 +12,7 @@ describe EmailDigest do
notification1 = create(:notification, notifiable: proposal_notification, user: user1) notification1 = create(:notification, notifiable: proposal_notification, user: user1)
notification2 = create(:notification, notifiable: proposal_notification, user: user2) notification2 = create(:notification, notifiable: proposal_notification, user: user2)
email_digest = EmailDigest.new(user1) email_digest = described_class.new(user1)
expect(email_digest.notifications).to include(notification1) expect(email_digest.notifications).to include(notification1)
expect(email_digest.notifications).to_not include(notification2) expect(email_digest.notifications).to_not include(notification2)
@@ -27,7 +27,7 @@ describe EmailDigest do
notification1 = create(:notification, notifiable: proposal_notification, user: user) notification1 = create(:notification, notifiable: proposal_notification, user: user)
notification2 = create(:notification, notifiable: comment, user: user) notification2 = create(:notification, notifiable: comment, user: user)
email_digest = EmailDigest.new(user) email_digest = described_class.new(user)
expect(email_digest.notifications).to include(notification1) expect(email_digest.notifications).to include(notification1)
expect(email_digest.notifications).to_not include(notification2) expect(email_digest.notifications).to_not include(notification2)
@@ -43,7 +43,7 @@ describe EmailDigest do
proposal_notification = create(:proposal_notification) proposal_notification = create(:proposal_notification)
notification = create(:notification, notifiable: proposal_notification, user: user) notification = create(:notification, notifiable: proposal_notification, user: user)
email_digest = EmailDigest.new(user) email_digest = described_class.new(user)
expect(email_digest.pending_notifications?).to be expect(email_digest.pending_notifications?).to be
end end
@@ -53,13 +53,13 @@ describe EmailDigest do
proposal_notification = create(:proposal_notification) proposal_notification = create(:proposal_notification)
notification = create(:notification, notifiable: proposal_notification, user: user, emailed_at: Time.current) notification = create(:notification, notifiable: proposal_notification, user: user, emailed_at: Time.current)
email_digest = EmailDigest.new(user) email_digest = described_class.new(user)
expect(email_digest.pending_notifications?).to_not be expect(email_digest.pending_notifications?).to_not be
end end
it "returns false when there are no notifications for a user" do it "returns false when there are no notifications for a user" do
user = create(:user) user = create(:user)
email_digest = EmailDigest.new(user) email_digest = described_class.new(user)
expect(email_digest.pending_notifications?).to_not be expect(email_digest.pending_notifications?).to_not be
end end
@@ -74,7 +74,7 @@ describe EmailDigest do
notification = create(:notification, notifiable: proposal_notification, user: user) notification = create(:notification, notifiable: proposal_notification, user: user)
reset_mailer reset_mailer
email_digest = EmailDigest.new(user) email_digest = described_class.new(user)
email_digest.deliver email_digest.deliver
email = open_last_email email = open_last_email
@@ -88,7 +88,7 @@ describe EmailDigest do
create(:notification, notifiable: proposal_notification, user: user, emailed_at: Time.current) create(:notification, notifiable: proposal_notification, user: user, emailed_at: Time.current)
reset_mailer reset_mailer
email_digest = EmailDigest.new(user) email_digest = described_class.new(user)
email_digest.deliver email_digest.deliver
expect(all_emails.count).to eq(0) expect(all_emails.count).to eq(0)
@@ -111,7 +111,7 @@ describe EmailDigest do
expect(notification2.emailed_at).to_not be expect(notification2.emailed_at).to_not be
expect(notification3.emailed_at).to_not be expect(notification3.emailed_at).to_not be
email_digest = EmailDigest.new(user1) email_digest = described_class.new(user1)
email_digest.mark_as_emailed email_digest.mark_as_emailed
notification1.reload notification1.reload
@@ -126,8 +126,8 @@ describe EmailDigest do
user1 = create(:user, failed_email_digests_count: 0) user1 = create(:user, failed_email_digests_count: 0)
user2 = create(:user, failed_email_digests_count: 3) user2 = create(:user, failed_email_digests_count: 3)
email_digest_1 = EmailDigest.new(user1) email_digest_1 = described_class.new(user1)
email_digest_2 = EmailDigest.new(user2) email_digest_2 = described_class.new(user2)
email_digest_1.mark_as_emailed email_digest_1.mark_as_emailed
email_digest_2.mark_as_emailed email_digest_2.mark_as_emailed

View File

@@ -5,7 +5,7 @@ describe GraphQL::ApiTypesCreator do
describe "::create_type" do describe "::create_type" do
it "creates fields for Int attributes" do it "creates fields for Int attributes" do
debate_type = GraphQL::ApiTypesCreator.create_type(Debate, { id: :integer }, created_types) debate_type = described_class.create_type(Debate, { id: :integer }, created_types)
created_field = debate_type.fields['id'] created_field = debate_type.fields['id']
expect(created_field).to be_a(GraphQL::Field) expect(created_field).to be_a(GraphQL::Field)
@@ -14,7 +14,7 @@ describe GraphQL::ApiTypesCreator do
end end
it "creates fields for String attributes" do it "creates fields for String attributes" do
debate_type = GraphQL::ApiTypesCreator.create_type(Debate, { title: :string }, created_types) debate_type = described_class.create_type(Debate, { title: :string }, created_types)
created_field = debate_type.fields['title'] created_field = debate_type.fields['title']
expect(created_field).to be_a(GraphQL::Field) expect(created_field).to be_a(GraphQL::Field)
@@ -23,8 +23,8 @@ describe GraphQL::ApiTypesCreator do
end end
it "creates connections for :belongs_to associations" do it "creates connections for :belongs_to associations" do
user_type = GraphQL::ApiTypesCreator.create_type(User, { id: :integer }, created_types) user_type = described_class.create_type(User, { id: :integer }, created_types)
debate_type = GraphQL::ApiTypesCreator.create_type(Debate, { author: User }, created_types) debate_type = described_class.create_type(Debate, { author: User }, created_types)
connection = debate_type.fields['author'] connection = debate_type.fields['author']
@@ -34,8 +34,8 @@ describe GraphQL::ApiTypesCreator do
end end
it "creates connections for :has_one associations" do it "creates connections for :has_one associations" do
user_type = GraphQL::ApiTypesCreator.create_type(User, { organization: Organization }, created_types) user_type = described_class.create_type(User, { organization: Organization }, created_types)
organization_type = GraphQL::ApiTypesCreator.create_type(Organization, { id: :integer }, created_types) organization_type = described_class.create_type(Organization, { id: :integer }, created_types)
connection = user_type.fields['organization'] connection = user_type.fields['organization']
@@ -45,8 +45,8 @@ describe GraphQL::ApiTypesCreator do
end end
it "creates connections for :has_many associations" do it "creates connections for :has_many associations" do
comment_type = GraphQL::ApiTypesCreator.create_type(Comment, { id: :integer }, created_types) comment_type = described_class.create_type(Comment, { id: :integer }, created_types)
debate_type = GraphQL::ApiTypesCreator.create_type(Debate, { comments: [Comment] }, created_types) debate_type = described_class.create_type(Debate, { comments: [Comment] }, created_types)
connection = debate_type.fields['comments'] connection = debate_type.fields['comments']

View File

@@ -10,7 +10,7 @@ describe GraphQL::QueryTypeCreator do
let(:api_types) { GraphQL::ApiTypesCreator.create(api_type_definitions) } let(:api_types) { GraphQL::ApiTypesCreator.create(api_type_definitions) }
describe "::create" do describe "::create" do
let(:query_type) { GraphQL::QueryTypeCreator.create(api_types) } let(:query_type) { described_class.create(api_types) }
it 'creates a QueryType with fields to retrieve single objects whose model fields included an ID' do it 'creates a QueryType with fields to retrieve single objects whose model fields included an ID' do
field = query_type.fields['proposal'] field = query_type.fields['proposal']

View File

@@ -1,21 +1,21 @@
require 'rails_helper' require 'rails_helper'
describe ManagerAuthenticator do describe ManagerAuthenticator do
let(:authenticator) { ManagerAuthenticator.new(login: "JJB033", clave_usuario: "31415926", fecha_conexion: "20151031135905") } let(:authenticator) { described_class.new(login: "JJB033", clave_usuario: "31415926", fecha_conexion: "20151031135905") }
describe 'initialization params' do describe 'initialization params' do
it 'should cause auth to return false if blank login' do it 'should cause auth to return false if blank login' do
blank_login_authenticator = ManagerAuthenticator.new(login: "", clave_usuario: "31415926", fecha_conexion: "20151031135905") blank_login_authenticator = described_class.new(login: "", clave_usuario: "31415926", fecha_conexion: "20151031135905")
expect(blank_login_authenticator.auth).to be false expect(blank_login_authenticator.auth).to be false
end end
it 'should cause auth to return false if blank user_key' do it 'should cause auth to return false if blank user_key' do
blank_user_key_authenticator = ManagerAuthenticator.new(login: "JJB033", clave_usuario: "", fecha_conexion: "20151031135905") blank_user_key_authenticator = described_class.new(login: "JJB033", clave_usuario: "", fecha_conexion: "20151031135905")
expect(blank_user_key_authenticator.auth).to be false expect(blank_user_key_authenticator.auth).to be false
end end
it 'should cause auth to return false if blank date' do it 'should cause auth to return false if blank date' do
blank_date_authenticator = ManagerAuthenticator.new(login: "JJB033", clave_usuario: "31415926", fecha_conexion: "") blank_date_authenticator = described_class.new(login: "JJB033", clave_usuario: "31415926", fecha_conexion: "")
expect(blank_date_authenticator.auth).to be false expect(blank_date_authenticator.auth).to be false
end end
end end

View File

@@ -2,7 +2,7 @@ require 'rails_helper'
describe MigrateSpendingProposalsToInvestments do describe MigrateSpendingProposalsToInvestments do
let(:importer) { MigrateSpendingProposalsToInvestments.new } let(:importer) { described_class.new }
describe '#import' do describe '#import' do

View File

@@ -14,9 +14,9 @@ describe TagSanitizer do
end end
it 'sets up a max length for each tag' do it 'sets up a max length for each tag' do
long_tag = '1' * (TagSanitizer.tag_max_length + 100) long_tag = '1' * (described_class.tag_max_length + 100)
expect(subject.sanitize_tag(long_tag).size).to eq(TagSanitizer.tag_max_length) expect(subject.sanitize_tag(long_tag).size).to eq(described_class.tag_max_length)
end end
end end

View File

@@ -7,7 +7,7 @@ describe DeviseMailer do
user = create(:user, locale: "es") user = create(:user, locale: "es")
email = I18n.with_locale :en do email = I18n.with_locale :en do
DeviseMailer.confirmation_instructions(user, "ABC") described_class.confirmation_instructions(user, "ABC")
end end
expect(email.subject).to include("confirmación") expect(email.subject).to include("confirmación")

View File

@@ -8,7 +8,7 @@ describe Mailer do
comment = create(:comment, commentable: proposal) comment = create(:comment, commentable: proposal)
email = I18n.with_locale :en do email = I18n.with_locale :en do
Mailer.comment(comment) described_class.comment(comment)
end end
expect(email.subject).to include("comentado") expect(email.subject).to include("comentado")

View File

@@ -21,9 +21,9 @@ describe Activity do
user = create(:user) user = create(:user)
proposal = create(:proposal) proposal = create(:proposal)
expect{ Activity.log(user, :hide, proposal) }.to change { Activity.count }.by(1) expect{ described_class.log(user, :hide, proposal) }.to change { described_class.count }.by(1)
activity = Activity.last activity = described_class.last
expect(activity.user_id).to eq(user.id) expect(activity.user_id).to eq(user.id)
expect(activity.action).to eq("hide") expect(activity.action).to eq("hide")
expect(activity.actionable).to eq(proposal) expect(activity.actionable).to eq(proposal)
@@ -41,9 +41,9 @@ describe Activity do
create(:activity, action: "hide", actionable: create(:comment)) create(:activity, action: "hide", actionable: create(:comment))
create(:activity, action: "block", actionable: create(:user)) create(:activity, action: "block", actionable: create(:user))
expect(Activity.on(proposal).size).to eq 3 expect(described_class.on(proposal).size).to eq 3
[activity1, activity2, activity3].each do |a| [activity1, activity2, activity3].each do |a|
expect(Activity.on(proposal)).to include(a) expect(described_class.on(proposal)).to include(a)
end end
end end
end end
@@ -59,10 +59,10 @@ describe Activity do
activity6 = create(:activity, user: user1, action: "valuate", actionable: create(:budget_investment)) activity6 = create(:activity, user: user1, action: "valuate", actionable: create(:budget_investment))
create_list(:activity, 3) create_list(:activity, 3)
expect(Activity.by(user1).size).to eq 6 expect(described_class.by(user1).size).to eq 6
[activity1, activity2, activity3, activity4, activity5, activity6].each do |a| [activity1, activity2, activity3, activity4, activity5, activity6].each do |a|
expect(Activity.by(user1)).to include(a) expect(described_class.by(user1)).to include(a)
end end
end end
end end
@@ -75,17 +75,17 @@ describe Activity do
on_user = create(:activity, actionable: create(:user)) on_user = create(:activity, actionable: create(:user))
on_investment = create(:activity, actionable: create(:budget_investment)) on_investment = create(:activity, actionable: create(:budget_investment))
expect(Activity.on_proposals.size).to eq 1 expect(described_class.on_proposals.size).to eq 1
expect(Activity.on_debates.size).to eq 1 expect(described_class.on_debates.size).to eq 1
expect(Activity.on_comments.size).to eq 1 expect(described_class.on_comments.size).to eq 1
expect(Activity.on_users.size).to eq 1 expect(described_class.on_users.size).to eq 1
expect(Activity.on_budget_investments.size).to eq 1 expect(described_class.on_budget_investments.size).to eq 1
expect(Activity.on_proposals.first).to eq on_proposal expect(described_class.on_proposals.first).to eq on_proposal
expect(Activity.on_debates.first).to eq on_debate expect(described_class.on_debates.first).to eq on_debate
expect(Activity.on_comments.first).to eq on_comment expect(described_class.on_comments.first).to eq on_comment
expect(Activity.on_users.first).to eq on_user expect(described_class.on_users.first).to eq on_user
expect(Activity.on_budget_investments.first).to eq on_investment expect(described_class.on_budget_investments.first).to eq on_investment
end end
end end

View File

@@ -16,18 +16,18 @@ describe Ahoy::DataSource do
end end
it 'should work without data sources' do it 'should work without data sources' do
ds = Ahoy::DataSource.new ds = described_class.new
expect(ds.build).to eq x: [] expect(ds.build).to eq x: []
end end
it 'should work with single data sources' do it 'should work with single data sources' do
ds = Ahoy::DataSource.new ds = described_class.new
ds.add 'foo', Ahoy::Event.where(name: 'foo').group_by_day(:time).count ds.add 'foo', Ahoy::Event.where(name: 'foo').group_by_day(:time).count
expect(ds.build).to eq :x => ["2015-01-01", "2015-01-02"], "foo" => [2, 1] expect(ds.build).to eq :x => ["2015-01-01", "2015-01-02"], "foo" => [2, 1]
end end
it 'should combine data sources' do it 'should combine data sources' do
ds = Ahoy::DataSource.new ds = described_class.new
ds.add 'foo', Ahoy::Event.where(name: 'foo').group_by_day(:time).count ds.add 'foo', Ahoy::Event.where(name: 'foo').group_by_day(:time).count
ds.add 'bar', Ahoy::Event.where(name: 'bar').group_by_day(:time).count ds.add 'bar', Ahoy::Event.where(name: 'bar').group_by_day(:time).count
expect(ds.build).to eq :x => ["2015-01-01", "2015-01-02", "2015-01-03"], "foo" => [2, 1, 0], "bar" => [1, 0, 2] expect(ds.build).to eq :x => ["2015-01-01", "2015-01-02", "2015-01-03"], "foo" => [2, 1, 0], "bar" => [1, 0, 2]

View File

@@ -60,7 +60,7 @@ describe Budget::Ballot::Line do
ballot_line2 = create(:budget_ballot_line, ballot: ballot2, investment: investment1) ballot_line2 = create(:budget_ballot_line, ballot: ballot2, investment: investment1)
ballot_line3 = create(:budget_ballot_line, ballot: ballot3, investment: investment2) ballot_line3 = create(:budget_ballot_line, ballot: ballot3, investment: investment2)
ballot_lines_by_investment = Budget::Ballot::Line.by_investment(investment1.id) ballot_lines_by_investment = described_class.by_investment(investment1.id)
expect(ballot_lines_by_investment).to include ballot_line1 expect(ballot_lines_by_investment).to include ballot_line1
expect(ballot_lines_by_investment).to include ballot_line2 expect(ballot_lines_by_investment).to include ballot_line2

View File

@@ -232,7 +232,7 @@ describe Budget::Investment do
investment1 = create(:budget_investment, administrator_id: 33) investment1 = create(:budget_investment, administrator_id: 33)
create(:budget_investment) create(:budget_investment)
by_admin = Budget::Investment.by_admin(33) by_admin = described_class.by_admin(33)
expect(by_admin.size).to eq(1) expect(by_admin.size).to eq(1)
expect(by_admin.first).to eq(investment1) expect(by_admin.first).to eq(investment1)
@@ -252,7 +252,7 @@ describe Budget::Investment do
investment2.valuators << valuator2 investment2.valuators << valuator2
investment3.valuators << [valuator1, valuator2] investment3.valuators << [valuator1, valuator2]
by_valuator = Budget::Investment.by_valuator(valuator1.id) by_valuator = described_class.by_valuator(valuator1.id)
expect(by_valuator.size).to eq(2) expect(by_valuator.size).to eq(2)
expect(by_valuator.sort).to eq([investment1, investment3].sort) expect(by_valuator.sort).to eq([investment1, investment3].sort)
@@ -265,7 +265,7 @@ describe Budget::Investment do
investment1 = create(:budget_investment, valuation_finished: true) investment1 = create(:budget_investment, valuation_finished: true)
investment2 = create(:budget_investment) investment2 = create(:budget_investment)
valuation_open = Budget::Investment.valuation_open valuation_open = described_class.valuation_open
expect(valuation_open.size).to eq(1) expect(valuation_open.size).to eq(1)
expect(valuation_open.first).to eq(investment2) expect(valuation_open.first).to eq(investment2)
@@ -278,7 +278,7 @@ describe Budget::Investment do
investment2 = create(:budget_investment, administrator: create(:administrator)) investment2 = create(:budget_investment, administrator: create(:administrator))
investment3 = create(:budget_investment) investment3 = create(:budget_investment)
without_admin = Budget::Investment.without_admin without_admin = described_class.without_admin
expect(without_admin.size).to eq(1) expect(without_admin.size).to eq(1)
expect(without_admin.first).to eq(investment3) expect(without_admin.first).to eq(investment3)
@@ -292,7 +292,7 @@ describe Budget::Investment do
investment3 = create(:budget_investment, administrator: create(:administrator)) investment3 = create(:budget_investment, administrator: create(:administrator))
investment1.valuators << create(:valuator) investment1.valuators << create(:valuator)
managed = Budget::Investment.managed managed = described_class.managed
expect(managed.size).to eq(1) expect(managed.size).to eq(1)
expect(managed.first).to eq(investment3) expect(managed.first).to eq(investment3)
@@ -308,7 +308,7 @@ describe Budget::Investment do
investment2.valuators << create(:valuator) investment2.valuators << create(:valuator)
investment3.valuators << create(:valuator) investment3.valuators << create(:valuator)
valuating = Budget::Investment.valuating valuating = described_class.valuating
expect(valuating.size).to eq(1) expect(valuating.size).to eq(1)
expect(valuating.first).to eq(investment2) expect(valuating.first).to eq(investment2)
@@ -324,7 +324,7 @@ describe Budget::Investment do
investment2.valuators << create(:valuator) investment2.valuators << create(:valuator)
investment3.valuators << create(:valuator) investment3.valuators << create(:valuator)
valuation_finished = Budget::Investment.valuation_finished valuation_finished = described_class.valuation_finished
expect(valuation_finished.size).to eq(1) expect(valuation_finished.size).to eq(1)
expect(valuation_finished.first).to eq(investment3) expect(valuation_finished.first).to eq(investment3)
@@ -336,7 +336,7 @@ describe Budget::Investment do
feasible_investment = create(:budget_investment, :feasible) feasible_investment = create(:budget_investment, :feasible)
create(:budget_investment) create(:budget_investment)
expect(Budget::Investment.feasible).to eq [feasible_investment] expect(described_class.feasible).to eq [feasible_investment]
end end
end end
@@ -345,7 +345,7 @@ describe Budget::Investment do
unfeasible_investment = create(:budget_investment, :unfeasible) unfeasible_investment = create(:budget_investment, :unfeasible)
create(:budget_investment, :feasible) create(:budget_investment, :feasible)
expect(Budget::Investment.unfeasible).to eq [unfeasible_investment] expect(described_class.unfeasible).to eq [unfeasible_investment]
end end
end end
@@ -355,7 +355,7 @@ describe Budget::Investment do
undecided_investment = create(:budget_investment, :undecided) undecided_investment = create(:budget_investment, :undecided)
feasible_investment = create(:budget_investment, :feasible) feasible_investment = create(:budget_investment, :feasible)
expect(Budget::Investment.not_unfeasible.sort).to eq [undecided_investment, feasible_investment].sort expect(described_class.not_unfeasible.sort).to eq [undecided_investment, feasible_investment].sort
end end
end end
@@ -365,7 +365,7 @@ describe Budget::Investment do
undecided_investment = create(:budget_investment, :undecided) undecided_investment = create(:budget_investment, :undecided)
feasible_investment = create(:budget_investment, :feasible) feasible_investment = create(:budget_investment, :feasible)
expect(Budget::Investment.undecided).to eq [undecided_investment] expect(described_class.undecided).to eq [undecided_investment]
end end
end end
@@ -374,7 +374,7 @@ describe Budget::Investment do
selected_investment = create(:budget_investment, :selected) selected_investment = create(:budget_investment, :selected)
unselected_investment = create(:budget_investment, :unselected) unselected_investment = create(:budget_investment, :unselected)
expect(Budget::Investment.selected).to eq [selected_investment] expect(described_class.selected).to eq [selected_investment]
end end
end end
@@ -385,7 +385,7 @@ describe Budget::Investment do
unselected_undecided_investment = create(:budget_investment, :unselected, :undecided) unselected_undecided_investment = create(:budget_investment, :unselected, :undecided)
unselected_feasible_investment = create(:budget_investment, :unselected, :feasible) unselected_feasible_investment = create(:budget_investment, :unselected, :feasible)
expect(Budget::Investment.unselected.sort).to eq [unselected_undecided_investment, unselected_feasible_investment].sort expect(described_class.unselected.sort).to eq [unselected_undecided_investment, unselected_feasible_investment].sort
end end
end end
end end
@@ -399,7 +399,7 @@ describe Budget::Investment do
investment2 = create(:budget_investment, :feasible, budget: budget) investment2 = create(:budget_investment, :feasible, budget: budget)
investment3 = create(:budget_investment, :unfeasible, budget: budget) investment3 = create(:budget_investment, :unfeasible, budget: budget)
results = Budget::Investment.apply_filters_and_search(budget, {}, :feasible) results = described_class.apply_filters_and_search(budget, {}, :feasible)
expect(results).to include investment1 expect(results).to include investment1
expect(results).to include investment2 expect(results).to include investment2
@@ -411,7 +411,7 @@ describe Budget::Investment do
investment2 = create(:budget_investment, :unfeasible, budget: budget) investment2 = create(:budget_investment, :unfeasible, budget: budget)
investment3 = create(:budget_investment, :feasible, budget: budget) investment3 = create(:budget_investment, :feasible, budget: budget)
results = Budget::Investment.apply_filters_and_search(budget, {}, :unfeasible) results = described_class.apply_filters_and_search(budget, {}, :unfeasible)
expect(results).to include investment1 expect(results).to include investment1
expect(results).to include investment2 expect(results).to include investment2
@@ -425,7 +425,7 @@ describe Budget::Investment do
investment2 = create(:budget_investment, :feasible, :selected, budget: budget) investment2 = create(:budget_investment, :feasible, :selected, budget: budget)
investment3 = create(:budget_investment, :feasible, :unselected, budget: budget) investment3 = create(:budget_investment, :feasible, :unselected, budget: budget)
results = Budget::Investment.apply_filters_and_search(budget, {}, :selected) results = described_class.apply_filters_and_search(budget, {}, :selected)
expect(results).to include investment1 expect(results).to include investment1
expect(results).to include investment2 expect(results).to include investment2
@@ -439,7 +439,7 @@ describe Budget::Investment do
investment2 = create(:budget_investment, :feasible, :unselected, budget: budget) investment2 = create(:budget_investment, :feasible, :unselected, budget: budget)
investment3 = create(:budget_investment, :feasible, :selected, budget: budget) investment3 = create(:budget_investment, :feasible, :selected, budget: budget)
results = Budget::Investment.apply_filters_and_search(budget, {}, :unselected) results = described_class.apply_filters_and_search(budget, {}, :unselected)
expect(results).to include investment1 expect(results).to include investment1
expect(results).to include investment2 expect(results).to include investment2
@@ -456,7 +456,7 @@ describe Budget::Investment do
investment2 = create(:budget_investment, heading: heading1, budget: budget) investment2 = create(:budget_investment, heading: heading1, budget: budget)
investment3 = create(:budget_investment, heading: heading2, budget: budget) investment3 = create(:budget_investment, heading: heading2, budget: budget)
results = Budget::Investment.apply_filters_and_search(budget, heading_id: heading1.id) results = described_class.apply_filters_and_search(budget, heading_id: heading1.id)
expect(results).to include investment1 expect(results).to include investment1
expect(results).to include investment2 expect(results).to include investment2
@@ -468,7 +468,7 @@ describe Budget::Investment do
investment2 = create(:budget_investment, title: "improved health", budget: budget) investment2 = create(:budget_investment, title: "improved health", budget: budget)
investment3 = create(:budget_investment, title: "finance", budget: budget) investment3 = create(:budget_investment, title: "finance", budget: budget)
results = Budget::Investment.apply_filters_and_search(budget, search: "health") results = described_class.apply_filters_and_search(budget, search: "health")
expect(results).to include investment1 expect(results).to include investment1
expect(results).to include investment2 expect(results).to include investment2
@@ -482,10 +482,10 @@ describe Budget::Investment do
it "searches by tags" do it "searches by tags" do
investment = create(:budget_investment, tag_list: 'Latina') investment = create(:budget_investment, tag_list: 'Latina')
results = Budget::Investment.search('Latina') results = described_class.search('Latina')
expect(results.first).to eq(investment) expect(results.first).to eq(investment)
results = Budget::Investment.search('Latin') results = described_class.search('Latin')
expect(results.first).to eq(investment) expect(results.first).to eq(investment)
end end
end end
@@ -585,9 +585,9 @@ describe Budget::Investment do
most_voted = create(:budget_investment, cached_votes_up: 10) most_voted = create(:budget_investment, cached_votes_up: 10)
some_votes = create(:budget_investment, cached_votes_up: 5) some_votes = create(:budget_investment, cached_votes_up: 5)
expect(Budget::Investment.sort_by_confidence_score.first).to eq most_voted expect(described_class.sort_by_confidence_score.first).to eq most_voted
expect(Budget::Investment.sort_by_confidence_score.second).to eq some_votes expect(described_class.sort_by_confidence_score.second).to eq some_votes
expect(Budget::Investment.sort_by_confidence_score.third).to eq least_voted expect(described_class.sort_by_confidence_score.third).to eq least_voted
end end
it "should order by confidence_score and then by id" do it "should order by confidence_score and then by id" do
@@ -596,10 +596,10 @@ describe Budget::Investment do
most_voted2 = create(:budget_investment, cached_votes_up: 10) most_voted2 = create(:budget_investment, cached_votes_up: 10)
least_voted2 = create(:budget_investment, cached_votes_up: 1) least_voted2 = create(:budget_investment, cached_votes_up: 1)
expect(Budget::Investment.sort_by_confidence_score.first).to eq most_voted2 expect(described_class.sort_by_confidence_score.first).to eq most_voted2
expect(Budget::Investment.sort_by_confidence_score.second).to eq most_voted expect(described_class.sort_by_confidence_score.second).to eq most_voted
expect(Budget::Investment.sort_by_confidence_score.third).to eq least_voted2 expect(described_class.sort_by_confidence_score.third).to eq least_voted2
expect(Budget::Investment.sort_by_confidence_score.fourth).to eq least_voted expect(described_class.sort_by_confidence_score.fourth).to eq least_voted
end end
end end
end end
@@ -642,8 +642,8 @@ describe Budget::Investment do
inv2 = create(:budget_investment) inv2 = create(:budget_investment)
create(:vote, votable: inv1) create(:vote, votable: inv1)
expect(Budget::Investment.with_supports).to include(inv1) expect(described_class.with_supports).to include(inv1)
expect(Budget::Investment.with_supports).to_not include(inv2) expect(described_class.with_supports).to_not include(inv2)
end end
end end

View File

@@ -129,8 +129,8 @@ describe Comment do
create(:comment, administrator_id: create(:administrator).id) create(:comment, administrator_id: create(:administrator).id)
create(:comment, moderator_id: create(:moderator).id) create(:comment, moderator_id: create(:moderator).id)
expect(Comment.not_as_admin_or_moderator.size).to eq(1) expect(described_class.not_as_admin_or_moderator.size).to eq(1)
expect(Comment.not_as_admin_or_moderator.first).to eq(comment1) expect(described_class.not_as_admin_or_moderator.first).to eq(comment1)
end end
end end
@@ -138,54 +138,54 @@ describe Comment do
it "returns comments" do it "returns comments" do
comment = create(:comment) comment = create(:comment)
expect(Comment.public_for_api).to include(comment) expect(described_class.public_for_api).to include(comment)
end end
it "does not return hidden comments" do it "does not return hidden comments" do
hidden_comment = create(:comment, :hidden) hidden_comment = create(:comment, :hidden)
expect(Comment.public_for_api).not_to include(hidden_comment) expect(described_class.public_for_api).not_to include(hidden_comment)
end end
it "returns comments on debates" do it "returns comments on debates" do
debate = create(:debate) debate = create(:debate)
comment = create(:comment, commentable: debate) comment = create(:comment, commentable: debate)
expect(Comment.public_for_api).to include(comment) expect(described_class.public_for_api).to include(comment)
end end
it "does not return comments on hidden debates" do it "does not return comments on hidden debates" do
hidden_debate = create(:debate, :hidden) hidden_debate = create(:debate, :hidden)
comment = create(:comment, commentable: hidden_debate) comment = create(:comment, commentable: hidden_debate)
expect(Comment.public_for_api).not_to include(comment) expect(described_class.public_for_api).not_to include(comment)
end end
it "returns comments on proposals" do it "returns comments on proposals" do
proposal = create(:proposal) proposal = create(:proposal)
comment = create(:comment, commentable: proposal) comment = create(:comment, commentable: proposal)
expect(Comment.public_for_api).to include(comment) expect(described_class.public_for_api).to include(comment)
end end
it "does not return comments on hidden proposals" do it "does not return comments on hidden proposals" do
hidden_proposal = create(:proposal, :hidden) hidden_proposal = create(:proposal, :hidden)
comment = create(:comment, commentable: hidden_proposal) comment = create(:comment, commentable: hidden_proposal)
expect(Comment.public_for_api).not_to include(comment) expect(described_class.public_for_api).not_to include(comment)
end end
it 'does not return comments on elements which are not debates or proposals' do it 'does not return comments on elements which are not debates or proposals' do
budget_investment = create(:budget_investment) budget_investment = create(:budget_investment)
comment = create(:comment, commentable: budget_investment) comment = create(:comment, commentable: budget_investment)
expect(Comment.public_for_api).not_to include(comment) expect(described_class.public_for_api).not_to include(comment)
end end
it 'does not return comments with no commentable' do it 'does not return comments with no commentable' do
comment = build(:comment, commentable: nil).save!(validate: false) comment = build(:comment, commentable: nil).save!(validate: false)
expect(Comment.public_for_api).to_not include(comment) expect(described_class.public_for_api).to_not include(comment)
end end
end end
end end

View File

@@ -445,27 +445,27 @@ describe Debate do
it "searches by title" do it "searches by title" do
debate = create(:debate, title: 'save the world') debate = create(:debate, title: 'save the world')
results = Debate.search('save the world') results = described_class.search('save the world')
expect(results).to eq([debate]) expect(results).to eq([debate])
end end
it "searches by description" do it "searches by description" do
debate = create(:debate, description: 'in order to save the world one must think about...') debate = create(:debate, description: 'in order to save the world one must think about...')
results = Debate.search('one must think') results = described_class.search('one must think')
expect(results).to eq([debate]) expect(results).to eq([debate])
end end
it "searches by author name" do it "searches by author name" do
author = create(:user, username: 'Danny Trejo') author = create(:user, username: 'Danny Trejo')
debate = create(:debate, author: author) debate = create(:debate, author: author)
results = Debate.search('Danny') results = described_class.search('Danny')
expect(results).to eq([debate]) expect(results).to eq([debate])
end end
it "searches by geozone" do it "searches by geozone" do
geozone = create(:geozone, name: 'California') geozone = create(:geozone, name: 'California')
debate = create(:debate, geozone: geozone) debate = create(:debate, geozone: geozone)
results = Debate.search('California') results = described_class.search('California')
expect(results).to eq([debate]) expect(results).to eq([debate])
end end
@@ -476,13 +476,13 @@ describe Debate do
it "searches word stems" do it "searches word stems" do
debate = create(:debate, title: 'limpiar') debate = create(:debate, title: 'limpiar')
results = Debate.search('limpiará') results = described_class.search('limpiará')
expect(results).to eq([debate]) expect(results).to eq([debate])
results = Debate.search('limpiémos') results = described_class.search('limpiémos')
expect(results).to eq([debate]) expect(results).to eq([debate])
results = Debate.search('limpió') results = described_class.search('limpió')
expect(results).to eq([debate]) expect(results).to eq([debate])
end end
@@ -493,15 +493,15 @@ describe Debate do
it "searches with accents" do it "searches with accents" do
debate = create(:debate, title: 'difusión') debate = create(:debate, title: 'difusión')
results = Debate.search('difusion') results = described_class.search('difusion')
expect(results).to eq([debate]) expect(results).to eq([debate])
debate2 = create(:debate, title: 'estadisticas') debate2 = create(:debate, title: 'estadisticas')
results = Debate.search('estadísticas') results = described_class.search('estadísticas')
expect(results).to eq([debate2]) expect(results).to eq([debate2])
debate3 = create(:debate, title: 'público') debate3 = create(:debate, title: 'público')
results = Debate.search('publico') results = described_class.search('publico')
expect(results).to eq([debate3]) expect(results).to eq([debate3])
end end
@@ -511,11 +511,11 @@ describe Debate do
it "searches case insensite" do it "searches case insensite" do
debate = create(:debate, title: 'SHOUT') debate = create(:debate, title: 'SHOUT')
results = Debate.search('shout') results = described_class.search('shout')
expect(results).to eq([debate]) expect(results).to eq([debate])
debate2 = create(:debate, title: "scream") debate2 = create(:debate, title: "scream")
results = Debate.search("SCREAM") results = described_class.search("SCREAM")
expect(results).to eq([debate2]) expect(results).to eq([debate2])
end end
end end
@@ -524,10 +524,10 @@ describe Debate do
it "searches by tags" do it "searches by tags" do
debate = create(:debate, tag_list: 'Latina') debate = create(:debate, tag_list: 'Latina')
results = Debate.search('Latina') results = described_class.search('Latina')
expect(results.first).to eq(debate) expect(results.first).to eq(debate)
results = Debate.search('Latin') results = described_class.search('Latin')
expect(results.first).to eq(debate) expect(results.first).to eq(debate)
end end
end end
@@ -538,7 +538,7 @@ describe Debate do
debate_description = create(:debate, description: 'stop corruption') debate_description = create(:debate, description: 'stop corruption')
debate_title = create(:debate, title: 'stop corruption') debate_title = create(:debate, title: 'stop corruption')
results = Debate.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(debate_title) expect(results.first).to eq(debate_title)
expect(results.second).to eq(debate_description) expect(results.second).to eq(debate_description)
@@ -550,7 +550,7 @@ describe Debate do
title_most_voted = create(:debate, title: 'stop corruption', cached_votes_up: 10) title_most_voted = create(:debate, title: 'stop corruption', cached_votes_up: 10)
description_most_voted = create(:debate, description: 'stop corruption', cached_votes_up: 10) description_most_voted = create(:debate, description: 'stop corruption', cached_votes_up: 10)
results = Debate.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(title_most_voted) expect(results.first).to eq(title_most_voted)
expect(results.second).to eq(title_some_votes) expect(results.second).to eq(title_some_votes)
@@ -562,7 +562,7 @@ describe Debate do
exact_title_few_votes = create(:debate, title: 'stop corruption', cached_votes_up: 5) exact_title_few_votes = create(:debate, title: 'stop corruption', cached_votes_up: 5)
similar_title_many_votes = create(:debate, title: 'stop some of the corruption', cached_votes_up: 500) similar_title_many_votes = create(:debate, title: 'stop some of the corruption', cached_votes_up: 500)
results = Debate.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(exact_title_few_votes) expect(results.first).to eq(exact_title_few_votes)
expect(results.second).to eq(similar_title_many_votes) expect(results.second).to eq(similar_title_many_votes)
@@ -581,7 +581,7 @@ describe Debate do
highest_score.update_column(:hot_score, 100) highest_score.update_column(:hot_score, 100)
average_score.update_column(:hot_score, 10) average_score.update_column(:hot_score, 10)
results = Debate.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(average_score) expect(results.first).to eq(average_score)
expect(results.second).to eq(highest_score) expect(results.second).to eq(highest_score)
@@ -603,7 +603,7 @@ describe Debate do
highest_score.update_column(:confidence_score, 100) highest_score.update_column(:confidence_score, 100)
average_score.update_column(:confidence_score, 10) average_score.update_column(:confidence_score, 10)
results = Debate.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(average_score) expect(results.first).to eq(average_score)
expect(results.second).to eq(highest_score) expect(results.second).to eq(highest_score)
@@ -621,7 +621,7 @@ describe Debate do
newest = create(:debate, title: 'stop corruption', cached_votes_up: 2, created_at: Time.current) newest = create(:debate, title: 'stop corruption', cached_votes_up: 2, created_at: Time.current)
oldest = create(:debate, title: 'stop corruption', cached_votes_up: 3, created_at: 1.month.ago) oldest = create(:debate, title: 'stop corruption', cached_votes_up: 3, created_at: 1.month.ago)
results = Debate.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(oldest) expect(results.first).to eq(oldest)
expect(results.second).to eq(newest) expect(results.second).to eq(newest)
@@ -639,7 +639,7 @@ describe Debate do
most_commented = create(:debate, title: 'stop corruption', cached_votes_up: 2, comments_count: 100) most_commented = create(:debate, title: 'stop corruption', cached_votes_up: 2, comments_count: 100)
some_comments = create(:debate, title: 'stop corruption', cached_votes_up: 3, comments_count: 10) some_comments = create(:debate, title: 'stop corruption', cached_votes_up: 3, comments_count: 10)
results = Debate.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(some_comments) expect(results.first).to eq(some_comments)
expect(results.second).to eq(most_commented) expect(results.second).to eq(most_commented)
@@ -659,28 +659,28 @@ describe Debate do
it "no words match" do it "no words match" do
debate = create(:debate, title: 'save world') debate = create(:debate, title: 'save world')
results = Debate.search('destroy planet') results = described_class.search('destroy planet')
expect(results).to eq([]) expect(results).to eq([])
end end
it "too many typos" do it "too many typos" do
debate = create(:debate, title: 'fantastic') debate = create(:debate, title: 'fantastic')
results = Debate.search('frantac') results = described_class.search('frantac')
expect(results).to eq([]) expect(results).to eq([])
end end
it "too much stemming" do it "too much stemming" do
debate = create(:debate, title: 'reloj') debate = create(:debate, title: 'reloj')
results = Debate.search('superrelojimetro') results = described_class.search('superrelojimetro')
expect(results).to eq([]) expect(results).to eq([])
end end
it "empty" do it "empty" do
debate = create(:debate, title: 'great') debate = create(:debate, title: 'great')
results = Debate.search('') results = described_class.search('')
expect(results).to eq([]) expect(results).to eq([])
end end
@@ -690,12 +690,12 @@ describe Debate do
describe "#last_week" do describe "#last_week" do
it "should return debates created this week" do it "should return debates created this week" do
debate = create(:debate) debate = create(:debate)
expect(Debate.last_week.all).to include debate expect(described_class.last_week.all).to include debate
end end
it "should not show debates created more than a week ago" do it "should not show debates created more than a week ago" do
debate = create(:debate, created_at: 8.days.ago) debate = create(:debate, created_at: 8.days.ago)
expect(Debate.last_week.all).to_not include debate expect(described_class.last_week.all).to_not include debate
end end
end end
@@ -708,12 +708,12 @@ describe Debate do
describe 'public_for_api scope' do describe 'public_for_api scope' do
it 'returns debates' do it 'returns debates' do
debate = create(:debate) debate = create(:debate)
expect(Debate.public_for_api).to include(debate) expect(described_class.public_for_api).to include(debate)
end end
it 'does not return hidden debates' do it 'does not return hidden debates' do
debate = create(:debate, :hidden) debate = create(:debate, :hidden)
expect(Debate.public_for_api).to_not include(debate) expect(described_class.public_for_api).to_not include(debate)
end end
end end
@@ -724,7 +724,7 @@ describe Debate do
it "Should not return any debates when user has not interests" do it "Should not return any debates when user has not interests" do
create(:debate) create(:debate)
expect(Debate.recommendations(user).size).to eq 0 expect(described_class.recommendations(user).size).to eq 0
end end
it "Should return debates ordered by cached_votes_total" do it "Should return debates ordered by cached_votes_total" do
@@ -734,7 +734,7 @@ describe Debate do
proposal = create(:proposal, tag_list: "Sport") proposal = create(:proposal, tag_list: "Sport")
create(:follow, followable: proposal, user: user) create(:follow, followable: proposal, user: user)
result = Debate.recommendations(user).sort_by_recommendations result = described_class.recommendations(user).sort_by_recommendations
expect(result.first).to eq debate3 expect(result.first).to eq debate3
expect(result.second).to eq debate2 expect(result.second).to eq debate2
@@ -747,7 +747,7 @@ describe Debate do
proposal1 = create(:proposal, tag_list: "Sport") proposal1 = create(:proposal, tag_list: "Sport")
create(:follow, followable: proposal1, user: user) create(:follow, followable: proposal1, user: user)
result = Debate.recommendations(user) result = described_class.recommendations(user)
expect(result.size).to eq 1 expect(result.size).to eq 1
expect(result).to eq [debate1] expect(result).to eq [debate1]
@@ -759,7 +759,7 @@ describe Debate do
proposal = create(:proposal, tag_list: "Sport") proposal = create(:proposal, tag_list: "Sport")
create(:follow, followable: proposal, user: user) create(:follow, followable: proposal, user: user)
result = Debate.recommendations(user) result = described_class.recommendations(user)
expect(result.size).to eq 1 expect(result.size).to eq 1
expect(result).to eq [debate2] expect(result).to eq [debate2]

View File

@@ -81,14 +81,14 @@ describe DirectMessage do
direct_message2 = create(:direct_message, created_at: Time.now.utc) direct_message2 = create(:direct_message, created_at: Time.now.utc)
direct_message3 = create(:direct_message, created_at: Time.now.utc.end_of_day) direct_message3 = create(:direct_message, created_at: Time.now.utc.end_of_day)
expect(DirectMessage.today.count).to eq 3 expect(described_class.today.count).to eq 3
end end
it "should not return direct messages created another day" do it "should not return direct messages created another day" do
direct_message1 = create(:direct_message, created_at: 1.day.ago) direct_message1 = create(:direct_message, created_at: 1.day.ago)
direct_message2 = create(:direct_message, created_at: 1.day.from_now) direct_message2 = create(:direct_message, created_at: 1.day.from_now)
expect(DirectMessage.today.count).to eq 0 expect(described_class.today.count).to eq 0
end end
end end

View File

@@ -8,15 +8,15 @@ describe Flag do
describe '.flag' do describe '.flag' do
it 'creates a flag when there is none' do it 'creates a flag when there is none' do
expect { described_class.flag(user, comment) }.to change{ Flag.count }.by(1) expect { described_class.flag(user, comment) }.to change{ described_class.count }.by(1)
expect(Flag.last.user).to eq(user) expect(described_class.last.user).to eq(user)
expect(Flag.last.flaggable).to eq(comment) expect(described_class.last.flaggable).to eq(comment)
end end
it 'does nothing if the flag already exists' do it 'does nothing if the flag already exists' do
described_class.flag(user, comment) described_class.flag(user, comment)
expect(described_class.flag(user, comment)).to eq(false) expect(described_class.flag(user, comment)).to eq(false)
expect(Flag.by_user_and_flaggable(user, comment).count).to eq(1) expect(described_class.by_user_and_flaggable(user, comment).count).to eq(1)
end end
it 'increases the flag count' do it 'increases the flag count' do
@@ -33,7 +33,7 @@ describe Flag do
before(:each) { described_class.flag(user, comment) } before(:each) { described_class.flag(user, comment) }
it 'removes an existing flag' do it 'removes an existing flag' do
expect { described_class.unflag(user, comment) }.to change{ Flag.count }.by(-1) expect { described_class.unflag(user, comment) }.to change{ described_class.count }.by(-1)
end end
it 'decreases the flag count' do it 'decreases the flag count' do

View File

@@ -17,7 +17,7 @@ describe Legislation::Question do
expect do expect do
question.destroy question.destroy
end.to change { Legislation::Question.count }.by(-1) end.to change { described_class.count }.by(-1)
end end
example "when it has options but no answers" do example "when it has options but no answers" do
@@ -26,7 +26,7 @@ describe Legislation::Question do
expect do expect do
question.destroy question.destroy
end.to change { Legislation::Question.count }.by(-1) end.to change { described_class.count }.by(-1)
end end
example "when it has options and answers" do example "when it has options and answers" do
@@ -37,7 +37,7 @@ describe Legislation::Question do
expect do expect do
question.destroy question.destroy
end.to change { Legislation::Question.count }.by(-1) end.to change { described_class.count }.by(-1)
end end
end end

View File

@@ -5,7 +5,7 @@ describe Notification do
describe "#unread (scope)" do describe "#unread (scope)" do
it "returns only unread notifications" do it "returns only unread notifications" do
2.times { create :notification } 2.times { create :notification }
expect(Notification.unread.size).to be 2 expect(described_class.unread.size).to be 2
end end
end end
@@ -14,7 +14,7 @@ describe Notification do
old_notification = create :notification old_notification = create :notification
new_notification = create :notification new_notification = create :notification
sorted_notifications = Notification.recent sorted_notifications = described_class.recent
expect(sorted_notifications.size).to be 2 expect(sorted_notifications.size).to be 2
expect(sorted_notifications.first).to eq new_notification expect(sorted_notifications.first).to eq new_notification
expect(sorted_notifications.last).to eq old_notification expect(sorted_notifications.last).to eq old_notification
@@ -23,8 +23,8 @@ describe Notification do
describe "#for_render (scope)" do describe "#for_render (scope)" do
it "returns notifications including notifiable and user" do it "returns notifications including notifiable and user" do
expect(Notification).to receive(:includes).with(:notifiable).exactly(:once) expect(described_class).to receive(:includes).with(:notifiable).exactly(:once)
Notification.for_render described_class.for_render
end end
end end
@@ -40,10 +40,10 @@ describe Notification do
describe "#mark_as_read" do describe "#mark_as_read" do
it "destroys notification" do it "destroys notification" do
notification = create :notification notification = create :notification
expect(Notification.unread.size).to eq 1 expect(described_class.unread.size).to eq 1
notification.mark_as_read notification.mark_as_read
expect(Notification.unread.size).to eq 0 expect(described_class.unread.size).to eq 0
end end
end end

View File

@@ -28,13 +28,13 @@ describe Officing::Residence do
describe "allowed age" do describe "allowed age" do
it "should not be valid if user is under allowed age" do it "should not be valid if user is under allowed age" do
allow_any_instance_of(Officing::Residence).to receive(:date_of_birth).and_return(15.years.ago) allow_any_instance_of(described_class).to receive(:date_of_birth).and_return(15.years.ago)
expect(residence).to_not be_valid expect(residence).to_not be_valid
expect(residence.errors[:year_of_birth]).to include("You don't have the required age to participate") expect(residence.errors[:year_of_birth]).to include("You don't have the required age to participate")
end end
it "should be valid if user is above allowed age" do it "should be valid if user is above allowed age" do
allow_any_instance_of(Officing::Residence).to receive(:date_of_birth).and_return(16.years.ago) allow_any_instance_of(described_class).to receive(:date_of_birth).and_return(16.years.ago)
expect(residence).to be_valid expect(residence).to be_valid
expect(residence.errors[:year_of_birth]).to be_empty expect(residence.errors[:year_of_birth]).to be_empty
end end
@@ -44,12 +44,12 @@ describe Officing::Residence do
describe "new" do describe "new" do
it "should upcase document number" do it "should upcase document number" do
residence = Officing::Residence.new(document_number: "x1234567z") residence = described_class.new(document_number: "x1234567z")
expect(residence.document_number).to eq("X1234567Z") expect(residence.document_number).to eq("X1234567Z")
end end
it "should remove all characters except numbers and letters" do it "should remove all characters except numbers and letters" do
residence = Officing::Residence.new(document_number: " 12.345.678 - B") residence = described_class.new(document_number: " 12.345.678 - B")
expect(residence.document_number).to eq("12345678B") expect(residence.document_number).to eq("12345678B")
end end
end end

View File

@@ -48,24 +48,24 @@ describe Organization do
let!(:organization) { create(:organization, name: "Watershed", user: create(:user, phone_number: "333")) } let!(:organization) { create(:organization, name: "Watershed", user: create(:user, phone_number: "333")) }
it "returns no results if search term is empty" do it "returns no results if search term is empty" do
expect(Organization.search(" ").size).to eq(0) expect(described_class.search(" ").size).to eq(0)
end end
it "finds fuzzily by name" do it "finds fuzzily by name" do
expect(Organization.search("Greenpeace").size).to eq 0 expect(described_class.search("Greenpeace").size).to eq 0
search = Organization.search("Tershe") search = described_class.search("Tershe")
expect(search.size).to eq 1 expect(search.size).to eq 1
expect(search.first).to eq organization expect(search.first).to eq organization
end end
scenario "finds by users email" do scenario "finds by users email" do
search = Organization.search(organization.user.email) search = described_class.search(organization.user.email)
expect(search.size).to eq 1 expect(search.size).to eq 1
expect(search.first).to eq organization expect(search.first).to eq organization
end end
scenario "finds by users phone number" do scenario "finds by users phone number" do
search = Organization.search(organization.user.phone_number) search = described_class.search(organization.user.phone_number)
expect(search.size).to eq 1 expect(search.size).to eq 1
expect(search.first).to eq organization expect(search.first).to eq organization
end end

View File

@@ -18,9 +18,9 @@ describe Poll::Booth do
booth1 = create(:poll_booth, name: "Booth number 1", location: "City center") booth1 = create(:poll_booth, name: "Booth number 1", location: "City center")
booth2 = create(:poll_booth, name: "Central", location: "Town hall") booth2 = create(:poll_booth, name: "Central", location: "Town hall")
expect(Poll::Booth.search("number")).to eq([booth1]) expect(described_class.search("number")).to eq([booth1])
expect(Poll::Booth.search("hall")).to eq([booth2]) expect(described_class.search("hall")).to eq([booth2])
expect(Poll::Booth.search("cen").size).to eq 2 expect(described_class.search("cen").size).to eq 2
end end
end end
@@ -39,9 +39,9 @@ describe Poll::Booth do
create(:poll_booth_assignment, poll: incoming_poll, booth: booth_for_incoming_poll) create(:poll_booth_assignment, poll: incoming_poll, booth: booth_for_incoming_poll)
create(:poll_booth_assignment, poll: expired_poll, booth: booth_for_expired_poll) create(:poll_booth_assignment, poll: expired_poll, booth: booth_for_expired_poll)
expect(Poll::Booth.available).to include(booth_for_current_poll) expect(described_class.available).to include(booth_for_current_poll)
expect(Poll::Booth.available).to include(booth_for_incoming_poll) expect(described_class.available).to include(booth_for_incoming_poll)
expect(Poll::Booth.available).to_not include(booth_for_expired_poll) expect(described_class.available).to_not include(booth_for_expired_poll)
end end
end end

View File

@@ -72,7 +72,7 @@ describe Poll do
incoming = create(:poll, :incoming) incoming = create(:poll, :incoming)
expired = create(:poll, :expired) expired = create(:poll, :expired)
current_or_incoming = Poll.current_or_incoming current_or_incoming = described_class.current_or_incoming
expect(current_or_incoming).to include(current) expect(current_or_incoming).to include(current)
expect(current_or_incoming).to include(incoming) expect(current_or_incoming).to include(incoming)
@@ -87,7 +87,7 @@ describe Poll do
expired = create(:poll, :expired) expired = create(:poll, :expired)
recounting = create(:poll, :recounting) recounting = create(:poll, :recounting)
recounting_polls = Poll.recounting recounting_polls = described_class.recounting
expect(recounting_polls).to_not include(current) expect(recounting_polls).to_not include(current)
expect(recounting_polls).to_not include(incoming) expect(recounting_polls).to_not include(incoming)
@@ -103,7 +103,7 @@ describe Poll do
expired = create(:poll, :expired) expired = create(:poll, :expired)
recounting = create(:poll, :recounting) recounting = create(:poll, :recounting)
current_or_recounting_or_incoming = Poll.current_or_recounting_or_incoming current_or_recounting_or_incoming = described_class.current_or_recounting_or_incoming
expect(current_or_recounting_or_incoming).to include(current) expect(current_or_recounting_or_incoming).to include(current)
expect(current_or_recounting_or_incoming).to include(recounting) expect(current_or_recounting_or_incoming).to include(recounting)
@@ -159,16 +159,16 @@ describe Poll do
describe 'class method' do describe 'class method' do
it "returns no polls for non-users and level 1 users" do it "returns no polls for non-users and level 1 users" do
expect(Poll.answerable_by(nil)).to be_empty expect(described_class.answerable_by(nil)).to be_empty
expect(Poll.answerable_by(level1)).to be_empty expect(described_class.answerable_by(level1)).to be_empty
end end
it "returns unrestricted polls for level 2 users" do it "returns unrestricted polls for level 2 users" do
expect(Poll.answerable_by(level2).to_a).to eq([current_poll]) expect(described_class.answerable_by(level2).to_a).to eq([current_poll])
end end
it "returns restricted & unrestricted polls for level 2 users of the correct geozone" do it "returns restricted & unrestricted polls for level 2 users of the correct geozone" do
list = Poll.answerable_by(level2_from_geozone) list = described_class.answerable_by(level2_from_geozone)
.order(:geozone_restricted) .order(:geozone_restricted)
expect(list.to_a).to eq([current_poll, current_restricted_poll]) expect(list.to_a).to eq([current_poll, current_restricted_poll])
end end

View File

@@ -81,7 +81,7 @@ describe Poll::Shift do
create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment1, date: Date.tomorrow) create(:poll_officer_assignment, officer: officer, booth_assignment: booth_assignment1, date: Date.tomorrow)
expect { Poll::Shift.last.destroy }.to change {Poll::OfficerAssignment.all.count}.by(-2) expect { described_class.last.destroy }.to change {Poll::OfficerAssignment.all.count}.by(-2)
end end
it "should create final officer_assignments" do it "should create final officer_assignments" do

View File

@@ -11,7 +11,7 @@ describe Poll::Stats do
3.times {create(:poll_voter, poll: poll, origin: 'booth')} 3.times {create(:poll_voter, poll: poll, origin: 'booth')}
create(:poll_voter, poll: poll) create(:poll_voter, poll: poll)
create(:poll_recount, origin: 'booth', white_amount: 1, null_amount: 0, total_amount: 2, booth_assignment_id: booth_assignment.id) create(:poll_recount, origin: 'booth', white_amount: 1, null_amount: 0, total_amount: 2, booth_assignment_id: booth_assignment.id)
stats = Poll::Stats.new(poll).generate stats = described_class.new(poll).generate
expect(stats[:total_participants]).to eq(5) expect(stats[:total_participants]).to eq(5)
expect(stats[:total_participants_web]).to eq(2) expect(stats[:total_participants_web]).to eq(2)

View File

@@ -117,7 +117,7 @@ describe Poll::Voter do
voter2 = create(:poll_voter, origin: "web") voter2 = create(:poll_voter, origin: "web")
voter3 = create(:poll_voter, origin: "booth") voter3 = create(:poll_voter, origin: "booth")
web_voters = Poll::Voter.web web_voters = described_class.web
expect(web_voters.count).to eq(2) expect(web_voters.count).to eq(2)
expect(web_voters).to include(voter1) expect(web_voters).to include(voter1)
@@ -132,7 +132,7 @@ describe Poll::Voter do
voter2 = create(:poll_voter, origin: "booth") voter2 = create(:poll_voter, origin: "booth")
voter3 = create(:poll_voter, origin: "web") voter3 = create(:poll_voter, origin: "web")
booth_voters = Poll::Voter.booth booth_voters = described_class.booth
expect(booth_voters.count).to eq(2) expect(booth_voters.count).to eq(2)
expect(booth_voters).to include(voter1) expect(booth_voters).to include(voter1)

View File

@@ -27,20 +27,20 @@ describe ProposalNotification do
proposal = create(:proposal) proposal = create(:proposal)
notification = create(:proposal_notification, proposal: proposal) notification = create(:proposal_notification, proposal: proposal)
expect(ProposalNotification.public_for_api).to include(notification) expect(described_class.public_for_api).to include(notification)
end end
it "blocks proposal notifications whose proposal is hidden" do it "blocks proposal notifications whose proposal is hidden" do
proposal = create(:proposal, :hidden) proposal = create(:proposal, :hidden)
notification = create(:proposal_notification, proposal: proposal) notification = create(:proposal_notification, proposal: proposal)
expect(ProposalNotification.public_for_api).not_to include(notification) expect(described_class.public_for_api).not_to include(notification)
end end
it "blocks proposal notifications without proposal" do it "blocks proposal notifications without proposal" do
proposal = build(:proposal_notification, proposal: nil).save!(validate: false) proposal = build(:proposal_notification, proposal: nil).save!(validate: false)
expect(ProposalNotification.public_for_api).not_to include(notification) expect(described_class.public_for_api).not_to include(notification)
end end
end end

View File

@@ -445,39 +445,39 @@ describe Proposal do
it "searches by title" do it "searches by title" do
proposal = create(:proposal, title: 'save the world') proposal = create(:proposal, title: 'save the world')
results = Proposal.search('save the world') results = described_class.search('save the world')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
end end
it "searches by summary" do it "searches by summary" do
proposal = create(:proposal, summary: 'basically...') proposal = create(:proposal, summary: 'basically...')
results = Proposal.search('basically') results = described_class.search('basically')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
end end
it "searches by description" do it "searches by description" do
proposal = create(:proposal, description: 'in order to save the world one must think about...') proposal = create(:proposal, description: 'in order to save the world one must think about...')
results = Proposal.search('one must think') results = described_class.search('one must think')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
end end
it "searches by question" do it "searches by question" do
proposal = create(:proposal, question: 'to be or not to be') proposal = create(:proposal, question: 'to be or not to be')
results = Proposal.search('to be or not to be') results = described_class.search('to be or not to be')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
end end
it "searches by author name" do it "searches by author name" do
author = create(:user, username: 'Danny Trejo') author = create(:user, username: 'Danny Trejo')
proposal = create(:proposal, author: author) proposal = create(:proposal, author: author)
results = Proposal.search('Danny') results = described_class.search('Danny')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
end end
it "searches by geozone" do it "searches by geozone" do
geozone = create(:geozone, name: 'California') geozone = create(:geozone, name: 'California')
proposal = create(:proposal, geozone: geozone) proposal = create(:proposal, geozone: geozone)
results = Proposal.search('California') results = described_class.search('California')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
end end
@@ -488,13 +488,13 @@ describe Proposal do
it "searches word stems" do it "searches word stems" do
proposal = create(:proposal, summary: 'Economía') proposal = create(:proposal, summary: 'Economía')
results = Proposal.search('economía') results = described_class.search('economía')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
results = Proposal.search('econo') results = described_class.search('econo')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
results = Proposal.search('eco') results = described_class.search('eco')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
end end
@@ -504,15 +504,15 @@ describe Proposal do
it "searches with accents" do it "searches with accents" do
proposal = create(:proposal, summary: 'difusión') proposal = create(:proposal, summary: 'difusión')
results = Proposal.search('difusion') results = described_class.search('difusion')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
proposal2 = create(:proposal, summary: 'estadisticas') proposal2 = create(:proposal, summary: 'estadisticas')
results = Proposal.search('estadísticas') results = described_class.search('estadísticas')
expect(results).to eq([proposal2]) expect(results).to eq([proposal2])
proposal3 = create(:proposal, summary: 'público') proposal3 = create(:proposal, summary: 'público')
results = Proposal.search('publico') results = described_class.search('publico')
expect(results).to eq([proposal3]) expect(results).to eq([proposal3])
end end
end end
@@ -521,11 +521,11 @@ describe Proposal do
it "searches case insensite" do it "searches case insensite" do
proposal = create(:proposal, title: 'SHOUT') proposal = create(:proposal, title: 'SHOUT')
results = Proposal.search('shout') results = described_class.search('shout')
expect(results).to eq([proposal]) expect(results).to eq([proposal])
proposal2 = create(:proposal, title: "scream") proposal2 = create(:proposal, title: "scream")
results = Proposal.search("SCREAM") results = described_class.search("SCREAM")
expect(results).to eq([proposal2]) expect(results).to eq([proposal2])
end end
end end
@@ -534,10 +534,10 @@ describe Proposal do
it "searches by tags" do it "searches by tags" do
proposal = create(:proposal, tag_list: 'Latina') proposal = create(:proposal, tag_list: 'Latina')
results = Proposal.search('Latina') results = described_class.search('Latina')
expect(results.first).to eq(proposal) expect(results.first).to eq(proposal)
results = Proposal.search('Latin') results = described_class.search('Latin')
expect(results.first).to eq(proposal) expect(results.first).to eq(proposal)
end end
end end
@@ -550,7 +550,7 @@ describe Proposal do
proposal_description = create(:proposal, description: 'stop corruption') proposal_description = create(:proposal, description: 'stop corruption')
proposal_summary = create(:proposal, summary: 'stop corruption') proposal_summary = create(:proposal, summary: 'stop corruption')
results = Proposal.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(proposal_title) expect(results.first).to eq(proposal_title)
expect(results.second).to eq(proposal_question) expect(results.second).to eq(proposal_question)
@@ -565,7 +565,7 @@ describe Proposal do
summary_most_voted = create(:proposal, summary: 'stop corruption', cached_votes_up: 10) summary_most_voted = create(:proposal, summary: 'stop corruption', cached_votes_up: 10)
results = Proposal.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(title_most_voted) expect(results.first).to eq(title_most_voted)
expect(results.second).to eq(title_some_votes) expect(results.second).to eq(title_some_votes)
@@ -577,7 +577,7 @@ describe Proposal do
exact_title_few_votes = create(:proposal, title: 'stop corruption', cached_votes_up: 5) exact_title_few_votes = create(:proposal, title: 'stop corruption', cached_votes_up: 5)
similar_title_many_votes = create(:proposal, title: 'stop some of the corruption', cached_votes_up: 500) similar_title_many_votes = create(:proposal, title: 'stop some of the corruption', cached_votes_up: 500)
results = Proposal.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(exact_title_few_votes) expect(results.first).to eq(exact_title_few_votes)
expect(results.second).to eq(similar_title_many_votes) expect(results.second).to eq(similar_title_many_votes)
@@ -596,7 +596,7 @@ describe Proposal do
highest_score.update_column(:hot_score, 100) highest_score.update_column(:hot_score, 100)
average_score.update_column(:hot_score, 10) average_score.update_column(:hot_score, 10)
results = Proposal.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(average_score) expect(results.first).to eq(average_score)
expect(results.second).to eq(highest_score) expect(results.second).to eq(highest_score)
@@ -618,7 +618,7 @@ describe Proposal do
highest_score.update_column(:confidence_score, 100) highest_score.update_column(:confidence_score, 100)
average_score.update_column(:confidence_score, 10) average_score.update_column(:confidence_score, 10)
results = Proposal.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(average_score) expect(results.first).to eq(average_score)
expect(results.second).to eq(highest_score) expect(results.second).to eq(highest_score)
@@ -636,7 +636,7 @@ describe Proposal do
newest = create(:proposal, title: 'stop corruption', cached_votes_up: 2, created_at: Time.current) newest = create(:proposal, title: 'stop corruption', cached_votes_up: 2, created_at: Time.current)
oldest = create(:proposal, title: 'stop corruption', cached_votes_up: 3, created_at: 1.month.ago) oldest = create(:proposal, title: 'stop corruption', cached_votes_up: 3, created_at: 1.month.ago)
results = Proposal.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(oldest) expect(results.first).to eq(oldest)
expect(results.second).to eq(newest) expect(results.second).to eq(newest)
@@ -654,7 +654,7 @@ describe Proposal do
most_commented = create(:proposal, title: 'stop corruption', cached_votes_up: 2, comments_count: 100) most_commented = create(:proposal, title: 'stop corruption', cached_votes_up: 2, comments_count: 100)
some_comments = create(:proposal, title: 'stop corruption', cached_votes_up: 3, comments_count: 10) some_comments = create(:proposal, title: 'stop corruption', cached_votes_up: 3, comments_count: 10)
results = Proposal.search('stop corruption') results = described_class.search('stop corruption')
expect(results.first).to eq(some_comments) expect(results.first).to eq(some_comments)
expect(results.second).to eq(most_commented) expect(results.second).to eq(most_commented)
@@ -674,28 +674,28 @@ describe Proposal do
it "no words match" do it "no words match" do
create(:proposal, title: 'save world') create(:proposal, title: 'save world')
results = Proposal.search('destroy planet') results = described_class.search('destroy planet')
expect(results).to eq([]) expect(results).to eq([])
end end
it "too many typos" do it "too many typos" do
create(:proposal, title: 'fantastic') create(:proposal, title: 'fantastic')
results = Proposal.search('frantac') results = described_class.search('frantac')
expect(results).to eq([]) expect(results).to eq([])
end end
it "too much stemming" do it "too much stemming" do
create(:proposal, title: 'reloj') create(:proposal, title: 'reloj')
results = Proposal.search('superrelojimetro') results = described_class.search('superrelojimetro')
expect(results).to eq([]) expect(results).to eq([])
end end
it "empty" do it "empty" do
create(:proposal, title: 'great') create(:proposal, title: 'great')
results = Proposal.search('') results = described_class.search('')
expect(results).to eq([]) expect(results).to eq([])
end end
@@ -705,12 +705,12 @@ describe Proposal do
describe "#last_week" do describe "#last_week" do
it "should return proposals created this week" do it "should return proposals created this week" do
proposal = create(:proposal) proposal = create(:proposal)
expect(Proposal.last_week).to include(proposal) expect(described_class.last_week).to include(proposal)
end end
it "should not return proposals created more than a week ago" do it "should not return proposals created more than a week ago" do
proposal = create(:proposal, created_at: 8.days.ago) proposal = create(:proposal, created_at: 8.days.ago)
expect(Proposal.last_week).to_not include(proposal) expect(described_class.last_week).to_not include(proposal)
end end
end end
@@ -722,14 +722,14 @@ describe Proposal do
create(:tag, :category, name: 'culture') create(:tag, :category, name: 'culture')
proposal = create(:proposal, tag_list: 'culture') proposal = create(:proposal, tag_list: 'culture')
expect(Proposal.for_summary.values.flatten).to include(proposal) expect(described_class.for_summary.values.flatten).to include(proposal)
end end
it "should not return proposals tagged without a category" do it "should not return proposals tagged without a category" do
create(:tag, :category, name: 'culture') create(:tag, :category, name: 'culture')
proposal = create(:proposal, tag_list: 'parks') proposal = create(:proposal, tag_list: 'parks')
expect(Proposal.for_summary.values.flatten).to_not include(proposal) expect(described_class.for_summary.values.flatten).to_not include(proposal)
end end
end end
@@ -739,27 +739,27 @@ describe Proposal do
california = create(:geozone, name: 'california') california = create(:geozone, name: 'california')
proposal = create(:proposal, geozone: california) proposal = create(:proposal, geozone: california)
expect(Proposal.for_summary.values.flatten).to include(proposal) expect(described_class.for_summary.values.flatten).to include(proposal)
end end
it "should not return proposals without a geozone" do it "should not return proposals without a geozone" do
create(:geozone, name: 'california') create(:geozone, name: 'california')
proposal = create(:proposal) proposal = create(:proposal)
expect(Proposal.for_summary.values.flatten).to_not include(proposal) expect(described_class.for_summary.values.flatten).to_not include(proposal)
end end
end end
it "should return proposals created this week" do it "should return proposals created this week" do
create(:tag, :category, name: 'culture') create(:tag, :category, name: 'culture')
proposal = create(:proposal, tag_list: 'culture') proposal = create(:proposal, tag_list: 'culture')
expect(Proposal.for_summary.values.flatten).to include(proposal) expect(described_class.for_summary.values.flatten).to include(proposal)
end end
it "should not return proposals created more than a week ago" do it "should not return proposals created more than a week ago" do
create(:tag, :category, name: 'culture') create(:tag, :category, name: 'culture')
proposal = create(:proposal, tag_list: 'culture', created_at: 8.days.ago) proposal = create(:proposal, tag_list: 'culture', created_at: 8.days.ago)
expect(Proposal.for_summary.values.flatten).to_not include(proposal) expect(described_class.for_summary.values.flatten).to_not include(proposal)
end end
it "should order proposals by votes" do it "should order proposals by votes" do
@@ -768,7 +768,7 @@ describe Proposal do
create(:proposal, tag_list: 'culture').update_column(:confidence_score, 10) create(:proposal, tag_list: 'culture').update_column(:confidence_score, 10)
create(:proposal, tag_list: 'culture').update_column(:confidence_score, 5) create(:proposal, tag_list: 'culture').update_column(:confidence_score, 5)
results = Proposal.for_summary.values.flatten results = described_class.for_summary.values.flatten
expect(results.first.confidence_score).to be(10) expect(results.first.confidence_score).to be(10)
expect(results.second.confidence_score).to be(5) expect(results.second.confidence_score).to be(5)
@@ -784,7 +784,7 @@ describe Proposal do
culture_proposal = create(:proposal, tag_list: 'culture') culture_proposal = create(:proposal, tag_list: 'culture')
social_proposal = create(:proposal, tag_list: 'social services') social_proposal = create(:proposal, tag_list: 'social services')
results = Proposal.for_summary.values.flatten results = described_class.for_summary.values.flatten
expect(results.first).to eq(culture_proposal) expect(results.first).to eq(culture_proposal)
expect(results.second).to eq(health_proposal) expect(results.second).to eq(health_proposal)
@@ -803,7 +803,7 @@ describe Proposal do
proposal1.update_column(:confidence_score, 10) proposal1.update_column(:confidence_score, 10)
proposal2.update_column(:confidence_score, 9) proposal2.update_column(:confidence_score, 9)
expect(Proposal.for_summary).to include('culture' => [proposal1, proposal2], 'health' => [proposal3]) expect(described_class.for_summary).to include('culture' => [proposal1, proposal2], 'health' => [proposal3])
end end
end end
@@ -823,14 +823,14 @@ describe Proposal do
end end
it "scope retired" do it "scope retired" do
retired = Proposal.retired retired = described_class.retired
expect(retired.size).to eq(1) expect(retired.size).to eq(1)
expect(retired.first).to eq(proposal2) expect(retired.first).to eq(proposal2)
end end
it "scope not_retired" do it "scope not_retired" do
not_retired = Proposal.not_retired not_retired = described_class.not_retired
expect(not_retired.size).to eq(1) expect(not_retired.size).to eq(1)
expect(not_retired.first).to eq(proposal1) expect(not_retired.first).to eq(proposal1)
@@ -847,14 +847,14 @@ describe Proposal do
end end
it "scope archived" do it "scope archived" do
archived = Proposal.archived archived = described_class.archived
expect(archived.size).to eq(1) expect(archived.size).to eq(1)
expect(archived.first).to eq(archived_proposal) expect(archived.first).to eq(archived_proposal)
end end
it "scope archived" do it "scope archived" do
not_archived = Proposal.not_archived not_archived = described_class.not_archived
expect(not_archived.size).to eq(1) expect(not_archived.size).to eq(1)
expect(not_archived.first).to eq(new_proposal) expect(not_archived.first).to eq(new_proposal)
@@ -864,12 +864,12 @@ describe Proposal do
describe 'public_for_api scope' do describe 'public_for_api scope' do
it 'returns proposals' do it 'returns proposals' do
proposal = create(:proposal) proposal = create(:proposal)
expect(Proposal.public_for_api).to include(proposal) expect(described_class.public_for_api).to include(proposal)
end end
it 'does not return hidden proposals' do it 'does not return hidden proposals' do
proposal = create(:proposal, :hidden) proposal = create(:proposal, :hidden)
expect(Proposal.public_for_api).to_not include(proposal) expect(described_class.public_for_api).to_not include(proposal)
end end
end end
@@ -903,7 +903,7 @@ describe Proposal do
it "Should not return any proposals when user has not interests" do it "Should not return any proposals when user has not interests" do
create(:proposal) create(:proposal)
expect(Proposal.recommendations(user).size).to eq 0 expect(described_class.recommendations(user).size).to eq 0
end end
it "Should return proposals ordered by cached_votes_up" do it "Should return proposals ordered by cached_votes_up" do
@@ -913,7 +913,7 @@ describe Proposal do
proposal4 = create(:proposal, tag_list: "Sport") proposal4 = create(:proposal, tag_list: "Sport")
create(:follow, followable: proposal4, user: user) create(:follow, followable: proposal4, user: user)
result = Proposal.recommendations(user).sort_by_recommendations result = described_class.recommendations(user).sort_by_recommendations
expect(result.first).to eq proposal3 expect(result.first).to eq proposal3
expect(result.second).to eq proposal2 expect(result.second).to eq proposal2
@@ -926,7 +926,7 @@ describe Proposal do
proposal3 = create(:proposal, tag_list: "Politics") proposal3 = create(:proposal, tag_list: "Politics")
create(:follow, followable: proposal1, user: user) create(:follow, followable: proposal1, user: user)
result = Proposal.recommendations(user) result = described_class.recommendations(user)
expect(result.size).to eq 1 expect(result.size).to eq 1
expect(result).to eq [proposal2] expect(result).to eq [proposal2]
@@ -936,7 +936,7 @@ describe Proposal do
proposal1 = create(:proposal, tag_list: "Sport") proposal1 = create(:proposal, tag_list: "Sport")
create(:follow, followable: proposal1, user: user) create(:follow, followable: proposal1, user: user)
result = Proposal.recommendations(user) result = described_class.recommendations(user)
expect(result.size).to eq 0 expect(result.size).to eq 0
end end
@@ -947,7 +947,7 @@ describe Proposal do
proposal3 = create(:proposal, tag_list: "Sport") proposal3 = create(:proposal, tag_list: "Sport")
create(:follow, followable: proposal3, user: user) create(:follow, followable: proposal3, user: user)
result = Proposal.recommendations(user) result = described_class.recommendations(user)
expect(result.size).to eq 1 expect(result.size).to eq 1
expect(result).to eq [proposal2] expect(result).to eq [proposal2]
@@ -959,7 +959,7 @@ describe Proposal do
archived_proposal = create(:proposal, :archived) archived_proposal = create(:proposal, :archived)
create(:follow, followable: proposal1, user: user) create(:follow, followable: proposal1, user: user)
result = Proposal.recommendations(user) result = described_class.recommendations(user)
expect(result.size).to eq(1) expect(result.size).to eq(1)
expect(result).to eq([proposal2]) expect(result).to eq([proposal2])
end end
@@ -971,7 +971,7 @@ describe Proposal do
create(:vote, votable: proposal1, voter: user) create(:vote, votable: proposal1, voter: user)
create(:follow, followable: proposal2, user: user) create(:follow, followable: proposal2, user: user)
result = Proposal.recommendations(user) result = described_class.recommendations(user)
expect(result.size).to eq(1) expect(result.size).to eq(1)
expect(result).to eq([proposal3]) expect(result).to eq([proposal3])
end end

View File

@@ -29,7 +29,7 @@ describe RelatedContent do
let(:related_content) { build(:related_content, parent_relationable: parent_relationable, child_relationable: child_relationable, author: build(:user)) } let(:related_content) { build(:related_content, parent_relationable: parent_relationable, child_relationable: child_relationable, author: build(:user)) }
it 'creates an opposite related_content' do it 'creates an opposite related_content' do
expect { related_content.save }.to change { RelatedContent.count }.by(2) expect { related_content.save }.to change { described_class.count }.by(2)
expect(related_content.opposite_related_content.child_relationable_id).to eq(parent_relationable.id) expect(related_content.opposite_related_content.child_relationable_id).to eq(parent_relationable.id)
expect(related_content.opposite_related_content.child_relationable_type).to eq(parent_relationable.class.name) expect(related_content.opposite_related_content.child_relationable_type).to eq(parent_relationable.class.name)
expect(related_content.opposite_related_content.parent_relationable_id).to eq(child_relationable.id) expect(related_content.opposite_related_content.parent_relationable_id).to eq(child_relationable.id)

View File

@@ -13,19 +13,19 @@ describe Verification::Residence do
describe "dates" do describe "dates" do
it "should be valid with a valid date of birth" do it "should be valid with a valid date of birth" do
residence = Verification::Residence.new("date_of_birth(3i)" => "1", "date_of_birth(2i)" => "1", "date_of_birth(1i)" => "1980") residence = described_class.new("date_of_birth(3i)" => "1", "date_of_birth(2i)" => "1", "date_of_birth(1i)" => "1980")
expect(residence.errors[:date_of_birth].size).to eq(0) expect(residence.errors[:date_of_birth].size).to eq(0)
end end
it "should not be valid without a date of birth" do it "should not be valid without a date of birth" do
residence = Verification::Residence.new("date_of_birth(3i)" => "", "date_of_birth(2i)" => "", "date_of_birth(1i)" => "") residence = described_class.new("date_of_birth(3i)" => "", "date_of_birth(2i)" => "", "date_of_birth(1i)" => "")
expect(residence).to_not be_valid expect(residence).to_not be_valid
expect(residence.errors[:date_of_birth]).to include("can't be blank") expect(residence.errors[:date_of_birth]).to include("can't be blank")
end end
end end
it "should validate user has allowed age" do it "should validate user has allowed age" do
residence = Verification::Residence.new("date_of_birth(3i)" => "1", residence = described_class.new("date_of_birth(3i)" => "1",
"date_of_birth(2i)" => "1", "date_of_birth(2i)" => "1",
"date_of_birth(1i)" => 5.years.ago.year.to_s) "date_of_birth(1i)" => 5.years.ago.year.to_s)
expect(residence).to_not be_valid expect(residence).to_not be_valid
@@ -52,12 +52,12 @@ describe Verification::Residence do
describe "new" do describe "new" do
it "should upcase document number" do it "should upcase document number" do
residence = Verification::Residence.new(document_number: "x1234567z") residence = described_class.new(document_number: "x1234567z")
expect(residence.document_number).to eq("X1234567Z") expect(residence.document_number).to eq("X1234567Z")
end end
it "should remove all characters except numbers and letters" do it "should remove all characters except numbers and letters" do
residence = Verification::Residence.new(document_number: " 12.345.678 - B") residence = described_class.new(document_number: " 12.345.678 - B")
expect(residence.document_number).to eq("12345678B") expect(residence.document_number).to eq("12345678B")
end end
end end

View File

@@ -2,36 +2,36 @@ require 'rails_helper'
describe Setting do describe Setting do
before do before do
Setting["official_level_1_name"] = 'Stormtrooper' described_class["official_level_1_name"] = 'Stormtrooper'
end end
it "should return the overriden setting" do it "should return the overriden setting" do
expect(Setting['official_level_1_name']).to eq('Stormtrooper') expect(described_class['official_level_1_name']).to eq('Stormtrooper')
end end
it "should should return nil" do it "should should return nil" do
expect(Setting['undefined_key']).to eq(nil) expect(described_class['undefined_key']).to eq(nil)
end end
it "should persist a setting on the db" do it "should persist a setting on the db" do
expect(Setting.where(key: 'official_level_1_name', value: 'Stormtrooper')).to exist expect(described_class.where(key: 'official_level_1_name', value: 'Stormtrooper')).to exist
end end
describe "#feature_flag?" do describe "#feature_flag?" do
it "should be true if key starts with 'feature.'" do it "should be true if key starts with 'feature.'" do
setting = Setting.create(key: 'feature.whatever') setting = described_class.create(key: 'feature.whatever')
expect(setting.feature_flag?).to eq true expect(setting.feature_flag?).to eq true
end end
it "should be false if key does not start with 'feature.'" do it "should be false if key does not start with 'feature.'" do
setting = Setting.create(key: 'whatever') setting = described_class.create(key: 'whatever')
expect(setting.feature_flag?).to eq false expect(setting.feature_flag?).to eq false
end end
end end
describe "#enabled?" do describe "#enabled?" do
it "should be true if feature_flag and value present" do it "should be true if feature_flag and value present" do
setting = Setting.create(key: 'feature.whatever', value: 1) setting = described_class.create(key: 'feature.whatever', value: 1)
expect(setting.enabled?).to eq true expect(setting.enabled?).to eq true
setting.value = "true" setting.value = "true"
@@ -42,7 +42,7 @@ describe Setting do
end end
it "should be false if feature_flag and value blank" do it "should be false if feature_flag and value blank" do
setting = Setting.create(key: 'feature.whatever') setting = described_class.create(key: 'feature.whatever')
expect(setting.enabled?).to eq false expect(setting.enabled?).to eq false
setting.value = "" setting.value = ""
@@ -50,31 +50,31 @@ describe Setting do
end end
it "should be false if not feature_flag" do it "should be false if not feature_flag" do
setting = Setting.create(key: 'whatever', value: "whatever") setting = described_class.create(key: 'whatever', value: "whatever")
expect(setting.enabled?).to eq false expect(setting.enabled?).to eq false
end end
end end
describe "#banner_style?" do describe "#banner_style?" do
it "should be true if key starts with 'banner-style.'" do it "should be true if key starts with 'banner-style.'" do
setting = Setting.create(key: 'banner-style.whatever') setting = described_class.create(key: 'banner-style.whatever')
expect(setting.banner_style?).to eq true expect(setting.banner_style?).to eq true
end end
it "should be false if key does not start with 'banner-style.'" do it "should be false if key does not start with 'banner-style.'" do
setting = Setting.create(key: 'whatever') setting = described_class.create(key: 'whatever')
expect(setting.banner_style?).to eq false expect(setting.banner_style?).to eq false
end end
end end
describe "#banner_img?" do describe "#banner_img?" do
it "should be true if key starts with 'banner-img.'" do it "should be true if key starts with 'banner-img.'" do
setting = Setting.create(key: 'banner-img.whatever') setting = described_class.create(key: 'banner-img.whatever')
expect(setting.banner_img?).to eq true expect(setting.banner_img?).to eq true
end end
it "should be false if key does not start with 'banner-img.'" do it "should be false if key does not start with 'banner-img.'" do
setting = Setting.create(key: 'whatever') setting = described_class.create(key: 'whatever')
expect(setting.banner_img?).to eq false expect(setting.banner_img?).to eq false
end end
end end

View File

@@ -8,7 +8,7 @@ describe Verification::Sms do
it "should validate uniqness of phone" do it "should validate uniqness of phone" do
create(:user, confirmed_phone: "699999999") create(:user, confirmed_phone: "699999999")
sms = Verification::Sms.new(phone: "699999999") sms = described_class.new(phone: "699999999")
expect(sms).to_not be_valid expect(sms).to_not be_valid
end end

View File

@@ -8,7 +8,7 @@ describe TagCloud do
create(:proposal, tag_list: 'participation') create(:proposal, tag_list: 'participation')
create(:debate, tag_list: 'world hunger') create(:debate, tag_list: 'world hunger')
tag_cloud = TagCloud.new(Proposal) tag_cloud = described_class.new(Proposal)
expect(tag_names(tag_cloud)).to contain_exactly('participation') expect(tag_names(tag_cloud)).to contain_exactly('participation')
end end
@@ -17,7 +17,7 @@ describe TagCloud do
create(:proposal, tag_list: 'participation') create(:proposal, tag_list: 'participation')
create(:debate, tag_list: 'world hunger') create(:debate, tag_list: 'world hunger')
tag_cloud = TagCloud.new(Debate) tag_cloud = described_class.new(Debate)
expect(tag_names(tag_cloud)).to contain_exactly('world hunger') expect(tag_names(tag_cloud)).to contain_exactly('world hunger')
end end
@@ -26,7 +26,7 @@ describe TagCloud do
create(:budget_investment, tag_list: 'participation') create(:budget_investment, tag_list: 'participation')
create(:debate, tag_list: 'world hunger') create(:debate, tag_list: 'world hunger')
tag_cloud = TagCloud.new(Budget::Investment) tag_cloud = described_class.new(Budget::Investment)
expect(tag_names(tag_cloud)).to contain_exactly('participation') expect(tag_names(tag_cloud)).to contain_exactly('participation')
end end
@@ -35,7 +35,7 @@ describe TagCloud do
create(:proposal, tag_list: 'participation', created_at: 1.day.ago) create(:proposal, tag_list: 'participation', created_at: 1.day.ago)
create(:proposal, tag_list: 'corruption', created_at: 2.weeks.ago) create(:proposal, tag_list: 'corruption', created_at: 2.weeks.ago)
tag_cloud = TagCloud.new(Proposal) tag_cloud = described_class.new(Proposal)
expect(tag_names(tag_cloud)).to contain_exactly('participation') expect(tag_names(tag_cloud)).to contain_exactly('participation')
end end
@@ -47,7 +47,7 @@ describe TagCloud do
create(:proposal, tag_list: 'education, parks') create(:proposal, tag_list: 'education, parks')
create(:proposal, tag_list: 'participation, water') create(:proposal, tag_list: 'participation, water')
tag_cloud = TagCloud.new(Proposal) tag_cloud = described_class.new(Proposal)
expect(tag_names(tag_cloud)).to contain_exactly('parks', 'water') expect(tag_names(tag_cloud)).to contain_exactly('parks', 'water')
end end
@@ -59,7 +59,7 @@ describe TagCloud do
create(:proposal, tag_list: 'parks, California') create(:proposal, tag_list: 'parks, California')
create(:proposal, tag_list: 'water, New York') create(:proposal, tag_list: 'water, New York')
tag_cloud = TagCloud.new(Proposal) tag_cloud = described_class.new(Proposal)
expect(tag_names(tag_cloud)).to contain_exactly('parks', 'water') expect(tag_names(tag_cloud)).to contain_exactly('parks', 'water')
end end
@@ -71,7 +71,7 @@ describe TagCloud do
create(:proposal, tag_list: 'education, parks') create(:proposal, tag_list: 'education, parks')
create(:proposal, tag_list: 'participation, water') create(:proposal, tag_list: 'participation, water')
tag_cloud = TagCloud.new(Proposal, 'Education') tag_cloud = described_class.new(Proposal, 'Education')
expect(tag_names(tag_cloud)).to contain_exactly('parks') expect(tag_names(tag_cloud)).to contain_exactly('parks')
end end
@@ -83,7 +83,7 @@ describe TagCloud do
create(:proposal, tag_list: 'parks, California') create(:proposal, tag_list: 'parks, California')
create(:proposal, tag_list: 'water, New York') create(:proposal, tag_list: 'water, New York')
tag_cloud = TagCloud.new(Proposal, 'California') tag_cloud = described_class.new(Proposal, 'California')
expect(tag_names(tag_cloud)).to contain_exactly('parks') expect(tag_names(tag_cloud)).to contain_exactly('parks')
end end
@@ -95,7 +95,7 @@ describe TagCloud do
3.times { create(:proposal, tag_list: 'participation') } 3.times { create(:proposal, tag_list: 'participation') }
create(:proposal, tag_list: 'corruption') create(:proposal, tag_list: 'corruption')
tag_cloud = TagCloud.new(Proposal) tag_cloud = described_class.new(Proposal)
expect(tag_names(tag_cloud).first).to eq 'participation' expect(tag_names(tag_cloud).first).to eq 'participation'
expect(tag_names(tag_cloud).second).to eq 'corruption' expect(tag_names(tag_cloud).second).to eq 'corruption'
@@ -106,7 +106,7 @@ describe TagCloud do
3.times { create(:proposal, tag_list: 'health') } 3.times { create(:proposal, tag_list: 'health') }
create(:proposal, tag_list: 'corruption') create(:proposal, tag_list: 'corruption')
tag_cloud = TagCloud.new(Proposal) tag_cloud = described_class.new(Proposal)
expect(tag_names(tag_cloud).first).to eq 'health' expect(tag_names(tag_cloud).first).to eq 'health'
expect(tag_names(tag_cloud).second).to eq 'participation' expect(tag_names(tag_cloud).second).to eq 'participation'
@@ -116,7 +116,7 @@ describe TagCloud do
it "returns a maximum of 10 tags" do it "returns a maximum of 10 tags" do
12.times { |i| create(:proposal, tag_list: "Tag #{i}") } 12.times { |i| create(:proposal, tag_list: "Tag #{i}") }
tag_cloud = TagCloud.new(Proposal) tag_cloud = described_class.new(Proposal)
expect(tag_names(tag_cloud).count).to eq(10) expect(tag_names(tag_cloud).count).to eq(10)
end end

View File

@@ -278,7 +278,7 @@ describe User do
create(:user, official_position: "Manager", official_level: 5) create(:user, official_position: "Manager", official_level: 5)
2.times { create(:user) } 2.times { create(:user) }
officials = User.officials officials = described_class.officials
expect(officials.size).to eq(4) expect(officials.size).to eq(4)
officials.each do |user| officials.each do |user|
expect(user.official_level).to be > 0 expect(user.official_level).to be > 0
@@ -353,9 +353,9 @@ describe User do
user2 = create(:user, erased_at: nil) user2 = create(:user, erased_at: nil)
user3 = create(:user, erased_at: Time.current) user3 = create(:user, erased_at: Time.current)
expect(User.active).to include(user1) expect(described_class.active).to include(user1)
expect(User.active).to include(user2) expect(described_class.active).to include(user2)
expect(User.active).to_not include(user3) expect(described_class.active).to_not include(user3)
end end
it "returns users that have not been blocked" do it "returns users that have not been blocked" do
@@ -364,9 +364,9 @@ describe User do
user3 = create(:user) user3 = create(:user)
user3.block user3.block
expect(User.active).to include(user1) expect(described_class.active).to include(user1)
expect(User.active).to include(user2) expect(described_class.active).to include(user2)
expect(User.active).to_not include(user3) expect(described_class.active).to_not include(user3)
end end
end end
@@ -378,9 +378,9 @@ describe User do
user2 = create(:user, erased_at: Time.current) user2 = create(:user, erased_at: Time.current)
user3 = create(:user, erased_at: nil) user3 = create(:user, erased_at: nil)
expect(User.erased).to include(user1) expect(described_class.erased).to include(user1)
expect(User.erased).to include(user2) expect(described_class.erased).to include(user2)
expect(User.erased).to_not include(user3) expect(described_class.erased).to_not include(user3)
end end
end end
@@ -390,7 +390,7 @@ describe User do
it "find users by email" do it "find users by email" do
user1 = create(:user, email: "larry@consul.dev") user1 = create(:user, email: "larry@consul.dev")
create(:user, email: "bird@consul.dev") create(:user, email: "bird@consul.dev")
search = User.search("larry@consul.dev") search = described_class.search("larry@consul.dev")
expect(search.size).to eq(1) expect(search.size).to eq(1)
expect(search.first).to eq(user1) expect(search.first).to eq(user1)
end end
@@ -398,13 +398,13 @@ describe User do
it "find users by name" do it "find users by name" do
user1 = create(:user, username: "Larry Bird") user1 = create(:user, username: "Larry Bird")
create(:user, username: "Robert Parish") create(:user, username: "Robert Parish")
search = User.search("larry") search = described_class.search("larry")
expect(search.size).to eq(1) expect(search.size).to eq(1)
expect(search.first).to eq(user1) expect(search.first).to eq(user1)
end end
it "returns no results if no search term provided" do it "returns no results if no search term provided" do
expect(User.search(" ").size).to eq(0) expect(described_class.search(" ").size).to eq(0)
end end
end end
@@ -434,13 +434,13 @@ describe User do
describe "document_number" do describe "document_number" do
it "should upcase document number" do it "should upcase document number" do
user = User.new(document_number: "x1234567z") user = described_class.new(document_number: "x1234567z")
user.valid? user.valid?
expect(user.document_number).to eq("X1234567Z") expect(user.document_number).to eq("X1234567Z")
end end
it "should remove all characters except numbers and letters" do it "should remove all characters except numbers and letters" do
user = User.new(document_number: " 12.345.678 - B") user = described_class.new(document_number: " 12.345.678 - B")
user.valid? user.valid?
expect(user.document_number).to eq("12345678B") expect(user.document_number).to eq("12345678B")
end end

View File

@@ -4,24 +4,24 @@ describe Verification::Management::Document do
describe "#valid_age?" do describe "#valid_age?" do
it "returns false when the user is younger than the user's minimum required age" do it "returns false when the user is younger than the user's minimum required age" do
census_response = double(date_of_birth: Date.new(User.minimum_required_age.years.ago.year, 12, 31)) census_response = double(date_of_birth: Date.new(User.minimum_required_age.years.ago.year, 12, 31))
expect(Verification::Management::Document.new.valid_age?(census_response)).to be false expect(described_class.new.valid_age?(census_response)).to be false
end end
it "returns true when the user has the user's minimum required age" do it "returns true when the user has the user's minimum required age" do
census_response = double(date_of_birth: Date.new(User.minimum_required_age.years.ago.year, 16.years.ago.month, 16.years.ago.day)) census_response = double(date_of_birth: Date.new(User.minimum_required_age.years.ago.year, 16.years.ago.month, 16.years.ago.day))
expect(Verification::Management::Document.new.valid_age?(census_response)).to be true expect(described_class.new.valid_age?(census_response)).to be true
end end
it "returns true when the user is older than the user's minimum required age" do it "returns true when the user is older than the user's minimum required age" do
census_response = double(date_of_birth: Date.new((User.minimum_required_age + 10).years.ago.year, 12, 31)) census_response = double(date_of_birth: Date.new((User.minimum_required_age + 10).years.ago.year, 12, 31))
expect(Verification::Management::Document.new.valid_age?(census_response)).to be true expect(described_class.new.valid_age?(census_response)).to be true
end end
end end
describe "#under_age?" do describe "#under_age?" do
it "returns true when the user is younger than the user's minimum required age" do it "returns true when the user is younger than the user's minimum required age" do
census_response = double(date_of_birth: Date.new(User.minimum_required_age.years.ago.year, 12, 31)) census_response = double(date_of_birth: Date.new(User.minimum_required_age.years.ago.year, 12, 31))
expect(Verification::Management::Document.new.under_age?(census_response)).to be true expect(described_class.new.under_age?(census_response)).to be true
end end
it "returns false when the user is user's minimum required age" do it "returns false when the user is user's minimum required age" do
@@ -29,12 +29,12 @@ describe Verification::Management::Document do
User.minimum_required_age.years.ago.month, User.minimum_required_age.years.ago.month,
User.minimum_required_age.years.ago.day) User.minimum_required_age.years.ago.day)
census_response = double(date_of_birth: date_of_birth) census_response = double(date_of_birth: date_of_birth)
expect(Verification::Management::Document.new.under_age?(census_response)).to be false expect(described_class.new.under_age?(census_response)).to be false
end end
it "returns false when the user is older than user's minimum required age" do it "returns false when the user is older than user's minimum required age" do
census_response = double(date_of_birth: Date.new((User.minimum_required_age + 10).years.ago.year, 12, 31)) census_response = double(date_of_birth: Date.new((User.minimum_required_age + 10).years.ago.year, 12, 31))
expect(Verification::Management::Document.new.under_age?(census_response)).to be false expect(described_class.new.under_age?(census_response)).to be false
end end
end end
end end

View File

@@ -8,7 +8,7 @@ describe Vote do
comment = create(:comment) comment = create(:comment)
create(:vote, votable: comment) create(:vote, votable: comment)
expect(Vote.for_debates(debate).count).to eq(0) expect(described_class.for_debates(debate).count).to eq(0)
end end
it 'returns votes only for debates in parameters' do it 'returns votes only for debates in parameters' do
@@ -16,8 +16,8 @@ describe Vote do
debate2 = create(:debate) debate2 = create(:debate)
create(:vote, votable: debate1) create(:vote, votable: debate1)
expect(Vote.for_debates(debate1).count).to eq(1) expect(described_class.for_debates(debate1).count).to eq(1)
expect(Vote.for_debates(debate2).count).to eq(0) expect(described_class.for_debates(debate2).count).to eq(0)
end end
it 'accepts more than 1 debate' do it 'accepts more than 1 debate' do
@@ -27,7 +27,7 @@ describe Vote do
create(:vote, votable: debate1) create(:vote, votable: debate1)
create(:vote, votable: debate3) create(:vote, votable: debate3)
expect(Vote.for_debates([debate1, debate2]).count).to eq(1) expect(described_class.for_debates([debate1, debate2]).count).to eq(1)
end end
end end
@@ -46,42 +46,42 @@ describe Vote do
debate = create(:debate) debate = create(:debate)
vote = create(:vote, votable: debate) vote = create(:vote, votable: debate)
expect(Vote.public_for_api).to include(vote) expect(described_class.public_for_api).to include(vote)
end end
it 'blocks votes on hidden debates' do it 'blocks votes on hidden debates' do
debate = create(:debate, :hidden) debate = create(:debate, :hidden)
vote = create(:vote, votable: debate) vote = create(:vote, votable: debate)
expect(Vote.public_for_api).not_to include(vote) expect(described_class.public_for_api).not_to include(vote)
end end
it 'returns votes on proposals' do it 'returns votes on proposals' do
proposal = create(:proposal) proposal = create(:proposal)
vote = create(:vote, votable: proposal) vote = create(:vote, votable: proposal)
expect(Vote.public_for_api).to include(vote) expect(described_class.public_for_api).to include(vote)
end end
it 'blocks votes on hidden proposals' do it 'blocks votes on hidden proposals' do
proposal = create(:proposal, :hidden) proposal = create(:proposal, :hidden)
vote = create(:vote, votable: proposal) vote = create(:vote, votable: proposal)
expect(Vote.public_for_api).not_to include(vote) expect(described_class.public_for_api).not_to include(vote)
end end
it 'returns votes on comments' do it 'returns votes on comments' do
comment = create(:comment) comment = create(:comment)
vote = create(:vote, votable: comment) vote = create(:vote, votable: comment)
expect(Vote.public_for_api).to include(vote) expect(described_class.public_for_api).to include(vote)
end end
it 'blocks votes on hidden comments' do it 'blocks votes on hidden comments' do
comment = create(:comment, :hidden) comment = create(:comment, :hidden)
vote = create(:vote, votable: comment) vote = create(:vote, votable: comment)
expect(Vote.public_for_api).not_to include(vote) expect(described_class.public_for_api).not_to include(vote)
end end
it 'blocks votes on comments on hidden proposals' do it 'blocks votes on comments on hidden proposals' do
@@ -89,7 +89,7 @@ describe Vote do
comment_on_hidden_proposal = create(:comment, commentable: hidden_proposal) comment_on_hidden_proposal = create(:comment, commentable: hidden_proposal)
vote = create(:vote, votable: comment_on_hidden_proposal) vote = create(:vote, votable: comment_on_hidden_proposal)
expect(Vote.public_for_api).to_not include(vote) expect(described_class.public_for_api).to_not include(vote)
end end
it 'blocks votes on comments on hidden debates' do it 'blocks votes on comments on hidden debates' do
@@ -97,20 +97,20 @@ describe Vote do
comment_on_hidden_debate = create(:comment, commentable: hidden_debate) comment_on_hidden_debate = create(:comment, commentable: hidden_debate)
vote = create(:vote, votable: comment_on_hidden_debate) vote = create(:vote, votable: comment_on_hidden_debate)
expect(Vote.public_for_api).to_not include(vote) expect(described_class.public_for_api).to_not include(vote)
end end
it 'blocks any other kind of votes' do it 'blocks any other kind of votes' do
spending_proposal = create(:spending_proposal) spending_proposal = create(:spending_proposal)
vote = create(:vote, votable: spending_proposal) vote = create(:vote, votable: spending_proposal)
expect(Vote.public_for_api).not_to include(vote) expect(described_class.public_for_api).not_to include(vote)
end end
it 'blocks votes without votable' do it 'blocks votes without votable' do
vote = build(:vote, votable: nil).save!(validate: false) vote = build(:vote, votable: nil).save!(validate: false)
expect(Vote.public_for_api).not_to include(vote) expect(described_class.public_for_api).not_to include(vote)
end end
end end
end end