Since we changed the way we integrate coveralls in commit 8ed8cc8b9,
we're getting 6 additional checks displayed in our pull requests.
We don't need these checks, and they only add noise. The only reason we
use coveralls is to know the test coverage in our master branch.
So we're changing the code so coveralls only runs on the master branch.
There's also a chance that the test suite will be faster because it
doesn't need to keep track of the coverage, although I haven't noticed any
significant differences during my tests.
I haven't found a more elegant way to say that a certain step should
only be run on push on master, so I'm setting the environment variable
we were already using.
86 lines
2.1 KiB
Ruby
86 lines
2.1 KiB
Ruby
ENV["RAILS_ENV"] ||= "test"
|
|
if ENV["TEST_COVERAGE"] && !ENV["TEST_COVERAGE"].empty?
|
|
require "simplecov"
|
|
require "simplecov-lcov"
|
|
SimpleCov::Formatter::LcovFormatter.config.report_with_single_file = true
|
|
SimpleCov::Formatter::LcovFormatter.config do |config|
|
|
config.output_directory = "coverage"
|
|
config.lcov_file_name = "lcov.info"
|
|
end
|
|
SimpleCov.formatter = SimpleCov::Formatter::LcovFormatter
|
|
SimpleCov.start("rails")
|
|
end
|
|
require File.expand_path("../../config/environment", __FILE__)
|
|
abort("The Rails environment is running in production mode!") if Rails.env.production?
|
|
|
|
require "rspec/rails"
|
|
require "spec_helper"
|
|
require "custom_spec_helper"
|
|
require "capybara/rails"
|
|
require "capybara/rspec"
|
|
require "selenium/webdriver"
|
|
require "view_component/test_helpers"
|
|
|
|
module ViewComponent
|
|
module TestHelpers
|
|
def sign_in(user)
|
|
allow(controller).to receive(:current_user).and_return(user)
|
|
end
|
|
|
|
def within(...)
|
|
raise "`within` doesn't work in component tests. Use `page.find` instead."
|
|
end
|
|
end
|
|
end
|
|
|
|
RSpec.configure do |config|
|
|
config.include ViewComponent::TestHelpers, type: :component
|
|
end
|
|
|
|
Rails.application.load_tasks if Rake::Task.tasks.empty?
|
|
|
|
include Warden::Test::Helpers
|
|
Warden.test_mode!
|
|
|
|
ActiveRecord::Migration.maintain_test_schema!
|
|
|
|
RSpec.configure do |config|
|
|
config.infer_spec_type_from_file_location!
|
|
config.after do
|
|
Warden.test_reset!
|
|
end
|
|
end
|
|
|
|
FactoryBot.use_parent_strategy = false
|
|
|
|
Capybara.register_driver :headless_chrome do |app|
|
|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
|
|
"goog:chromeOptions" => {
|
|
args: %W[headless no-sandbox window-size=1200,800 proxy-server=#{Capybara.app_host}:#{Capybara::Webmock.port_number}]
|
|
}
|
|
)
|
|
|
|
Capybara::Selenium::Driver.new(
|
|
app,
|
|
browser: :chrome,
|
|
desired_capabilities: capabilities
|
|
)
|
|
end
|
|
|
|
Capybara.exact = true
|
|
Capybara.enable_aria_label = true
|
|
Capybara.disable_animation = true
|
|
|
|
OmniAuth.config.test_mode = true
|
|
|
|
def with_subdomain(subdomain, &block)
|
|
app_host = Capybara.app_host
|
|
|
|
begin
|
|
Capybara.app_host = "http://#{subdomain}.lvh.me"
|
|
block.call
|
|
ensure
|
|
Capybara.app_host = app_host
|
|
end
|
|
end
|