2023-02-21 19:55:31 -05:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-02-24 18:17:01 -05:00
|
|
|
RSpec.configure do |config|
|
2023-02-18 17:38:14 -05:00
|
|
|
config.example_status_persistence_file_path = 'tmp/rspec/examples.txt'
|
2016-02-24 18:17:01 -05:00
|
|
|
config.expect_with :rspec do |expectations|
|
|
|
|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
|
|
|
end
|
|
|
|
|
2024-09-04 01:12:25 -04:00
|
|
|
config.disable_monkey_patching!
|
|
|
|
|
2016-02-24 18:17:01 -05:00
|
|
|
config.mock_with :rspec do |mocks|
|
|
|
|
mocks.verify_partial_doubles = true
|
|
|
|
end
|
2016-09-05 11:46:36 -04:00
|
|
|
|
2018-02-09 17:04:47 -05:00
|
|
|
config.before :suite do
|
2019-07-18 19:44:42 -04:00
|
|
|
Rails.application.load_seed
|
2018-02-09 17:04:47 -05:00
|
|
|
Chewy.strategy(:bypass)
|
2024-02-22 08:28:19 -05:00
|
|
|
|
|
|
|
# NOTE: we switched registrations mode to closed by default, but the specs
|
|
|
|
# very heavily rely on having it enabled by default, as it relies on users
|
|
|
|
# being approved by default except in select cases where explicitly testing
|
|
|
|
# other registration modes
|
|
|
|
Setting.registrations_mode = 'open'
|
2018-02-09 17:04:47 -05:00
|
|
|
end
|
|
|
|
|
2017-01-29 06:25:10 -05:00
|
|
|
config.after :suite do
|
2024-08-26 03:35:07 -04:00
|
|
|
FileUtils.rm_rf(Rails.root.glob('spec/test_files'))
|
2016-09-05 11:46:36 -04:00
|
|
|
end
|
2023-10-17 12:28:09 -04:00
|
|
|
|
|
|
|
# Use the GitHub Annotations formatter for CI
|
2023-10-18 04:18:34 -04:00
|
|
|
if ENV['GITHUB_ACTIONS'] == 'true' && ENV['GITHUB_RSPEC'] == 'true'
|
2023-10-17 12:28:09 -04:00
|
|
|
require 'rspec/github'
|
|
|
|
config.add_formatter RSpec::Github::Formatter
|
|
|
|
end
|
2016-09-05 11:46:36 -04:00
|
|
|
end
|
|
|
|
|
2023-11-07 10:20:24 -05:00
|
|
|
def serialized_record_json(record, serializer, adapter: nil)
|
|
|
|
options = { serializer: serializer }
|
|
|
|
options[:adapter] = adapter if adapter.present?
|
|
|
|
JSON.parse(
|
|
|
|
ActiveModelSerializers::SerializableResource.new(
|
|
|
|
record,
|
|
|
|
options
|
|
|
|
).to_json
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
2022-02-10 13:42:45 -05:00
|
|
|
def expect_push_bulk_to_match(klass, matcher)
|
2023-11-07 04:46:28 -05:00
|
|
|
allow(Sidekiq::Client).to receive(:push_bulk)
|
|
|
|
yield
|
|
|
|
expect(Sidekiq::Client).to have_received(:push_bulk).with(hash_including({
|
2023-02-18 17:38:14 -05:00
|
|
|
'class' => klass,
|
|
|
|
'args' => matcher,
|
2022-02-10 13:42:45 -05:00
|
|
|
}))
|
|
|
|
end
|