Ctrl K
ComunidadGuías…

test/puma_config_test.rb

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
require "test_helper"
require "puma/configuration"

class PumaConfigTest < ActiveSupport::TestCase
  test "no local environment runs Solid Queue inside Puma" do
    %w[ development test ].each do |env|
      plugins = puma_plugins_for(env)

      assert_includes plugins, :tmp_restart, "#{env}: this probe found no plugins at all"
      assert_not_includes plugins, :solid_queue, "#{env}: Puma would fork a supervisor with no queue database to serve it"
    end
  end

  private
    KNOWN_PLUGINS = %i[ tmp_restart solid_queue ]

    def puma_plugins_for(env)
      with_rails_env(env) do
        config = Puma::Configuration.new({}, config_files: [ Rails.root.join("config/puma.rb").to_s ])
        config.load

        instances = config.plugins.instance_variable_get(:@instances)
        KNOWN_PLUGINS.select { |name| instances.any? { |plugin| plugin.is_a?(Puma::Plugins.find(name)) } }
      end
    end

    def with_rails_env(env)
      original = Rails.env
      Rails.env = env
      yield
    ensure
      Rails.env = original
    end
end