From 57fcdc402d73ffd2cad776fa2ba61fa2c7afe466 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Fri, 17 Sep 2021 02:32:08 +0200 Subject: [PATCH] Use page.find instead of within in component tests In component tests, the `within` method is actually an alias to RSpec's `be_within` matcher, which is used to test numeric ranges. That meant the tests always passed, even when there were bugs on the page. In order to use `within` in component tests, we have to use `page.within`. However, that also fails, since there's no such method for `Capybara::Node::Simple'` objects, which are used in component tests. So we're using `page.find` instead. See also pull request 945 in https://github.com/github/view_component --- .../headings/group_switcher_component_spec.rb | 6 +++--- spec/components/budgets/budget_component_spec.rb | 8 ++++---- spec/components/budgets/subheader_component_spec.rb | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) 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 0392290f7..a0e0ee1cb 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 @@ -33,9 +33,9 @@ describe Admin::BudgetsWizard::Headings::GroupSwitcherComponent do expect(page).to have_content "Showing headings from the Parks group" expect(page).to have_button "Manage headings from a different group" - within "button + ul" do - expect(page).to have_link "Recreation" - expect(page).to have_link "Entertainment" + page.find("button + ul") do |list| + expect(list).to have_link "Recreation" + expect(list).to have_link "Entertainment" end end end diff --git a/spec/components/budgets/budget_component_spec.rb b/spec/components/budgets/budget_component_spec.rb index ad01643ae..98c0ef338 100644 --- a/spec/components/budgets/budget_component_spec.rb +++ b/spec/components/budgets/budget_component_spec.rb @@ -13,10 +13,10 @@ describe Budgets::BudgetComponent do render_inline Budgets::BudgetComponent.new(budget) - within(".budget-header") do - expect(page).to have_content("PARTICIPATORY BUDGETS") - expect(page).to have_content(budget.name) - expect(page).to have_link("Help with participatory budgets") + page.find(".budget-header") do |header| + expect(header).to have_content "Participatory budgets" + expect(header).to have_content budget.name + expect(header).to have_link "Help with participatory budgets" end end diff --git a/spec/components/budgets/subheader_component_spec.rb b/spec/components/budgets/subheader_component_spec.rb index 5ff750e71..cfccf8b83 100644 --- a/spec/components/budgets/subheader_component_spec.rb +++ b/spec/components/budgets/subheader_component_spec.rb @@ -7,9 +7,9 @@ describe Budgets::SubheaderComponent do render_inline Budgets::SubheaderComponent.new(budget) - within(".budget-subheader") do - expect(page).to have_content "CURRENT PHASE" - expect(page).to have_content "Information" + page.find(".budget-subheader") do |subheader| + expect(subheader).to have_content "Current phase" + expect(subheader).to have_content "Information" end end