mirror of
https://github.com/basecamp/once-campfire.git
synced 2026-10-08 15:50:08 +09:00
9fd1563c9b
Require all three SQLite triggers before treating the counter as installed, drop the schema.rb / dump-rewrite install paths in favor of rake ensure after schema load, isolate destructive trigger tests, and cover foreign room moves plus fixture baseline counts. Co-authored-by: Thomas Klemm <github@tklemm.eu>
53 lines
1.5 KiB
Ruby
53 lines
1.5 KiB
Ruby
ENV["RAILS_ENV"] ||= "test"
|
|
require_relative "../config/environment"
|
|
|
|
require "rails/test_help"
|
|
require "mocha/minitest"
|
|
require "webmock/minitest"
|
|
require "turbo/broadcastable/test_helper"
|
|
|
|
# maintain_test_schema! may reload schema.rb after after_initialize; triggers are
|
|
# not dumped, so ensure they exist before fixtures insert messages.
|
|
Room::MessagesCount.ensure!
|
|
|
|
WebMock.enable!
|
|
|
|
module RoomMessagesCountFixtures
|
|
# Fixture YAML still inserts messages before rooms via some load paths, so
|
|
# INSERT triggers can update zero room rows. Reconcile once after load.
|
|
def load_fixtures(config)
|
|
fixtures = super
|
|
Room::MessagesCount.backfill!
|
|
fixtures
|
|
end
|
|
end
|
|
|
|
class ActiveSupport::TestCase
|
|
include ActiveJob::TestHelper
|
|
prepend RoomMessagesCountFixtures
|
|
|
|
parallelize(workers: :number_of_processors)
|
|
|
|
# Prefer rooms before messages when the loader honors declaration order.
|
|
fixtures :accounts, :users, :rooms, :memberships, :messages, "action_text/rich_texts",
|
|
:boosts, :searches, :sessions, :webhooks, "push/subscriptions"
|
|
|
|
include SessionTestHelper, MentionTestHelper, TurboTestHelper, DnsTestHelper
|
|
|
|
setup do
|
|
ActionCable.server.pubsub.clear
|
|
|
|
Rails.configuration.tap do |config|
|
|
config.x.web_push_pool.shutdown
|
|
config.x.web_push_pool = WebPush::Pool.new \
|
|
invalid_subscription_handler: config.x.web_push_pool.invalid_subscription_handler
|
|
end
|
|
|
|
WebMock.disable_net_connect!
|
|
end
|
|
|
|
teardown do
|
|
WebMock.reset!
|
|
end
|
|
end
|