mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
62 lines
2.1 KiB
Ruby
62 lines
2.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "capybara/cuprite"
|
|
|
|
headless = ActiveModel::Type::Boolean.new.cast(ENV.fetch("HEADLESS", true))
|
|
|
|
browser_options = {
|
|
"ignore-certificate-errors" => nil,
|
|
}
|
|
browser_options["no-sandbox"] = nil if ENV['CI'] || ENV['DOCKER']
|
|
|
|
Capybara.register_driver(:cuprite_ofn) do |app|
|
|
Capybara::Cuprite::Driver.new(
|
|
app,
|
|
window_size: [1280, 800],
|
|
browser_options:,
|
|
process_timeout: 60,
|
|
timeout: 60,
|
|
# Don't load scripts from external sources, like google maps or stripe
|
|
url_whitelist: [
|
|
%r{^http://localhost}, %r{^http://0.0.0.0}, %r{http://127.0.0.1},
|
|
|
|
# Testing the DFC Permissions component by Startin'Blox:
|
|
%r{^https://cdn.jsdelivr.net/npm/@startinblox/},
|
|
%r{^https://cdn.startinblox.com/},
|
|
%r{^https://data-server.cqcm.startinblox.com/scopes$},
|
|
%r{^https://api.proxy-dev.cqcm.startinblox.com/profile$},
|
|
|
|
# Just for testing external connections: spec/system/billy_spec.rb
|
|
%r{^https?://deb.debian.org},
|
|
],
|
|
inspector: true,
|
|
headless:,
|
|
js_errors: true,
|
|
# Puffing Billy seems to make our rspec processes hang at the end.
|
|
# Deactivating for now.
|
|
#
|
|
# proxy: { host: Billy.proxy.host, port: Billy.proxy.port },
|
|
)
|
|
end
|
|
|
|
# Configure Capybara to use :cuprite_ofn driver by default
|
|
Capybara.default_driver = Capybara.javascript_driver = :cuprite_ofn
|
|
|
|
RSpec.configure do |config|
|
|
config.include CupriteHelpers, type: :system
|
|
config.include Devise::Test::IntegrationHelpers, type: :system
|
|
|
|
config.prepend_before(:each, type: :system) { driven_by :cuprite_ofn }
|
|
|
|
# Make sure url helpers in mailers use the Capybara server host.
|
|
config.around(:each, type: :system) do |example|
|
|
original_host = Rails.application.default_url_options[:host]
|
|
Rails.application.default_url_options[:host] =
|
|
"#{Capybara.current_session.server.host}:#{Capybara.current_session.server.port}"
|
|
DfcProvider::Engine.routes.default_url_options = Rails.application.default_url_options
|
|
example.run
|
|
Rails.application.default_url_options[:host] = original_host
|
|
remove_downloaded_files
|
|
end
|
|
end
|