Apply Layout/RedundantLineBreak rule to short lines
We're not adding the rule because it would apply the current line length rule of 110 characters per line. We still haven't decided whether we'll keep that rule or make lines shorter so they're easier to read, particularly when vertically splitting the editor window. So, for now, I'm applying the rule to lines which are about 90 characters long.
This commit is contained in:
@@ -6,9 +6,7 @@ class Admin::AdministratorsController < Admin::BaseController
|
||||
end
|
||||
|
||||
def search
|
||||
@users = User.search(params[:search])
|
||||
.includes(:administrator)
|
||||
.page(params[:page])
|
||||
@users = User.search(params[:search]).includes(:administrator).page(params[:page])
|
||||
end
|
||||
|
||||
def create
|
||||
|
||||
@@ -6,9 +6,7 @@ class Admin::ManagersController < Admin::BaseController
|
||||
end
|
||||
|
||||
def search
|
||||
@users = User.search(params[:search])
|
||||
.includes(:manager)
|
||||
.page(params[:page])
|
||||
@users = User.search(params[:search]).includes(:manager).page(params[:page])
|
||||
end
|
||||
|
||||
def create
|
||||
|
||||
@@ -13,8 +13,7 @@ class Admin::MilestoneStatusesController < Admin::BaseController
|
||||
@status = Milestone::Status.new(status_params)
|
||||
|
||||
if @status.save
|
||||
redirect_to admin_milestone_statuses_path,
|
||||
notice: t("admin.statuses.create.notice")
|
||||
redirect_to admin_milestone_statuses_path, notice: t("admin.statuses.create.notice")
|
||||
else
|
||||
render :new
|
||||
end
|
||||
@@ -25,8 +24,7 @@ class Admin::MilestoneStatusesController < Admin::BaseController
|
||||
|
||||
def update
|
||||
if @status.update(status_params)
|
||||
redirect_to admin_milestone_statuses_path,
|
||||
notice: t("admin.statuses.update.notice")
|
||||
redirect_to admin_milestone_statuses_path, notice: t("admin.statuses.update.notice")
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
@@ -34,8 +32,7 @@ class Admin::MilestoneStatusesController < Admin::BaseController
|
||||
|
||||
def destroy
|
||||
@status.destroy!
|
||||
redirect_to admin_milestone_statuses_path,
|
||||
notice: t("admin.statuses.delete.notice")
|
||||
redirect_to admin_milestone_statuses_path, notice: t("admin.statuses.delete.notice")
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -6,9 +6,7 @@ class Admin::ModeratorsController < Admin::BaseController
|
||||
end
|
||||
|
||||
def search
|
||||
@users = User.search(params[:search])
|
||||
.includes(:moderator)
|
||||
.page(params[:page])
|
||||
@users = User.search(params[:search]).includes(:moderator).page(params[:page])
|
||||
end
|
||||
|
||||
def create
|
||||
|
||||
@@ -25,8 +25,7 @@ class Admin::Poll::BoothAssignmentsController < Admin::Poll::BaseController
|
||||
def create
|
||||
@poll = Poll.find(booth_assignment_params[:poll_id])
|
||||
@booth = Poll::Booth.find(booth_assignment_params[:booth_id])
|
||||
@booth_assignment = ::Poll::BoothAssignment.new(poll: @poll,
|
||||
booth: @booth)
|
||||
@booth_assignment = ::Poll::BoothAssignment.new(poll: @poll, booth: @booth)
|
||||
|
||||
@booth_assignment.save!
|
||||
|
||||
|
||||
@@ -114,11 +114,7 @@ class Admin::SiteCustomization::ContentBlocksController < Admin::SiteCustomizati
|
||||
private
|
||||
|
||||
def content_block_params
|
||||
params.require(:site_customization_content_block).permit(
|
||||
:name,
|
||||
:locale,
|
||||
:body
|
||||
)
|
||||
params.require(:site_customization_content_block).permit(:name, :locale, :body)
|
||||
end
|
||||
|
||||
def is_heading_content_block?(name)
|
||||
|
||||
@@ -39,8 +39,6 @@ class Admin::SiteCustomization::ImagesController < Admin::SiteCustomization::Bas
|
||||
private
|
||||
|
||||
def image_params
|
||||
params.require(:site_customization_image).permit(
|
||||
:image
|
||||
)
|
||||
params.require(:site_customization_image).permit(:image)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -41,8 +41,7 @@ class Admin::SiteCustomization::InformationTextsController < Admin::SiteCustomiz
|
||||
end
|
||||
|
||||
def delete_translations
|
||||
languages_to_delete = params[:enabled_translations].select { |_, v| v == "0" }
|
||||
.keys
|
||||
languages_to_delete = params[:enabled_translations].select { |_, v| v == "0" }.keys
|
||||
|
||||
languages_to_delete.each do |locale|
|
||||
I18nContentTranslation.where(locale: locale).destroy_all
|
||||
@@ -56,8 +55,6 @@ class Admin::SiteCustomization::InformationTextsController < Admin::SiteCustomiz
|
||||
end
|
||||
|
||||
def enabled_translations
|
||||
params.fetch(:enabled_translations, {})
|
||||
.select { |_, v| v == "1" }
|
||||
.keys
|
||||
params.fetch(:enabled_translations, {}).select { |_, v| v == "1" }.keys
|
||||
end
|
||||
end
|
||||
|
||||
@@ -10,9 +10,7 @@ class Admin::ValuatorsController < Admin::BaseController
|
||||
end
|
||||
|
||||
def search
|
||||
@users = User.search(params[:search])
|
||||
.includes(:valuator)
|
||||
.page(params[:page])
|
||||
@users = User.search(params[:search]).includes(:valuator).page(params[:page])
|
||||
end
|
||||
|
||||
def create
|
||||
|
||||
@@ -10,9 +10,7 @@ class InstallationController < ApplicationController
|
||||
private
|
||||
|
||||
def consul_installation_details
|
||||
{
|
||||
release: "1.3.1"
|
||||
}.merge(features: settings_feature_flags)
|
||||
{ release: "1.3.1" }.merge(features: settings_feature_flags)
|
||||
end
|
||||
|
||||
def settings_feature_flags
|
||||
|
||||
@@ -29,9 +29,7 @@ class Legislation::AnswersController < Legislation::BaseController
|
||||
private
|
||||
|
||||
def answer_params
|
||||
params.require(:legislation_answer).permit(
|
||||
:legislation_question_option_id
|
||||
)
|
||||
params.require(:legislation_answer).permit(:legislation_question_option_id)
|
||||
end
|
||||
|
||||
def track_event
|
||||
|
||||
@@ -7,9 +7,7 @@ class Valuation::BudgetsController < Valuation::BaseController
|
||||
def index
|
||||
@budget = current_budget
|
||||
if @budget.present?
|
||||
@investments = @budget.investments
|
||||
.by_valuator(current_user.valuator)
|
||||
.valuation_open
|
||||
@investments = @budget.investments.by_valuator(current_user.valuator).valuation_open
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,10 +4,7 @@ module FollowablesHelper
|
||||
end
|
||||
|
||||
def followable_icon(followable)
|
||||
{
|
||||
proposals: "Proposal",
|
||||
budget: "Budget::Investment"
|
||||
}.invert[followable]
|
||||
{ proposals: "Proposal", budget: "Budget::Investment" }.invert[followable]
|
||||
end
|
||||
|
||||
def render_follow(follow)
|
||||
|
||||
@@ -15,8 +15,6 @@ module ImagesHelper
|
||||
|
||||
def render_image(image, version, show_caption = true)
|
||||
version = image.persisted? ? version : :original
|
||||
render "images/image", image: image,
|
||||
version: version,
|
||||
show_caption: show_caption
|
||||
render "images/image", image: image, version: version, show_caption: show_caption
|
||||
end
|
||||
end
|
||||
|
||||
@@ -9,10 +9,7 @@ module SiteCustomizationHelper
|
||||
|
||||
def translation_for_locale(content, locale)
|
||||
if content.present?
|
||||
I18nContentTranslation.find_by(
|
||||
i18n_content_id: content.id,
|
||||
locale: locale
|
||||
)&.value
|
||||
I18nContentTranslation.find_by(i18n_content_id: content.id, locale: locale)&.value
|
||||
else
|
||||
false
|
||||
end
|
||||
|
||||
@@ -292,8 +292,7 @@ class Budget
|
||||
end
|
||||
|
||||
def valid_heading?(user)
|
||||
voted_in?(heading, user) ||
|
||||
can_vote_in_another_heading?(user)
|
||||
voted_in?(heading, user) || can_vote_in_another_heading?(user)
|
||||
end
|
||||
|
||||
def can_vote_in_another_heading?(user)
|
||||
|
||||
@@ -31,9 +31,7 @@ class Budget
|
||||
|
||||
def store_reclassified_votes(reason)
|
||||
ballot_lines_for_investment.order(:id).each do |line|
|
||||
attrs = { user: line.ballot.user,
|
||||
investment: self,
|
||||
reason: reason }
|
||||
attrs = { user: line.ballot.user, investment: self, reason: reason }
|
||||
Budget::ReclassifiedVote.create!(attrs)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -11,10 +11,7 @@ class Dashboard::Action < ApplicationRecord
|
||||
|
||||
enum action_type: [:proposed_action, :resource]
|
||||
|
||||
validates :title,
|
||||
presence: true,
|
||||
allow_blank: false,
|
||||
length: { in: 4..80 }
|
||||
validates :title, presence: true, allow_blank: false, length: { in: 4..80 }
|
||||
|
||||
validates :action_type, presence: true
|
||||
|
||||
|
||||
@@ -24,13 +24,11 @@ class Organization < ApplicationRecord
|
||||
end
|
||||
|
||||
def verified?
|
||||
verified_at.present? &&
|
||||
(rejected_at.blank? || rejected_at < verified_at)
|
||||
verified_at.present? && (rejected_at.blank? || rejected_at < verified_at)
|
||||
end
|
||||
|
||||
def rejected?
|
||||
rejected_at.present? &&
|
||||
(verified_at.blank? || verified_at < rejected_at)
|
||||
rejected_at.present? && (verified_at.blank? || verified_at < rejected_at)
|
||||
end
|
||||
|
||||
def self.search(text)
|
||||
|
||||
@@ -106,15 +106,13 @@ class Poll < ApplicationRecord
|
||||
end
|
||||
|
||||
def self.votable_by(user)
|
||||
answerable_by(user).
|
||||
not_voted_by(user)
|
||||
answerable_by(user).not_voted_by(user)
|
||||
end
|
||||
|
||||
def votable_by?(user)
|
||||
return false if user_has_an_online_ballot?(user)
|
||||
|
||||
answerable_by?(user) &&
|
||||
not_voted_by?(user)
|
||||
answerable_by?(user) && not_voted_by?(user)
|
||||
end
|
||||
|
||||
def user_has_an_online_ballot?(user)
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
class RelatedContentScore < ApplicationRecord
|
||||
SCORES = {
|
||||
POSITIVE: 1,
|
||||
NEGATIVE: -1
|
||||
}.freeze
|
||||
SCORES = { POSITIVE: 1, NEGATIVE: -1 }.freeze
|
||||
|
||||
belongs_to :related_content, touch: true, counter_cache: :related_content_scores_count
|
||||
belongs_to :user
|
||||
|
||||
@@ -12,8 +12,7 @@ class Verification::Letter
|
||||
validate :validate_correct_code, if: :verify?
|
||||
|
||||
def save
|
||||
valid? &&
|
||||
letter_requested!
|
||||
valid? && letter_requested!
|
||||
end
|
||||
|
||||
def save!
|
||||
|
||||
@@ -38,9 +38,7 @@ Rails.application.configure do
|
||||
# The :test delivery method accumulates sent emails in the
|
||||
# ActionMailer::Base.deliveries array.
|
||||
config.action_mailer.delivery_method = :test
|
||||
config.action_mailer.default_url_options = {
|
||||
host: "test"
|
||||
}
|
||||
config.action_mailer.default_url_options = { host: "test" }
|
||||
config.action_mailer.asset_host = "http://consul.test"
|
||||
|
||||
# Print deprecation notices to the stderr.
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
module ActiveModel::Dates
|
||||
def parse_date(field, attrs)
|
||||
year, month, day = attrs["#{field}(1i)"],
|
||||
attrs["#{field}(2i)"],
|
||||
attrs["#{field}(3i)"]
|
||||
year, month, day = attrs["#{field}(1i)"], attrs["#{field}(2i)"], attrs["#{field}(3i)"]
|
||||
|
||||
return nil unless day.present? && month.present? && year.present?
|
||||
|
||||
|
||||
@@ -4,11 +4,7 @@ namespace :proposal_actions do
|
||||
ProposalDashboardAction.where.not(link: nil).each do |action|
|
||||
next if action.link.blank?
|
||||
|
||||
Link.create!(
|
||||
label: action.title,
|
||||
url: action.link,
|
||||
linkable: action
|
||||
)
|
||||
Link.create!(label: action.title, url: action.link, linkable: action)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -3,10 +3,7 @@ require "rails_helper"
|
||||
describe Admin::Budgets::FormComponent, type: :component do
|
||||
describe "#voting_styles_select_options" do
|
||||
it "provides vote kinds" do
|
||||
types = [
|
||||
["Knapsack", "knapsack"],
|
||||
["Approval", "approval"]
|
||||
]
|
||||
types = [["Knapsack", "knapsack"], ["Approval", "approval"]]
|
||||
|
||||
component = Admin::Budgets::FormComponent.new(double)
|
||||
|
||||
|
||||
@@ -15,8 +15,7 @@ describe LocalesHelper do
|
||||
end
|
||||
|
||||
it "returns the language name in i18n.language.name translation" do
|
||||
keys = { language: {
|
||||
name: "World Language" }}
|
||||
keys = { language: { name: "World Language" }}
|
||||
|
||||
I18n.backend.store_translations(:wl, { i18n: keys })
|
||||
|
||||
|
||||
@@ -22,9 +22,7 @@ describe "I18n" do
|
||||
end
|
||||
|
||||
it "returns plural rule if translation present" do
|
||||
keys = { zero: "No comments",
|
||||
one: "1 comment",
|
||||
other: "%{count} comments" }
|
||||
keys = { zero: "No comments", one: "1 comment", other: "%{count} comments" }
|
||||
|
||||
I18n.backend.store_translations(:en, { test_plural: keys })
|
||||
|
||||
@@ -34,9 +32,7 @@ describe "I18n" do
|
||||
end
|
||||
|
||||
it "returns default locale's plural rule if whole translation not present" do
|
||||
keys = { zero: "No comments",
|
||||
one: "1 comment",
|
||||
other: "%{count} comments" }
|
||||
keys = { zero: "No comments", one: "1 comment", other: "%{count} comments" }
|
||||
|
||||
I18n.backend.store_translations(I18n.default_locale, { test_plural: keys })
|
||||
I18n.backend.store_translations(:zz, {})
|
||||
|
||||
@@ -27,9 +27,7 @@ describe Administrator do
|
||||
let!(:user) { create(:user, username: "Billy Wilder", email: "test@test.com") }
|
||||
|
||||
it "returns description and email if decription present" do
|
||||
administrator = create(:administrator,
|
||||
description: "John Doe",
|
||||
user: user)
|
||||
administrator = create(:administrator, description: "John Doe", user: user)
|
||||
|
||||
expect(administrator.description_or_name_and_email).to eq("John Doe (test@test.com)")
|
||||
end
|
||||
|
||||
@@ -430,9 +430,7 @@ describe Budget::Investment do
|
||||
describe "with without_admin filter" do
|
||||
let(:params) { { advanced_filters: ["without_admin"], budget_id: budget.id } }
|
||||
it "returns only investment without admin" do
|
||||
create(:budget_investment,
|
||||
:with_administrator,
|
||||
budget: budget)
|
||||
create(:budget_investment, :with_administrator, budget: budget)
|
||||
investment2 = create(:budget_investment, budget: budget)
|
||||
|
||||
expect(Budget::Investment.scoped_filter(params, "all")).to eq([investment2])
|
||||
@@ -442,14 +440,9 @@ describe Budget::Investment do
|
||||
describe "with without_valuator filter" do
|
||||
let(:params) { { advanced_filters: ["without_valuator"], budget_id: budget.id } }
|
||||
it "returns only investment without valuator" do
|
||||
create(:budget_investment,
|
||||
:with_valuator,
|
||||
budget: budget)
|
||||
investment2 = create(:budget_investment,
|
||||
:with_administrator,
|
||||
budget: budget)
|
||||
investment3 = create(:budget_investment,
|
||||
budget: budget)
|
||||
create(:budget_investment, :with_valuator, budget: budget)
|
||||
investment2 = create(:budget_investment, :with_administrator, budget: budget)
|
||||
investment3 = create(:budget_investment, budget: budget)
|
||||
|
||||
expect(Budget::Investment.scoped_filter(params, "all"))
|
||||
.to contain_exactly(investment2, investment3)
|
||||
@@ -471,14 +464,9 @@ describe Budget::Investment do
|
||||
describe "with valuation_finished filter" do
|
||||
let(:params) { { advanced_filters: ["valuation_finished"], budget_id: budget.id } }
|
||||
it "returns only investment with valuation finished" do
|
||||
investment1 = create(:budget_investment,
|
||||
:selected,
|
||||
budget: budget)
|
||||
create(:budget_investment,
|
||||
:with_administrator,
|
||||
budget: budget)
|
||||
create(:budget_investment,
|
||||
budget: budget)
|
||||
investment1 = create(:budget_investment, :selected, budget: budget)
|
||||
create(:budget_investment, :with_administrator, budget: budget)
|
||||
create(:budget_investment, budget: budget)
|
||||
|
||||
expect(Budget::Investment.scoped_filter(params, "all")).to eq([investment1])
|
||||
end
|
||||
|
||||
@@ -85,13 +85,11 @@ describe Comment do
|
||||
let(:comment) { create(:comment) }
|
||||
|
||||
it "expires cache when it has a new vote" do
|
||||
expect { create(:vote, votable: comment) }
|
||||
.to change { comment.cache_version }
|
||||
expect { create(:vote, votable: comment) }.to change { comment.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when hidden" do
|
||||
expect { comment.hide }
|
||||
.to change { comment.cache_version }
|
||||
expect { comment.hide }.to change { comment.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when the author is hidden" do
|
||||
|
||||
@@ -21,8 +21,7 @@ shared_examples_for "sluggable" do |updatable_slug_trait:|
|
||||
|
||||
context "slug updating condition is false" do
|
||||
it "slug isn't updated" do
|
||||
expect { sluggable.update(name: "New Name") }
|
||||
.not_to change { sluggable.slug }
|
||||
expect { sluggable.update(name: "New Name") }.not_to change { sluggable.slug }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -355,28 +355,23 @@ describe Debate do
|
||||
let(:debate) { create(:debate) }
|
||||
|
||||
it "expires cache when it has a new comment" do
|
||||
expect { create(:comment, commentable: debate) }
|
||||
.to change { debate.cache_version }
|
||||
expect { create(:comment, commentable: debate) }.to change { debate.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when it has a new vote" do
|
||||
expect { create(:vote, votable: debate) }
|
||||
.to change { debate.cache_version }
|
||||
expect { create(:vote, votable: debate) }.to change { debate.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when it has a new flag" do
|
||||
expect { create(:flag, flaggable: debate) }
|
||||
.to change { debate.reload.cache_version }
|
||||
expect { create(:flag, flaggable: debate) }.to change { debate.reload.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when it has a new tag" do
|
||||
expect { debate.update(tag_list: "new tag") }
|
||||
.to change { debate.cache_version }
|
||||
expect { debate.update(tag_list: "new tag") }.to change { debate.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when hidden" do
|
||||
expect { debate.hide }
|
||||
.to change { debate.cache_version }
|
||||
expect { debate.hide }.to change { debate.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when the author is hidden" do
|
||||
|
||||
@@ -45,39 +45,17 @@ RSpec.describe I18nContent, type: :model do
|
||||
|
||||
describe "#flat_hash" do
|
||||
it "uses one parameter" do
|
||||
expect(I18nContent.flat_hash(nil)).to eq({
|
||||
nil => nil
|
||||
})
|
||||
|
||||
expect(I18nContent.flat_hash("string")).to eq({
|
||||
nil => "string"
|
||||
})
|
||||
|
||||
expect(I18nContent.flat_hash({ w: "string" })).to eq({
|
||||
"w" => "string"
|
||||
})
|
||||
|
||||
expect(I18nContent.flat_hash({ w: { p: "string" }})).to eq({
|
||||
"w.p" => "string"
|
||||
})
|
||||
expect(I18nContent.flat_hash(nil)).to eq({ nil => nil })
|
||||
expect(I18nContent.flat_hash("string")).to eq({ nil => "string" })
|
||||
expect(I18nContent.flat_hash({ w: "string" })).to eq({ "w" => "string" })
|
||||
expect(I18nContent.flat_hash({ w: { p: "string" }})).to eq({ "w.p" => "string" })
|
||||
end
|
||||
|
||||
it "uses the first two parameters" do
|
||||
expect(I18nContent.flat_hash("string", "f")).to eq({
|
||||
"f" => "string"
|
||||
})
|
||||
|
||||
expect(I18nContent.flat_hash(nil, "f")).to eq({
|
||||
"f" => nil
|
||||
})
|
||||
|
||||
expect(I18nContent.flat_hash({ w: "string" }, "f")).to eq({
|
||||
"f.w" => "string"
|
||||
})
|
||||
|
||||
expect(I18nContent.flat_hash({ w: { p: "string" }}, "f")).to eq({
|
||||
"f.w.p" => "string"
|
||||
})
|
||||
expect(I18nContent.flat_hash("string", "f")).to eq({ "f" => "string" })
|
||||
expect(I18nContent.flat_hash(nil, "f")).to eq({ "f" => nil })
|
||||
expect(I18nContent.flat_hash({ w: "string" }, "f")).to eq({ "f.w" => "string" })
|
||||
expect(I18nContent.flat_hash({ w: { p: "string" }}, "f")).to eq({ "f.w.p" => "string" })
|
||||
end
|
||||
|
||||
it "uses the first and last parameters" do
|
||||
|
||||
@@ -194,8 +194,7 @@ describe Poll do
|
||||
end
|
||||
|
||||
it "returns restricted & unrestricted polls for level 2 users of the correct geozone" do
|
||||
list = Poll.answerable_by(level2_from_geozone)
|
||||
.order(:geozone_restricted)
|
||||
list = Poll.answerable_by(level2_from_geozone).order(:geozone_restricted)
|
||||
expect(list.to_a).to eq([current_poll, current_restricted_poll])
|
||||
end
|
||||
end
|
||||
|
||||
@@ -385,28 +385,23 @@ describe Proposal do
|
||||
let(:proposal) { create(:proposal) }
|
||||
|
||||
it "expires cache when it has a new comment" do
|
||||
expect { create(:comment, commentable: proposal) }
|
||||
.to change { proposal.cache_version }
|
||||
expect { create(:comment, commentable: proposal) }.to change { proposal.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when it has a new vote" do
|
||||
expect { create(:vote, votable: proposal) }
|
||||
.to change { proposal.cache_version }
|
||||
expect { create(:vote, votable: proposal) }.to change { proposal.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when it has a new flag" do
|
||||
expect { create(:flag, flaggable: proposal) }
|
||||
.to change { proposal.reload.cache_version }
|
||||
expect { create(:flag, flaggable: proposal) }.to change { proposal.reload.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when it has a new tag" do
|
||||
expect { proposal.update(tag_list: "new tag") }
|
||||
.to change { proposal.cache_version }
|
||||
expect { proposal.update(tag_list: "new tag") }.to change { proposal.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when hidden" do
|
||||
expect { proposal.hide }
|
||||
.to change { proposal.cache_version }
|
||||
expect { proposal.hide }.to change { proposal.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache when the author is hidden" do
|
||||
|
||||
@@ -483,19 +483,16 @@ describe User do
|
||||
let(:user) { create(:user) }
|
||||
|
||||
it "expires cache with becoming a moderator" do
|
||||
expect { create(:moderator, user: user) }
|
||||
.to change { user.cache_version }
|
||||
expect { create(:moderator, user: user) }.to change { user.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache with becoming an admin" do
|
||||
expect { create(:administrator, user: user) }
|
||||
.to change { user.cache_version }
|
||||
expect { create(:administrator, user: user) }.to change { user.cache_version }
|
||||
end
|
||||
|
||||
it "expires cache with becoming a veridied organization" do
|
||||
create(:organization, user: user)
|
||||
expect { user.organization.verify }
|
||||
.to change { user.reload.cache_version }
|
||||
expect { user.organization.verify }.to change { user.reload.cache_version }
|
||||
end
|
||||
end
|
||||
|
||||
@@ -546,9 +543,7 @@ describe User do
|
||||
end
|
||||
|
||||
it "maintains associated identification document" do
|
||||
user = create(:user,
|
||||
document_number: "1234",
|
||||
document_type: "1")
|
||||
user = create(:user, document_number: "1234", document_type: "1")
|
||||
user.erase
|
||||
user.reload
|
||||
|
||||
@@ -711,10 +706,7 @@ describe User do
|
||||
end
|
||||
|
||||
it "is false for verified users with no email" do
|
||||
user = create(:user,
|
||||
username: "Lois",
|
||||
email: "",
|
||||
verified_at: Time.current)
|
||||
user = create(:user, username: "Lois", email: "", verified_at: Time.current)
|
||||
|
||||
expect(user).to be_valid
|
||||
expect(user.email_required?).to eq(false)
|
||||
|
||||
@@ -6,9 +6,7 @@ describe "Admin budget investments", :admin do
|
||||
create(:administrator, user: create(:user, username: "Ana", email: "ana@admins.org"))
|
||||
end
|
||||
|
||||
it_behaves_like "admin_milestoneable",
|
||||
:budget_investment,
|
||||
"admin_polymorphic_path"
|
||||
it_behaves_like "admin_milestoneable", :budget_investment, "admin_polymorphic_path"
|
||||
|
||||
context "Load" do
|
||||
let!(:investment) { create(:budget_investment, budget: budget) }
|
||||
@@ -240,13 +238,8 @@ describe "Admin budget investments", :admin do
|
||||
end
|
||||
|
||||
scenario "Filtering by without assigned admin" do
|
||||
create(:budget_investment,
|
||||
title: "Investment without admin",
|
||||
budget: budget)
|
||||
create(:budget_investment,
|
||||
:with_administrator,
|
||||
title: "Investment with admin",
|
||||
budget: budget)
|
||||
create(:budget_investment, title: "Investment without admin", budget: budget)
|
||||
create(:budget_investment, :with_administrator, title: "Investment with admin", budget: budget)
|
||||
|
||||
visit admin_budget_budget_investments_path(budget_id: budget)
|
||||
expect(page).to have_link("Investment without admin")
|
||||
@@ -334,13 +327,8 @@ describe "Admin budget investments", :admin do
|
||||
end
|
||||
|
||||
scenario "Filtering by valuation finished" do
|
||||
create(:budget_investment,
|
||||
title: "Investment valuation open",
|
||||
budget: budget)
|
||||
create(:budget_investment,
|
||||
:finished,
|
||||
title: "Investment valuation finished",
|
||||
budget: budget)
|
||||
create(:budget_investment, title: "Investment valuation open", budget: budget)
|
||||
create(:budget_investment, :finished, title: "Investment valuation finished", budget: budget)
|
||||
|
||||
visit admin_budget_budget_investments_path(budget_id: budget)
|
||||
expect(page).to have_link("Investment valuation open")
|
||||
@@ -363,14 +351,8 @@ describe "Admin budget investments", :admin do
|
||||
end
|
||||
|
||||
scenario "Filtering by winners" do
|
||||
create(:budget_investment,
|
||||
:winner,
|
||||
:finished,
|
||||
title: "Investment winner",
|
||||
budget: budget)
|
||||
create(:budget_investment,
|
||||
title: "Investment without winner",
|
||||
budget: budget)
|
||||
create(:budget_investment, :winner, :finished, title: "Investment winner", budget: budget)
|
||||
create(:budget_investment, title: "Investment without winner", budget: budget)
|
||||
|
||||
visit admin_budget_budget_investments_path(budget_id: budget)
|
||||
expect(page).to have_link("Investment winner")
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe "Admin proposals", :admin do
|
||||
it_behaves_like "admin_milestoneable",
|
||||
:proposal,
|
||||
"admin_polymorphic_path"
|
||||
it_behaves_like "admin_milestoneable", :proposal, "admin_polymorphic_path"
|
||||
|
||||
context "Index" do
|
||||
scenario "Search" do
|
||||
|
||||
@@ -4,14 +4,8 @@ describe "Debates" do
|
||||
context "Concerns" do
|
||||
it_behaves_like "notifiable in-app", :debate
|
||||
it_behaves_like "relationable", Debate
|
||||
it_behaves_like "remotely_translatable",
|
||||
:debate,
|
||||
"debates_path",
|
||||
{}
|
||||
it_behaves_like "remotely_translatable",
|
||||
:debate,
|
||||
"debate_path",
|
||||
{ id: "id" }
|
||||
it_behaves_like "remotely_translatable", :debate, "debates_path", {}
|
||||
it_behaves_like "remotely_translatable", :debate, "debate_path", { id: "id" }
|
||||
it_behaves_like "flaggable", :debate
|
||||
end
|
||||
|
||||
|
||||
@@ -129,8 +129,7 @@ describe "Polls" do
|
||||
Setting["feature.sdg"] = true
|
||||
Setting["sdg.process.polls"] = true
|
||||
|
||||
create(:poll, sdg_goals: [SDG::Goal[1]],
|
||||
sdg_targets: [SDG::Target["1.1"]])
|
||||
create(:poll, sdg_goals: [SDG::Goal[1]], sdg_targets: [SDG::Target["1.1"]])
|
||||
|
||||
visit polls_path
|
||||
|
||||
@@ -414,8 +413,7 @@ describe "Polls" do
|
||||
Setting["feature.sdg"] = true
|
||||
Setting["sdg.process.polls"] = true
|
||||
|
||||
poll = create(:poll, sdg_goals: [SDG::Goal[1]],
|
||||
sdg_targets: [SDG::Target["1.1"]])
|
||||
poll = create(:poll, sdg_goals: [SDG::Goal[1]], sdg_targets: [SDG::Target["1.1"]])
|
||||
|
||||
visit poll_path(poll)
|
||||
|
||||
|
||||
@@ -6,14 +6,8 @@ describe "Proposals" do
|
||||
context "Concerns" do
|
||||
it_behaves_like "notifiable in-app", :proposal
|
||||
it_behaves_like "relationable", Proposal
|
||||
it_behaves_like "remotely_translatable",
|
||||
:proposal,
|
||||
"proposals_path",
|
||||
{}
|
||||
it_behaves_like "remotely_translatable",
|
||||
:proposal,
|
||||
"proposal_path",
|
||||
{ id: "id" }
|
||||
it_behaves_like "remotely_translatable", :proposal, "proposals_path", {}
|
||||
it_behaves_like "remotely_translatable", :proposal, "proposal_path", { id: "id" }
|
||||
it_behaves_like "flaggable", :proposal
|
||||
end
|
||||
|
||||
|
||||
@@ -2,21 +2,11 @@ require "rails_helper"
|
||||
|
||||
describe "Verified users" do
|
||||
scenario "Verified emails" do
|
||||
user = create(:user,
|
||||
residence_verified_at: Time.current,
|
||||
document_number: "12345678Z")
|
||||
user = create(:user, residence_verified_at: Time.current, document_number: "12345678Z")
|
||||
|
||||
create(:verified_user,
|
||||
document_number: "12345678Z",
|
||||
email: "rock@example.com")
|
||||
|
||||
create(:verified_user,
|
||||
document_number: "12345678Z",
|
||||
email: "roll@example.com")
|
||||
|
||||
create(:verified_user,
|
||||
document_number: "99999999R",
|
||||
email: "another@example.com")
|
||||
create(:verified_user, document_number: "12345678Z", email: "rock@example.com")
|
||||
create(:verified_user, document_number: "12345678Z", email: "roll@example.com")
|
||||
create(:verified_user, document_number: "99999999R", email: "another@example.com")
|
||||
|
||||
login_as(user)
|
||||
visit verified_user_path
|
||||
@@ -27,21 +17,11 @@ describe "Verified users" do
|
||||
end
|
||||
|
||||
scenario "Verified phones" do
|
||||
user = create(:user,
|
||||
residence_verified_at: Time.current,
|
||||
document_number: "12345678Z")
|
||||
user = create(:user, residence_verified_at: Time.current, document_number: "12345678Z")
|
||||
|
||||
create(:verified_user,
|
||||
document_number: "12345678Z",
|
||||
phone: "611111111")
|
||||
|
||||
create(:verified_user,
|
||||
document_number: "12345678Z",
|
||||
phone: "622222222")
|
||||
|
||||
create(:verified_user,
|
||||
document_number: "99999999R",
|
||||
phone: "633333333")
|
||||
create(:verified_user, document_number: "12345678Z", phone: "611111111")
|
||||
create(:verified_user, document_number: "12345678Z", phone: "622222222")
|
||||
create(:verified_user, document_number: "99999999R", phone: "633333333")
|
||||
|
||||
login_as(user)
|
||||
visit verified_user_path
|
||||
@@ -52,15 +32,10 @@ describe "Verified users" do
|
||||
end
|
||||
|
||||
scenario "No emails or phones" do
|
||||
user = create(:user,
|
||||
residence_verified_at: Time.current,
|
||||
document_number: "12345678Z")
|
||||
user = create(:user, residence_verified_at: Time.current, document_number: "12345678Z")
|
||||
|
||||
create(:verified_user,
|
||||
document_number: "12345678Z")
|
||||
|
||||
create(:verified_user,
|
||||
document_number: "12345678Z")
|
||||
create(:verified_user, document_number: "12345678Z")
|
||||
create(:verified_user, document_number: "12345678Z")
|
||||
|
||||
login_as(user)
|
||||
visit verified_user_path
|
||||
@@ -69,13 +44,8 @@ describe "Verified users" do
|
||||
end
|
||||
|
||||
scenario "Select a verified email" do
|
||||
user = create(:user,
|
||||
residence_verified_at: Time.current,
|
||||
document_number: "12345678Z")
|
||||
|
||||
verified_user = create(:verified_user,
|
||||
document_number: "12345678Z",
|
||||
email: "rock@example.com")
|
||||
user = create(:user, residence_verified_at: Time.current, document_number: "12345678Z")
|
||||
verified_user = create(:verified_user, document_number: "12345678Z", email: "rock@example.com")
|
||||
|
||||
login_as(user)
|
||||
visit verified_user_path
|
||||
@@ -89,13 +59,8 @@ describe "Verified users" do
|
||||
end
|
||||
|
||||
scenario "Select a verified phone" do
|
||||
user = create(:user,
|
||||
residence_verified_at: Time.current,
|
||||
document_number: "12345678Z")
|
||||
|
||||
verified_user = create(:verified_user,
|
||||
document_number: "12345678Z",
|
||||
phone: "611111111")
|
||||
user = create(:user, residence_verified_at: Time.current, document_number: "12345678Z")
|
||||
verified_user = create(:verified_user, document_number: "12345678Z", phone: "611111111")
|
||||
|
||||
login_as(user)
|
||||
visit verified_user_path
|
||||
@@ -108,13 +73,9 @@ describe "Verified users" do
|
||||
end
|
||||
|
||||
scenario "Continue without selecting any verified information" do
|
||||
user = create(:user,
|
||||
residence_verified_at: Time.current,
|
||||
document_number: "12345678Z")
|
||||
user = create(:user, residence_verified_at: Time.current, document_number: "12345678Z")
|
||||
|
||||
create(:verified_user,
|
||||
document_number: "12345678Z",
|
||||
phone: "611111111")
|
||||
create(:verified_user, document_number: "12345678Z", phone: "611111111")
|
||||
|
||||
login_as(user)
|
||||
visit verified_user_path
|
||||
|
||||
@@ -3,20 +3,9 @@ require "rails_helper"
|
||||
describe "Welcome screen" do
|
||||
let(:budget) { create(:budget) }
|
||||
|
||||
it_behaves_like "remotely_translatable",
|
||||
:proposal,
|
||||
"root_path",
|
||||
{}
|
||||
|
||||
it_behaves_like "remotely_translatable",
|
||||
:debate,
|
||||
"root_path",
|
||||
{}
|
||||
|
||||
it_behaves_like "remotely_translatable",
|
||||
:legislation_process,
|
||||
"root_path",
|
||||
{}
|
||||
it_behaves_like "remotely_translatable", :proposal, "root_path", {}
|
||||
it_behaves_like "remotely_translatable", :debate, "root_path", {}
|
||||
it_behaves_like "remotely_translatable", :legislation_process, "root_path", {}
|
||||
|
||||
scenario "requires a logged in user" do
|
||||
visit welcome_path
|
||||
|
||||
Reference in New Issue
Block a user