mirror of
https://github.com/opf/openproject.git
synced 2026-06-13 19:20:00 +00:00
check that within is not an alias for be_within when used with block
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
<%= content_tag :div,
|
||||
data: {
|
||||
controller: "disable-when-checked",
|
||||
|
||||
@@ -287,10 +287,8 @@ RSpec.describe EnterpriseEdition::BannerComponent, type: :component do
|
||||
end
|
||||
end
|
||||
|
||||
context "with a trial token" do
|
||||
before do
|
||||
allow(EnterpriseToken).to receive(:trialling?).and_return(true)
|
||||
end
|
||||
context "with a trial token", :with_ee_trial, with_ee: [:some_enterprise_feature] do
|
||||
current_user { build(:admin) }
|
||||
|
||||
it_behaves_like "renders the component"
|
||||
|
||||
@@ -303,10 +301,8 @@ RSpec.describe EnterpriseEdition::BannerComponent, type: :component do
|
||||
expect(component[:class]).not_to include("op-enterprise-banner_medium")
|
||||
expect(component[:class]).not_to include("op-enterprise-banner_large")
|
||||
|
||||
within(component) do
|
||||
expect(page).to have_css(".op-enterprise-banner--close_icon")
|
||||
expect(page).to have_content("Buy now")
|
||||
end
|
||||
expect(component).to have_css(".op-enterprise-banner--dismiss")
|
||||
expect(component).to have_content("Buy now")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -35,45 +35,38 @@ RSpec.describe EnterpriseEdition::TrialTeaserComponent, type: :component do
|
||||
instance_double(
|
||||
EnterpriseToken,
|
||||
days_left: 7,
|
||||
plan: :mocked
|
||||
plan: :mocked,
|
||||
trial?: true
|
||||
)
|
||||
end
|
||||
|
||||
before do
|
||||
allow(EnterpriseToken).to receive(:active_trial_token).and_return(mock_token)
|
||||
allow(EnterpriseToken).to receive(:active_tokens).and_return([mock_token])
|
||||
end
|
||||
|
||||
context "for an admin user" do
|
||||
before do
|
||||
admin_user = instance_double(User, admin?: true)
|
||||
allow(User).to receive(:current).and_return(admin_user)
|
||||
end
|
||||
current_user { build(:admin) }
|
||||
|
||||
it "renders the trial teaser" do
|
||||
render_inline(described_class.new)
|
||||
|
||||
component = find_test_selector("op-enterprise-banner")
|
||||
|
||||
within(component) do
|
||||
expect(page).to have_no_css(".op-enterprise-banner--close_icon")
|
||||
expect(component).to have_no_css(".op-enterprise-banner--close_icon")
|
||||
|
||||
expect(page).to have_text("Buy now")
|
||||
expect(page).to have_text("7 days left of mocked trial token")
|
||||
expect(page).to have_text("You have access to all Mocked enterprise plan features.")
|
||||
expect(component).to have_text("Buy now")
|
||||
expect(component).to have_text("7 days left of mocked trial token")
|
||||
expect(component).to have_text("You have access to all Mocked enterprise plan features.")
|
||||
|
||||
expect(page).to have_no_text("Start free trial")
|
||||
expect(page).to have_no_text("Book now")
|
||||
expect(page).to have_no_text("Upgrade now")
|
||||
expect(page).to have_no_text("More information")
|
||||
end
|
||||
expect(component).to have_no_text("Start free trial")
|
||||
expect(component).to have_no_text("Book now")
|
||||
expect(component).to have_no_text("Upgrade now")
|
||||
expect(component).to have_no_text("More information")
|
||||
end
|
||||
end
|
||||
|
||||
context "for a non-admin user" do
|
||||
before do
|
||||
admin_user = instance_double(User, admin?: false)
|
||||
allow(User).to receive(:current).and_return(admin_user)
|
||||
end
|
||||
current_user { build(:user) }
|
||||
|
||||
it "nothing is rendered" do
|
||||
render_inline(described_class.new)
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
#-- copyright
|
||||
# OpenProject is an open source project management software.
|
||||
# Copyright (C) the OpenProject GmbH
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License version 3.
|
||||
#
|
||||
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
|
||||
# Copyright (C) 2006-2013 Jean-Philippe Lang
|
||||
# Copyright (C) 2010-2013 the ChiliProject Team
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# See COPYRIGHT and LICENSE files for more details.
|
||||
#++
|
||||
|
||||
module WithinCheck
|
||||
def within(*, **, &block)
|
||||
if block
|
||||
if respond_to?(:within_element)
|
||||
within_element(*, **, &block)
|
||||
else
|
||||
fail "In this test `within` is only an alias for `be_within` rspec matcher, not capybara html scope helper"
|
||||
end
|
||||
else
|
||||
be_within(*)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
RSpec.configure do |config|
|
||||
config.include WithinCheck
|
||||
end
|
||||
@@ -194,10 +194,8 @@ RSpec.describe "users/edit" do
|
||||
it "shows the password and password confirmation fields" do
|
||||
render
|
||||
|
||||
within "#password_fields" do
|
||||
expect(rendered).to have_text("Password")
|
||||
expect(rendered).to have_text("Confirmation")
|
||||
end
|
||||
expect(rendered).to have_css("label", text: "Password")
|
||||
expect(rendered).to have_css("label", text: "Confirmation")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -209,10 +207,8 @@ RSpec.describe "users/edit" do
|
||||
it "doesn't show the password and password confirmation fields" do
|
||||
render
|
||||
|
||||
within "#password_fields" do
|
||||
expect(rendered).to have_no_text("Password")
|
||||
expect(rendered).to have_no_text("Password confirmation")
|
||||
end
|
||||
expect(rendered).to have_no_css("label", text: "Password")
|
||||
expect(rendered).to have_no_css("label", text: "Confirmation")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user