diff --git a/spec/components/admin/budgets/duration_component_spec.rb b/spec/components/admin/budgets/duration_component_spec.rb index 5e6c78e24..a95c44108 100644 --- a/spec/components/admin/budgets/duration_component_spec.rb +++ b/spec/components/admin/budgets/duration_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::Budgets::DurationComponent, type: :component do +describe Admin::Budgets::DurationComponent do describe "#dates" do it "shows both dates when both are defined" do durable = double( diff --git a/spec/components/admin/budgets/form_component_spec.rb b/spec/components/admin/budgets/form_component_spec.rb index 66b0b6bd3..4fd33d5b6 100644 --- a/spec/components/admin/budgets/form_component_spec.rb +++ b/spec/components/admin/budgets/form_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::Budgets::FormComponent, type: :component do +describe Admin::Budgets::FormComponent do describe "#voting_styles_select_options" do it "provides vote kinds" do types = [["Knapsack", "knapsack"], ["Approval", "approval"]] diff --git a/spec/components/admin/budgets/index_component_spec.rb b/spec/components/admin/budgets/index_component_spec.rb index 09702ad27..9ec63f2b3 100644 --- a/spec/components/admin/budgets/index_component_spec.rb +++ b/spec/components/admin/budgets/index_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::Budgets::IndexComponent, type: :component, controller: Admin::BudgetsController do +describe Admin::Budgets::IndexComponent, controller: Admin::BudgetsController do before do allow_any_instance_of(Admin::BudgetsController).to receive(:valid_filters).and_return(["all"]) allow_any_instance_of(Admin::BudgetsController).to receive(:current_filter).and_return("all") diff --git a/spec/components/admin/budgets/table_actions_component_spec.rb b/spec/components/admin/budgets/table_actions_component_spec.rb index 484a7aae7..ceef7a850 100644 --- a/spec/components/admin/budgets/table_actions_component_spec.rb +++ b/spec/components/admin/budgets/table_actions_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::Budgets::TableActionsComponent, type: :component, controller: Admin::BaseController do +describe Admin::Budgets::TableActionsComponent, controller: Admin::BaseController do let(:budget) { create(:budget) } let(:component) { Admin::Budgets::TableActionsComponent.new(budget) } diff --git a/spec/components/admin/budgets_wizard/headings/group_switcher_component_spec.rb b/spec/components/admin/budgets_wizard/headings/group_switcher_component_spec.rb index 140db350d..0392290f7 100644 --- a/spec/components/admin/budgets_wizard/headings/group_switcher_component_spec.rb +++ b/spec/components/admin/budgets_wizard/headings/group_switcher_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::BudgetsWizard::Headings::GroupSwitcherComponent, type: :component do +describe Admin::BudgetsWizard::Headings::GroupSwitcherComponent do it "is not rendered for budgets with one group" do group = create(:budget_group, budget: create(:budget)) diff --git a/spec/components/admin/hidden_table_actions_component_spec.rb b/spec/components/admin/hidden_table_actions_component_spec.rb index f439cf06c..d30193434 100644 --- a/spec/components/admin/hidden_table_actions_component_spec.rb +++ b/spec/components/admin/hidden_table_actions_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::HiddenTableActionsComponent, type: :component do +describe Admin::HiddenTableActionsComponent do let(:record) { create(:user) } let(:component) { Admin::HiddenTableActionsComponent.new(record) } diff --git a/spec/components/admin/organizations/table_actions_component_spec.rb b/spec/components/admin/organizations/table_actions_component_spec.rb index 66ab51cf2..7f2204b52 100644 --- a/spec/components/admin/organizations/table_actions_component_spec.rb +++ b/spec/components/admin/organizations/table_actions_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::Organizations::TableActionsComponent, type: :component do +describe Admin::Organizations::TableActionsComponent do let(:organization) { create(:organization) } let(:component) { Admin::Organizations::TableActionsComponent.new(organization) } diff --git a/spec/components/admin/poll/officers/officers_component_spec.rb b/spec/components/admin/poll/officers/officers_component_spec.rb index 0dd3aa944..a1b1af07c 100644 --- a/spec/components/admin/poll/officers/officers_component_spec.rb +++ b/spec/components/admin/poll/officers/officers_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::Poll::Officers::OfficersComponent, type: :component, controller: Admin::BaseController do +describe Admin::Poll::Officers::OfficersComponent, controller: Admin::BaseController do let(:existing_officer) { create(:poll_officer, name: "Old officer") } let(:new_officer) { build(:poll_officer, name: "New officer") } let(:officers) { [existing_officer, new_officer] } diff --git a/spec/components/admin/poll/questions/filter_component_spec.rb b/spec/components/admin/poll/questions/filter_component_spec.rb index 8861ad354..3da7270ad 100644 --- a/spec/components/admin/poll/questions/filter_component_spec.rb +++ b/spec/components/admin/poll/questions/filter_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::Poll::Questions::FilterComponent, type: :component do +describe Admin::Poll::Questions::FilterComponent do it "renders a button to submit the form" do render_inline Admin::Poll::Questions::FilterComponent.new([]) diff --git a/spec/components/admin/roles/table_actions_component_spec.rb b/spec/components/admin/roles/table_actions_component_spec.rb index 5d08409cf..8e1c613c8 100644 --- a/spec/components/admin/roles/table_actions_component_spec.rb +++ b/spec/components/admin/roles/table_actions_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::Roles::TableActionsComponent, type: :component, controller: Admin::BaseController do +describe Admin::Roles::TableActionsComponent, controller: Admin::BaseController do let(:user) { create(:user) } it "renders link to add the role for new records" do diff --git a/spec/components/admin/stats/sdg/goal_component_spec.rb b/spec/components/admin/stats/sdg/goal_component_spec.rb index bd02b7f8d..c3af91bb4 100644 --- a/spec/components/admin/stats/sdg/goal_component_spec.rb +++ b/spec/components/admin/stats/sdg/goal_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::Stats::SDG::GoalComponent, type: :component do +describe Admin::Stats::SDG::GoalComponent do let(:component) { Admin::Stats::SDG::GoalComponent.new(goal: goal) } let(:goal) { SDG::Goal.sample } diff --git a/spec/components/admin/table_actions_component_spec.rb b/spec/components/admin/table_actions_component_spec.rb index c74d9a575..a859c3fe2 100644 --- a/spec/components/admin/table_actions_component_spec.rb +++ b/spec/components/admin/table_actions_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Admin::TableActionsComponent, type: :component, controller: Admin::BaseController do +describe Admin::TableActionsComponent, controller: Admin::BaseController do let(:record) { create(:banner) } it "renders links to edit and destroy a record by default" do diff --git a/spec/components/budgets/budget_component_spec.rb b/spec/components/budgets/budget_component_spec.rb index 6aafa1409..ad01643ae 100644 --- a/spec/components/budgets/budget_component_spec.rb +++ b/spec/components/budgets/budget_component_spec.rb @@ -1,13 +1,11 @@ require "rails_helper" -describe Budgets::BudgetComponent, type: :component do +describe Budgets::BudgetComponent do let(:budget) { create(:budget) } let(:heading) { create(:budget_heading, budget: budget) } let(:user) { create(:user) } - before do - allow(controller).to receive(:current_user).and_return(user) - end + before { sign_in(user) } describe "budget header" do it "shows budget name and link to help" do diff --git a/spec/components/budgets/investment_component_spec.rb b/spec/components/budgets/investment_component_spec.rb index 0edb520ed..7db17ae8d 100644 --- a/spec/components/budgets/investment_component_spec.rb +++ b/spec/components/budgets/investment_component_spec.rb @@ -1,11 +1,7 @@ require "rails_helper" -describe Budgets::InvestmentComponent, type: :component do - let(:user) { create(:user) } - - before do - allow(controller).to receive(:current_user).and_return(user) - end +describe Budgets::InvestmentComponent do + before { sign_in(create(:user)) } it "shows the investment image when defined" do investment = create(:budget_investment, :with_image) diff --git a/spec/components/budgets/investments/form_component_spec.rb b/spec/components/budgets/investments/form_component_spec.rb index 2402cba81..22459cf09 100644 --- a/spec/components/budgets/investments/form_component_spec.rb +++ b/spec/components/budgets/investments/form_component_spec.rb @@ -1,13 +1,10 @@ require "rails_helper" -describe Budgets::Investments::FormComponent, type: :component do +describe Budgets::Investments::FormComponent do include Rails.application.routes.url_helpers let(:budget) { create(:budget) } - - before do - allow(controller).to receive(:current_user).and_return(create(:user)) - end + before { sign_in(create(:user)) } around do |example| with_request_url(new_budget_investment_path(budget)) { example.run } diff --git a/spec/components/budgets/investments/votes_component_spec.rb b/spec/components/budgets/investments/votes_component_spec.rb index a3b3fdae0..83221b7a0 100644 --- a/spec/components/budgets/investments/votes_component_spec.rb +++ b/spec/components/budgets/investments/votes_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Budgets::Investments::VotesComponent, type: :component do +describe Budgets::Investments::VotesComponent do describe "vote link" do context "when investment shows votes" do let(:investment) { create(:budget_investment, title: "Renovate sidewalks in Main Street") } @@ -9,7 +9,7 @@ describe Budgets::Investments::VotesComponent, type: :component do before { allow(investment).to receive(:should_show_votes?).and_return(true) } it "displays a button to support the investment to identified users" do - allow(controller).to receive(:current_user).and_return(create(:user)) + sign_in(create(:user)) render_inline component @@ -19,8 +19,6 @@ describe Budgets::Investments::VotesComponent, type: :component do end it "disables the button to support the investment to unidentified users" do - allow(controller).to receive(:current_user).and_return(nil) - render_inline component expect(page).to have_button count: 1, disabled: :all @@ -30,7 +28,7 @@ describe Budgets::Investments::VotesComponent, type: :component do it "shows the button to remove support when users have supported the investment" do user = create(:user) user.up_votes(investment) - allow(controller).to receive(:current_user).and_return(user) + sign_in(user) render_inline component diff --git a/spec/components/budgets/investments_list_component_spec.rb b/spec/components/budgets/investments_list_component_spec.rb index d22b9f941..4b0fe18dd 100644 --- a/spec/components/budgets/investments_list_component_spec.rb +++ b/spec/components/budgets/investments_list_component_spec.rb @@ -1,14 +1,12 @@ require "rails_helper" -describe Budgets::InvestmentsListComponent, type: :component do +describe Budgets::InvestmentsListComponent do include Rails.application.routes.url_helpers let(:budget) { create(:budget, :accepting) } let(:group) { create(:budget_group, budget: budget) } let(:heading) { create(:budget_heading, group: group) } - before { allow(controller).to receive(:current_user).and_return(nil) } - describe "#investments" do let(:component) { Budgets::InvestmentsListComponent.new(budget) } diff --git a/spec/components/budgets/phases_component_spec.rb b/spec/components/budgets/phases_component_spec.rb index c67e1eb24..efb83dba9 100644 --- a/spec/components/budgets/phases_component_spec.rb +++ b/spec/components/budgets/phases_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Budgets::PhasesComponent, type: :component do +describe Budgets::PhasesComponent do let(:budget) { create(:budget) } it "shows budget current phase main link when defined" do diff --git a/spec/components/budgets/subheader_component_spec.rb b/spec/components/budgets/subheader_component_spec.rb index 0bae1f7c6..5ff750e71 100644 --- a/spec/components/budgets/subheader_component_spec.rb +++ b/spec/components/budgets/subheader_component_spec.rb @@ -1,8 +1,8 @@ require "rails_helper" -describe Budgets::SubheaderComponent, type: :component do +describe Budgets::SubheaderComponent do it "shows budget current phase name" do - allow(controller).to receive(:current_user).and_return(create(:user)) + sign_in(create(:user)) budget = create(:budget, :informing) render_inline Budgets::SubheaderComponent.new(budget) @@ -17,7 +17,7 @@ describe Budgets::SubheaderComponent, type: :component do let(:budget) { create(:budget, :accepting) } it "and user is level_two_or_three_verified shows a link to create a new investment" do - allow(controller).to receive(:current_user).and_return(create(:user, :level_two)) + sign_in(create(:user, :level_two)) render_inline Budgets::SubheaderComponent.new(budget) @@ -34,7 +34,7 @@ describe Budgets::SubheaderComponent, type: :component do end it "and user is not verified shows a link to account verification" do - allow(controller).to receive(:current_user).and_return(create(:user)) + sign_in(create(:user)) render_inline Budgets::SubheaderComponent.new(budget) @@ -53,8 +53,6 @@ describe Budgets::SubheaderComponent, type: :component do end it "and user is not logged in shows links to sign in and sign up" do - allow(controller).to receive(:current_user).and_return(nil) - render_inline Budgets::SubheaderComponent.new(budget) expect(page).to have_content "To create a new budget investment you must" @@ -77,12 +75,12 @@ describe Budgets::SubheaderComponent, type: :component do describe "See results link" do it "is showed when budget is finished and results are enabled for all users" do budget = create(:budget, :finished) - allow(controller).to receive(:current_user).and_return(create(:user)) + sign_in(create(:user)) render_inline Budgets::SubheaderComponent.new(budget) expect(page).to have_link "See results" - allow(controller).to receive(:current_user).and_return(create(:administrator).user) + sign_in(create(:administrator).user) render_inline Budgets::SubheaderComponent.new(budget) expect(page).to have_link "See results" @@ -90,12 +88,12 @@ describe Budgets::SubheaderComponent, type: :component do it "is not showed when budget is finished or results are disabled for all users" do budget = create(:budget, :balloting, results_enabled: true) - allow(controller).to receive(:current_user).and_return(create(:user)) + sign_in(create(:user)) render_inline Budgets::SubheaderComponent.new(budget) expect(page).not_to have_link "See results" - allow(controller).to receive(:current_user).and_return(create(:administrator).user) + sign_in(create(:administrator).user) render_inline Budgets::SubheaderComponent.new(budget) expect(page).not_to have_link "See results" diff --git a/spec/components/budgets/supports_info_component_spec.rb b/spec/components/budgets/supports_info_component_spec.rb index 37afa9644..64b563877 100644 --- a/spec/components/budgets/supports_info_component_spec.rb +++ b/spec/components/budgets/supports_info_component_spec.rb @@ -1,10 +1,9 @@ require "rails_helper" -describe Budgets::SupportsInfoComponent, type: :component do +describe Budgets::SupportsInfoComponent do let(:budget) { create(:budget, :selecting) } let(:group) { create(:budget_group, budget: budget) } let(:component) { Budgets::SupportsInfoComponent.new(budget) } - before { allow(component).to receive(:current_user).and_return(nil) } it "renders when the budget is selecting" do create(:budget_heading, group: group) @@ -42,7 +41,7 @@ describe Budgets::SupportsInfoComponent, type: :component do context "logged users" do let(:user) { create(:user, :level_two) } - before { allow(component).to receive(:current_user).and_return(user) } + before { sign_in(user) } it "shows supported investments" do heading = create(:budget_heading, budget: budget) @@ -67,8 +66,6 @@ describe Budgets::SupportsInfoComponent, type: :component do it "does not show supports for another budget" do second_budget = create(:budget, phase: "selecting") second_component = Budgets::SupportsInfoComponent.new(second_budget) - allow(second_component).to receive(:current_user).and_return(user) - create_list(:budget_investment, 2, :selected, budget: budget, voters: [user]) create_list(:budget_investment, 3, :selected, budget: second_budget, voters: [user]) @@ -76,6 +73,8 @@ describe Budgets::SupportsInfoComponent, type: :component do expect(page).to have_content "So far you've supported 2 projects." + sign_in(user) + render_inline second_component expect(page).to have_content "So far you've supported 3 projects." diff --git a/spec/components/layout/locale_switcher_component_spec.rb b/spec/components/layout/locale_switcher_component_spec.rb index e0dd29474..d703aa62f 100644 --- a/spec/components/layout/locale_switcher_component_spec.rb +++ b/spec/components/layout/locale_switcher_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Layout::LocaleSwitcherComponent, type: :component do +describe Layout::LocaleSwitcherComponent do let(:component) { Layout::LocaleSwitcherComponent.new } around do |example| diff --git a/spec/components/layout/social_component_spec.rb b/spec/components/layout/social_component_spec.rb index 29d29aa81..757051538 100644 --- a/spec/components/layout/social_component_spec.rb +++ b/spec/components/layout/social_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Layout::SocialComponent, type: :component do +describe Layout::SocialComponent do describe "#render?" do it "renders when a social setting is present" do Setting["twitter_handle"] = "myhandle" diff --git a/spec/components/layout/top_links_component_spec.rb b/spec/components/layout/top_links_component_spec.rb index 734258129..e9e297d26 100644 --- a/spec/components/layout/top_links_component_spec.rb +++ b/spec/components/layout/top_links_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Layout::TopLinksComponent, type: :component do +describe Layout::TopLinksComponent do describe "#render?" do it "renders when a content block is defined" do create(:site_customization_content_block, name: "top_links") diff --git a/spec/components/machine_learning/comments_summary_component_spec.rb b/spec/components/machine_learning/comments_summary_component_spec.rb index 993077b65..7cc32b12b 100644 --- a/spec/components/machine_learning/comments_summary_component_spec.rb +++ b/spec/components/machine_learning/comments_summary_component_spec.rb @@ -1,13 +1,12 @@ require "rails_helper" -describe MachineLearning::CommentsSummaryComponent, type: :component do +describe MachineLearning::CommentsSummaryComponent do let(:commentable) { double(summary_comment: double(body: "There's a general agreement")) } let(:component) { MachineLearning::CommentsSummaryComponent.new(commentable) } before do Setting["feature.machine_learning"] = true Setting["machine_learning.comments_summary"] = true - allow(controller).to receive(:current_user).and_return(nil) end it "is displayed when the setting is enabled" do diff --git a/spec/components/pages/help/section_component_spec.rb b/spec/components/pages/help/section_component_spec.rb index f116f9579..cb7aaac76 100644 --- a/spec/components/pages/help/section_component_spec.rb +++ b/spec/components/pages/help/section_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Pages::Help::SectionComponent, type: :component do +describe Pages::Help::SectionComponent do describe "#image_path" do it "returns the image for the first fallback language with an image" do allow(I18n).to receive(:fallbacks).and_return({ en: [:es, :de] }) diff --git a/spec/components/relationable/related_list_component_spec.rb b/spec/components/relationable/related_list_component_spec.rb index 55ab43729..05e34e62c 100644 --- a/spec/components/relationable/related_list_component_spec.rb +++ b/spec/components/relationable/related_list_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Relationable::RelatedListComponent, type: :component do +describe Relationable::RelatedListComponent do let(:proposal) { create(:proposal) } let(:user_proposal) { create(:proposal, title: "I am user related") } let(:machine_proposal) { create(:proposal, title: "I am machine related") } @@ -14,8 +14,6 @@ describe Relationable::RelatedListComponent, type: :component do create(:related_content, parent_relationable: proposal, child_relationable: machine_proposal, machine_learning: true) - - allow(controller).to receive(:current_user).and_return(nil) end it "displays machine learning and user content when machine learning is enabled" do diff --git a/spec/components/sdg/goals/help_page_component_spec.rb b/spec/components/sdg/goals/help_page_component_spec.rb index 6e02f58f0..250dd4e91 100644 --- a/spec/components/sdg/goals/help_page_component_spec.rb +++ b/spec/components/sdg/goals/help_page_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::Goals::HelpPageComponent, type: :component do +describe SDG::Goals::HelpPageComponent do let(:goals) { SDG::Goal.all } let(:component) { SDG::Goals::HelpPageComponent.new(goals) } diff --git a/spec/components/sdg/goals/index_component_spec.rb b/spec/components/sdg/goals/index_component_spec.rb index 4caffb3ce..92bebb7e4 100644 --- a/spec/components/sdg/goals/index_component_spec.rb +++ b/spec/components/sdg/goals/index_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::Goals::IndexComponent, type: :component do +describe SDG::Goals::IndexComponent do let!(:goals) { SDG::Goal.all } let!(:phases) { SDG::Phase.all } let!(:component) { SDG::Goals::IndexComponent.new(goals, header: nil, phases: phases) } diff --git a/spec/components/sdg/goals/plain_tag_list_component_spec.rb b/spec/components/sdg/goals/plain_tag_list_component_spec.rb index 0106848d0..cd629f26b 100644 --- a/spec/components/sdg/goals/plain_tag_list_component_spec.rb +++ b/spec/components/sdg/goals/plain_tag_list_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::Goals::PlainTagListComponent, type: :component do +describe SDG::Goals::PlainTagListComponent do let(:debate) { create(:debate, sdg_goals: [SDG::Goal[1], SDG::Goal[3]]) } let(:component) { SDG::Goals::PlainTagListComponent.new(debate) } diff --git a/spec/components/sdg/goals/show_component_spec.rb b/spec/components/sdg/goals/show_component_spec.rb index c654242bd..52859b20a 100644 --- a/spec/components/sdg/goals/show_component_spec.rb +++ b/spec/components/sdg/goals/show_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::Goals::ShowComponent, type: :component do +describe SDG::Goals::ShowComponent do let!(:goal_1) { SDG::Goal[1] } before do diff --git a/spec/components/sdg/goals/tag_cloud_component_spec.rb b/spec/components/sdg/goals/tag_cloud_component_spec.rb index 6738ba0da..be2d2cb1e 100644 --- a/spec/components/sdg/goals/tag_cloud_component_spec.rb +++ b/spec/components/sdg/goals/tag_cloud_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::Goals::TagCloudComponent, type: :component do +describe SDG::Goals::TagCloudComponent do before do Setting["feature.sdg"] = true Setting["sdg.process.debates"] = true diff --git a/spec/components/sdg/goals/tag_list_component_spec.rb b/spec/components/sdg/goals/tag_list_component_spec.rb index 493dc9dbc..b47bcd5b9 100644 --- a/spec/components/sdg/goals/tag_list_component_spec.rb +++ b/spec/components/sdg/goals/tag_list_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::Goals::TagListComponent, type: :component do +describe SDG::Goals::TagListComponent do let(:debate) { create(:debate, sdg_goals: [SDG::Goal[1], SDG::Goal[3]]) } let(:component) { SDG::Goals::TagListComponent.new(debate) } diff --git a/spec/components/sdg/goals/targets_component_spec.rb b/spec/components/sdg/goals/targets_component_spec.rb index a7c1bbed7..072abf99f 100644 --- a/spec/components/sdg/goals/targets_component_spec.rb +++ b/spec/components/sdg/goals/targets_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::Goals::TargetsComponent, type: :component do +describe SDG::Goals::TargetsComponent do let(:goal) { SDG::Goal[1] } let(:component) { SDG::Goals::TargetsComponent.new(goal) } diff --git a/spec/components/sdg/related_list_selector_component_spec.rb b/spec/components/sdg/related_list_selector_component_spec.rb index 266b7146a..da5eaa763 100644 --- a/spec/components/sdg/related_list_selector_component_spec.rb +++ b/spec/components/sdg/related_list_selector_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::RelatedListSelectorComponent, type: :component do +describe SDG::RelatedListSelectorComponent do let(:debate) { create(:debate) } let(:form) { ConsulFormBuilder.new(:debate, debate, ActionView::Base.new, {}) } let(:component) { SDG::RelatedListSelectorComponent.new(form) } diff --git a/spec/components/sdg/tag_list_component_spec.rb b/spec/components/sdg/tag_list_component_spec.rb index 7267f5efc..723fdef4a 100644 --- a/spec/components/sdg/tag_list_component_spec.rb +++ b/spec/components/sdg/tag_list_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::TagListComponent, type: :component do +describe SDG::TagListComponent do let(:debate) do create(:debate, sdg_goals: [SDG::Goal[3]], diff --git a/spec/components/sdg/targets/plain_tag_list_component_spec.rb b/spec/components/sdg/targets/plain_tag_list_component_spec.rb index b80cd6849..801273bde 100644 --- a/spec/components/sdg/targets/plain_tag_list_component_spec.rb +++ b/spec/components/sdg/targets/plain_tag_list_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::Targets::PlainTagListComponent, type: :component do +describe SDG::Targets::PlainTagListComponent do let(:debate) do create(:debate, sdg_targets: [SDG::Target[1.1], SDG::Target[3.2], create(:sdg_local_target, code: "3.2.1")] diff --git a/spec/components/sdg/targets/tag_list_component_spec.rb b/spec/components/sdg/targets/tag_list_component_spec.rb index 18f65cd03..327c7aa56 100644 --- a/spec/components/sdg/targets/tag_list_component_spec.rb +++ b/spec/components/sdg/targets/tag_list_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDG::Targets::TagListComponent, type: :component do +describe SDG::Targets::TagListComponent do let(:debate) do create(:debate, sdg_targets: [SDG::Target[1.1], SDG::Target[3.2], create(:sdg_local_target, code: "3.2.1")] diff --git a/spec/components/sdg_management/menu_component_spec.rb b/spec/components/sdg_management/menu_component_spec.rb index 78708714f..ef3223890 100644 --- a/spec/components/sdg_management/menu_component_spec.rb +++ b/spec/components/sdg_management/menu_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDGManagement::MenuComponent, type: :component do +describe SDGManagement::MenuComponent do let(:component) { SDGManagement::MenuComponent.new } before do diff --git a/spec/components/sdg_management/relations/index_component_spec.rb b/spec/components/sdg_management/relations/index_component_spec.rb index ce6308811..2f6e001f0 100644 --- a/spec/components/sdg_management/relations/index_component_spec.rb +++ b/spec/components/sdg_management/relations/index_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDGManagement::Relations::IndexComponent, type: :component, controller: SDGManagement::RelationsController do +describe SDGManagement::Relations::IndexComponent, controller: SDGManagement::RelationsController do before do allow_any_instance_of(SDGManagement::RelationsController).to receive(:valid_filters) .and_return(SDGManagement::RelationsController::FILTERS) diff --git a/spec/components/sdg_management/relations/search_component_spec.rb b/spec/components/sdg_management/relations/search_component_spec.rb index d3fd93c0f..11e97cef7 100644 --- a/spec/components/sdg_management/relations/search_component_spec.rb +++ b/spec/components/sdg_management/relations/search_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDGManagement::Relations::SearchComponent, type: :component do +describe SDGManagement::Relations::SearchComponent do describe "#goal_options" do it "orders goals by code in the select" do component = SDGManagement::Relations::SearchComponent.new(label: "Search proposals") diff --git a/spec/components/sdg_management/subnavigation_component_spec.rb b/spec/components/sdg_management/subnavigation_component_spec.rb index 40f5d9ae0..b841e779c 100644 --- a/spec/components/sdg_management/subnavigation_component_spec.rb +++ b/spec/components/sdg_management/subnavigation_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe SDGManagement::SubnavigationComponent, type: :component do +describe SDGManagement::SubnavigationComponent do let(:component) do SDGManagement::SubnavigationComponent.new(current: :goals) do "Tab content" diff --git a/spec/components/shared/advanced_search_component_spec.rb b/spec/components/shared/advanced_search_component_spec.rb index 0348d7389..08523c1cf 100644 --- a/spec/components/shared/advanced_search_component_spec.rb +++ b/spec/components/shared/advanced_search_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Shared::AdvancedSearchComponent, type: :component do +describe Shared::AdvancedSearchComponent do let(:component) { Shared::AdvancedSearchComponent.new } context "JavaScript disabled" do diff --git a/spec/components/shared/banner_component_spec.rb b/spec/components/shared/banner_component_spec.rb index dcf4511c1..9dc1113a2 100644 --- a/spec/components/shared/banner_component_spec.rb +++ b/spec/components/shared/banner_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Shared::BannerComponent, type: :component do +describe Shared::BannerComponent do it "renders given a banner" do banner = create(:banner, title: "Vote now!", diff --git a/spec/components/shared/filter_selector_component_spec.rb b/spec/components/shared/filter_selector_component_spec.rb index 9af8eeea9..5333fc695 100644 --- a/spec/components/shared/filter_selector_component_spec.rb +++ b/spec/components/shared/filter_selector_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Shared::FilterSelectorComponent, type: :component do +describe Shared::FilterSelectorComponent do it "renders a form with a select" do component = Shared::FilterSelectorComponent.new(i18n_namespace: "budgets.investments.index") allow(component).to receive(:valid_filters).and_return(["unfeasible", "winners"]) diff --git a/spec/components/shared/link_list_component_spec.rb b/spec/components/shared/link_list_component_spec.rb index 7f951fb30..8dea5fb90 100644 --- a/spec/components/shared/link_list_component_spec.rb +++ b/spec/components/shared/link_list_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Shared::LinkListComponent, type: :component do +describe Shared::LinkListComponent do it "renders nothing with an empty list" do render_inline Shared::LinkListComponent.new diff --git a/spec/components/shared/tag_list_component_spec.rb b/spec/components/shared/tag_list_component_spec.rb index be128370f..8b311ed33 100644 --- a/spec/components/shared/tag_list_component_spec.rb +++ b/spec/components/shared/tag_list_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Shared::TagListComponent, type: :component do +describe Shared::TagListComponent do let(:user_tag) { create(:tag, name: "user tag") } let(:ml_tag) { create(:tag, name: "machine learning tag") } let(:proposal) { create(:proposal, tag_list: [user_tag], ml_tag_list: [ml_tag]) } @@ -9,7 +9,6 @@ describe Shared::TagListComponent, type: :component do before do Setting["feature.machine_learning"] = true Setting["machine_learning.tags"] = true - allow(controller).to receive(:current_user).and_return(create(:administrator).user) end it "displays machine learning tags when machine learning is enabled" do diff --git a/spec/components/widget/feeds/debate_component_spec.rb b/spec/components/widget/feeds/debate_component_spec.rb index c0adb0785..7324a2b2c 100644 --- a/spec/components/widget/feeds/debate_component_spec.rb +++ b/spec/components/widget/feeds/debate_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Widget::Feeds::DebateComponent, type: :component do +describe Widget::Feeds::DebateComponent do let(:debate) { create(:debate, sdg_goals: [SDG::Goal[1]]) } let(:component) { Widget::Feeds::DebateComponent.new(debate) } diff --git a/spec/components/widget/feeds/feed_component_spec.rb b/spec/components/widget/feeds/feed_component_spec.rb index 6eed7ef2a..7ae6dac47 100644 --- a/spec/components/widget/feeds/feed_component_spec.rb +++ b/spec/components/widget/feeds/feed_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Widget::Feeds::FeedComponent, type: :component do +describe Widget::Feeds::FeedComponent do it "renders a message when there are no items" do feed = double(kind: "debates", items: []) component = Widget::Feeds::FeedComponent.new(feed) diff --git a/spec/components/widget/feeds/process_component_spec.rb b/spec/components/widget/feeds/process_component_spec.rb index e8de5e490..0f0d2327f 100644 --- a/spec/components/widget/feeds/process_component_spec.rb +++ b/spec/components/widget/feeds/process_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Widget::Feeds::ProcessComponent, type: :component do +describe Widget::Feeds::ProcessComponent do let(:process) { create(:legislation_process, sdg_goals: [SDG::Goal[1]]) } let(:component) { Widget::Feeds::ProcessComponent.new(process) } diff --git a/spec/components/widget/feeds/proposal_component_spec.rb b/spec/components/widget/feeds/proposal_component_spec.rb index 027efbf3e..8a225c2a3 100644 --- a/spec/components/widget/feeds/proposal_component_spec.rb +++ b/spec/components/widget/feeds/proposal_component_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe Widget::Feeds::ProposalComponent, type: :component do +describe Widget::Feeds::ProposalComponent do let(:proposal) { create(:proposal, sdg_goals: [SDG::Goal[1]]) } let(:component) { Widget::Feeds::ProposalComponent.new(proposal) } diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 7b9be99a2..874273bad 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -13,6 +13,14 @@ require "capybara/rspec" require "selenium/webdriver" require "view_component/test_helpers" +module ViewComponent + module TestHelpers + def sign_in(user) + allow(controller).to receive(:current_user).and_return(user) + end + end +end + RSpec.configure do |config| config.include ViewComponent::TestHelpers, type: :component end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 732165bef..b89e55699 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -20,6 +20,10 @@ RSpec.configure do |config| config.include(CommonActions) config.include(ActiveSupport::Testing::TimeHelpers) + config.define_derived_metadata(file_path: Regexp.new("/spec/components/")) do |metadata| + metadata[:type] = :component + end + config.before(:suite) do Rails.application.load_seed end @@ -79,6 +83,10 @@ RSpec.configure do |config| sign_in(create(:administrator).user) end + config.before(:each, type: :component) do + sign_in(nil) + end + config.around(:each, :controller, type: :component) do |example| with_controller_class(example.metadata[:controller]) { example.run } end