Simplify setting up admin component tests

This commit is contained in:
Javi Martín
2023-07-02 01:59:50 +02:00
parent 62304b50e0
commit b8ed81c5b8
16 changed files with 23 additions and 27 deletions

View File

@@ -1,8 +1,7 @@
require "rails_helper" require "rails_helper"
describe Admin::AllowedTableActionsComponent, controller: Admin::BaseController do describe Admin::AllowedTableActionsComponent, :admin do
before do before do
sign_in(create(:administrator).user)
allow_any_instance_of(Admin::AllowedTableActionsComponent).to receive(:can?).and_return true allow_any_instance_of(Admin::AllowedTableActionsComponent).to receive(:can?).and_return true
end end
let(:record) { create(:banner, title: "Important!") } let(:record) { create(:banner, title: "Important!") }

View File

@@ -1,6 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::BudgetHeadings::HeadingsComponent, controller: Admin::BaseController do describe Admin::BudgetHeadings::HeadingsComponent, :admin do
it "includes group name in the message when there are no headings" do it "includes group name in the message when there are no headings" do
group = create(:budget_group, name: "Whole planet") group = create(:budget_group, name: "Whole planet")

View File

@@ -1,6 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::BudgetPhases::ToggleEnabledComponent, controller: Admin::BaseController do describe Admin::BudgetPhases::ToggleEnabledComponent, :admin do
let(:phase) { create(:budget).phases.informing } let(:phase) { create(:budget).phases.informing }
let(:component) { Admin::BudgetPhases::ToggleEnabledComponent.new(phase) } let(:component) { Admin::BudgetPhases::ToggleEnabledComponent.new(phase) }

View File

@@ -1,8 +1,7 @@
require "rails_helper" require "rails_helper"
describe Admin::Budgets::ActionsComponent, controller: Admin::BaseController do describe Admin::Budgets::ActionsComponent, :admin do
include Rails.application.routes.url_helpers include Rails.application.routes.url_helpers
before { sign_in(create(:administrator).user) }
let(:budget) { create(:budget) } let(:budget) { create(:budget) }
let(:component) { Admin::Budgets::ActionsComponent.new(budget) } let(:component) { Admin::Budgets::ActionsComponent.new(budget) }

View File

@@ -1,9 +1,8 @@
require "rails_helper" require "rails_helper"
describe Admin::Budgets::CalculateWinnersButtonComponent, controller: Admin::BaseController do describe Admin::Budgets::CalculateWinnersButtonComponent, :admin do
let(:budget) { create(:budget) } let(:budget) { create(:budget) }
let(:component) { Admin::Budgets::CalculateWinnersButtonComponent.new(budget) } let(:component) { Admin::Budgets::CalculateWinnersButtonComponent.new(budget) }
before { sign_in(create(:administrator).user) }
it "renders when reviewing ballots" do it "renders when reviewing ballots" do
budget.update!(phase: "reviewing_ballots") budget.update!(phase: "reviewing_ballots")

View File

@@ -1,8 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::Budgets::LinksComponent, controller: Admin::BaseController do describe Admin::Budgets::LinksComponent, :admin do
before { sign_in(create(:administrator).user) }
describe "see results link" do describe "see results link" do
let(:budget) { create(:budget, :finished) } let(:budget) { create(:budget, :finished) }
let(:component) { Admin::Budgets::LinksComponent.new(budget) } let(:component) { Admin::Budgets::LinksComponent.new(budget) }

View File

@@ -1,6 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::Budgets::TableActionsComponent, controller: Admin::BaseController do describe Admin::Budgets::TableActionsComponent, :admin do
let(:budget) { create(:budget) } let(:budget) { create(:budget) }
let(:component) { Admin::Budgets::TableActionsComponent.new(budget) } let(:component) { Admin::Budgets::TableActionsComponent.new(budget) }

View File

@@ -1,6 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::Geozones::IndexComponent, controller: Admin::BaseController do describe Admin::Geozones::IndexComponent, :admin do
describe "Coordinates description" do describe "Coordinates description" do
it "includes whether coordinates are defined or not" do it "includes whether coordinates are defined or not" do
geozones = [ geozones = [

View File

@@ -1,6 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::Poll::Officers::OfficersComponent, controller: Admin::BaseController do describe Admin::Poll::Officers::OfficersComponent, :admin do
let(:existing_officer) { create(:poll_officer, name: "Old officer") } let(:existing_officer) { create(:poll_officer, name: "Old officer") }
let(:new_officer) { build(:poll_officer, name: "New officer") } let(:new_officer) { build(:poll_officer, name: "New officer") }
let(:officers) { [existing_officer, new_officer] } let(:officers) { [existing_officer, new_officer] }

View File

@@ -1,7 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::Poll::Questions::Answers::Documents::TableActionsComponent, controller: Admin::BaseController do describe Admin::Poll::Questions::Answers::Documents::TableActionsComponent, :admin do
before { sign_in(create(:administrator).user) }
let(:future_answer) { create(:poll_question_answer, poll: create(:poll, :future)) } let(:future_answer) { create(:poll_question_answer, poll: create(:poll, :future)) }
let(:current_answer) { create(:poll_question_answer, poll: create(:poll)) } let(:current_answer) { create(:poll_question_answer, poll: create(:poll)) }

View File

@@ -1,8 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::Poll::Questions::Answers::TableActionsComponent, controller: Admin::BaseController do describe Admin::Poll::Questions::Answers::TableActionsComponent, :admin do
before { sign_in(create(:administrator).user) }
it "displays the edit and destroy actions when the poll has not started" do it "displays the edit and destroy actions when the poll has not started" do
answer = create(:poll_question_answer, poll: create(:poll, :future)) answer = create(:poll_question_answer, poll: create(:poll, :future))

View File

@@ -1,8 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::Poll::Questions::Answers::Videos::TableActionsComponent, controller: Admin::BaseController do describe Admin::Poll::Questions::Answers::Videos::TableActionsComponent, :admin do
before { sign_in(create(:administrator).user) }
it "displays the edit and destroy actions when the poll has not started" do it "displays the edit and destroy actions when the poll has not started" do
video = create(:poll_answer_video, poll: create(:poll, :future)) video = create(:poll_answer_video, poll: create(:poll, :future))

View File

@@ -1,8 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::Poll::Questions::TableActionsComponent, controller: Admin::BaseController do describe Admin::Poll::Questions::TableActionsComponent, :admin do
before { sign_in(create(:administrator).user) }
it "displays the edit and destroy actions when the poll has not started" do it "displays the edit and destroy actions when the poll has not started" do
question = create(:poll_question, poll: create(:poll, :future)) question = create(:poll_question, poll: create(:poll, :future))

View File

@@ -1,6 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::Roles::TableActionsComponent, controller: Admin::BaseController do describe Admin::Roles::TableActionsComponent, :admin do
let(:user) { create(:user) } let(:user) { create(:user) }
it "renders button to add the role for new records" do it "renders button to add the role for new records" do

View File

@@ -1,6 +1,6 @@
require "rails_helper" require "rails_helper"
describe Admin::TableActionsComponent, controller: Admin::BaseController do describe Admin::TableActionsComponent, :admin do
let(:record) { create(:banner, title: "Important!") } let(:record) { create(:banner, title: "Important!") }
it "renders edit and destroy actions by default" do it "renders edit and destroy actions by default" do

View File

@@ -94,6 +94,14 @@ RSpec.configure do |config|
sign_in(nil) sign_in(nil)
end end
config.before(:each, :admin, type: :component) do
sign_in(create(:administrator).user)
end
config.around(:each, :admin, type: :component) do |example|
with_controller_class(Admin::BaseController) { example.run }
end
config.around(:each, :controller, type: :component) do |example| config.around(:each, :controller, type: :component) do |example|
with_controller_class(example.metadata[:controller]) { example.run } with_controller_class(example.metadata[:controller]) { example.run }
end end