rails/actiontext/test/test_helper.rb
Petrik 8392c54e73 Expose assert_queries and assert_no_queries assertions
To assert the expected number of queries are made, Rails internally uses
`assert_queries` and `assert_no_queries`. These assertions can be
useful in applications as well.

By extracting these assertions to a module, the assertions can be
included where required.
These assertions are added to `ActiveSupport::TestCase` when
ActiveRecord is defined.

ActiveStorage, ActionView and ActionText are using this module now as
well, instead of duplicating the implementation.
The internal ActiveRecord::TestCase, used for testing ActiveRecord,
implements these assertions as well. However, these are slighlty more
advanced/complex and use the SQLCounter class. To keep things simple,
for now this implementation isn't used.
2023-12-11 12:31:16 +01:00

47 lines
1.6 KiB
Ruby

# frozen_string_literal: true
require "active_support/testing/strict_warnings"
# Configure Rails Environment
ENV["RAILS_ENV"] = "test"
require_relative "../test/dummy/config/environment"
require "active_record/testing/query_assertions"
ActiveRecord::Migrator.migrations_paths = [File.expand_path("../test/dummy/db/migrate", __dir__)]
require "rails/test_help"
require "rails/test_unit/reporter"
Rails::TestUnitReporter.executable = "bin/test"
# Disable available locale checks to allow to add locale after initialized.
I18n.enforce_available_locales = false
# Load fixtures from the engine
if ActiveSupport::TestCase.respond_to?(:fixture_paths=)
ActiveSupport::TestCase.fixture_paths = [File.expand_path("fixtures", __dir__)]
ActionDispatch::IntegrationTest.fixture_paths = ActiveSupport::TestCase.fixture_paths
ActiveSupport::TestCase.file_fixture_path = File.expand_path("fixtures", __dir__) + "/files"
ActiveSupport::TestCase.fixtures :all
end
class ActiveSupport::TestCase
module QueryHelpers
include ActiveJob::TestHelper
include ActiveRecord::Assertions::QueryAssertions
end
private
def create_file_blob(filename:, content_type:, metadata: nil)
ActiveStorage::Blob.create_and_upload! io: file_fixture(filename).open, filename: filename, content_type: content_type, metadata: metadata
end
end
# Encryption
ActiveRecord::Encryption.configure \
primary_key: "test master key",
deterministic_key: "test deterministic key",
key_derivation_salt: "testing key derivation salt",
support_unencrypted_data: true
require_relative "../../tools/test_common"