Merge pull request #9831 from filipefurtad0/fix_flaky_spec_bom_9811

Brings back rspec_retry; Creates helper method for flaky spec #9811
This commit is contained in:
Maikel
2022-10-27 09:52:43 +11:00
committed by GitHub
5 changed files with 24 additions and 13 deletions

View File

@@ -153,6 +153,7 @@ group :test, :development do
gem 'knapsack'
gem 'letter_opener', '>= 1.4.1'
gem 'rspec-rails', ">= 3.5.2"
gem 'rspec-retry'
gem 'rswag-specs'
gem 'shoulda-matchers'
gem 'timecop'

View File

@@ -592,6 +592,8 @@ GEM
rspec-expectations (~> 3.10)
rspec-mocks (~> 3.10)
rspec-support (~> 3.10)
rspec-retry (0.6.2)
rspec-core (> 3.3)
rspec-support (3.10.3)
rswag-api (2.7.0)
railties (>= 3.1, < 7.1)
@@ -859,6 +861,7 @@ DEPENDENCIES
roadie-rails
roo
rspec-rails (>= 3.5.2)
rspec-retry
rswag-api
rswag-specs
rswag-ui

View File

@@ -11,6 +11,7 @@ require 'view_component/test_helpers'
require_relative "../config/environment"
require 'rspec/rails'
require 'rspec/retry'
require 'capybara'
require 'paper_trail/frameworks/rspec'
require "factory_bot_rails"
@@ -58,6 +59,9 @@ RSpec.configure do |config|
# rspec-rails.
config.infer_base_class_for_anonymous_controllers = false
# Show retries in test output
config.verbose_retry = true
# Force colored output, whether or not the output is a TTY
config.color_mode = :on

View File

@@ -127,6 +127,11 @@ module WebHelper
page.find(:css, 'body').click
end
def click_on_select2(value, options)
find("#s2id_#{options[:from]}").click
find(:css, ".select2-result-label", text: options[:select_text] || value).click
end
def tomselect_search_and_select(value, options)
tomselect_wrapper = page.find("[name='#{options[:from]}']").sibling(".ts-wrapper")
tomselect_wrapper.find(".ts-control").click

View File

@@ -473,33 +473,31 @@ describe '
visit_bulk_order_management
end
xit "allows filters to be used in combination" do
pending "#9811"
it "allows filters to be used in combination", retry: 2 do
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_selector "tr#li_#{li2.id}"
select2_select oc1.name, from: "order_cycle_filter"
click_on_select2 oc1.name, from: "order_cycle_filter"
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_no_selector "tr#li_#{li2.id}"
select2_select d1.name, from: "distributor_filter"
select2_select s1.name, from: "supplier_filter"
click_on_select2 d1.name, from: "distributor_filter"
click_on_select2 s1.name, from: "supplier_filter"
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_no_selector "tr#li_#{li2.id}"
select2_select d2.name, from: "distributor_filter"
select2_select s2.name, from: "supplier_filter"
click_on_select2 d2.name, from: "distributor_filter"
click_on_select2 s2.name, from: "supplier_filter"
expect(page).to have_no_selector "tr#li_#{li1.id}"
expect(page).to have_no_selector "tr#li_#{li2.id}"
select2_select oc2.name, from: "order_cycle_filter"
click_on_select2 oc2.name, from: "order_cycle_filter"
expect(page).to have_no_selector "tr#li_#{li1.id}"
expect(page).to have_selector "tr#li_#{li2.id}"
end
xit "displays a 'Clear All' button which sets all select filters to 'All'" do
pending "#9810"
it "displays a 'Clear All' button which sets all select filters to 'All'", retry: 2 do
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_selector "tr#li_#{li2.id}"
select2_select oc1.name, from: "order_cycle_filter"
select2_select d1.name, from: "distributor_filter"
select2_select s1.name, from: "supplier_filter"
click_on_select2 oc1.name, from: "order_cycle_filter"
click_on_select2 d1.name, from: "distributor_filter"
click_on_select2 s1.name, from: "supplier_filter"
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_no_selector "tr#li_#{li2.id}"
expect(page).to have_button "Clear All"