Skip to content

Instantly share code, notes, and snippets.

@joemasilotti
Created December 22, 2021 02:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joemasilotti/6c10528058c87049ecde863c19463b9b to your computer and use it in GitHub Desktop.
Save joemasilotti/6c10528058c87049ecde863c19463b9b to your computer and use it in GitHub Desktop.
ActiveSupport::EnvironmentInquirer example
class SidekiqPolicy
attr_reader :user, :environment
def initialize(user, environment: Rails.env)
@user = user
@environment = environment
end
def visible?
user.admin? || environment.development?
end
end
require "test_helper"
class SidekiqPolicyTest < ActiveSupport::TestCase
test "only admins can see the route" do
assert SidekiqPolicy.new(users(:admin)).visible?
refute SidekiqPolicy.new(users(:empty)).visible?
end
test "everyone can see the route in development" do
environment = ActiveSupport::EnvironmentInquirer.new("development")
assert SidekiqPolicy.new(users(:admin), environment: environment).visible?
assert SidekiqPolicy.new(users(:empty), environment: environment).visible?
end
end
@joemasilotti
Copy link
Author

TIL about ActiveSupport::EnvironmentInquirer, which is great for injecting an environment-dependent conditional for tests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment