Use with_request_url in component specs
This method is available since view component 2.31.0, and greatly simplifies tests depending on the current URL.
This commit is contained in:
@@ -7,7 +7,10 @@ describe Budgets::Investments::FormComponent, type: :component do
|
||||
|
||||
before do
|
||||
allow(controller).to receive(:current_user).and_return(create(:user))
|
||||
allow(request).to receive(:path_parameters).and_return(budget_id: budget.id)
|
||||
end
|
||||
|
||||
around do |example|
|
||||
with_request_url(new_budget_investment_path(budget)) { example.run }
|
||||
end
|
||||
|
||||
describe "accept terms of services field" do
|
||||
|
||||
@@ -3,10 +3,8 @@ require "rails_helper"
|
||||
describe Layout::LocaleSwitcherComponent, type: :component do
|
||||
let(:component) { Layout::LocaleSwitcherComponent.new }
|
||||
|
||||
before do
|
||||
allow(request).to receive(:path_parameters).and_return(
|
||||
Rails.application.routes.recognize_path("/")
|
||||
)
|
||||
around do |example|
|
||||
with_request_url("/") { example.run }
|
||||
end
|
||||
|
||||
context "with only one language" do
|
||||
|
||||
@@ -6,14 +6,12 @@ describe SDGManagement::Relations::IndexComponent, type: :component, controller:
|
||||
.and_return(SDGManagement::RelationsController::FILTERS)
|
||||
allow_any_instance_of(SDGManagement::RelationsController).to receive(:current_filter)
|
||||
.and_return(SDGManagement::RelationsController::FILTERS.first)
|
||||
allow_any_instance_of(ApplicationHelper).to receive(:current_path_with_query_params)
|
||||
.and_return("/anything")
|
||||
end
|
||||
|
||||
it "renders the search form" do
|
||||
component = SDGManagement::Relations::IndexComponent.new(Proposal.none.page(1))
|
||||
|
||||
render_inline component
|
||||
with_request_url("/anything") { render_inline component }
|
||||
|
||||
expect(page).to have_css "form.complex"
|
||||
end
|
||||
|
||||
@@ -3,11 +3,10 @@ require "rails_helper"
|
||||
describe Shared::FilterSelectorComponent, type: :component do
|
||||
it "renders a form with a select" do
|
||||
component = Shared::FilterSelectorComponent.new(i18n_namespace: "budgets.investments.index")
|
||||
allow(component).to receive(:url_for).and_return("/")
|
||||
allow(component).to receive(:valid_filters).and_return(["unfeasible", "winners"])
|
||||
allow(component).to receive(:current_filter).and_return(nil)
|
||||
|
||||
render_inline component
|
||||
with_request_url("/") { render_inline component }
|
||||
|
||||
expect(page).to have_select "Filtering projects by"
|
||||
expect(page).to have_selector "form[method='get'].filter-selector select"
|
||||
|
||||
Reference in New Issue
Block a user