Sha256: f8bc2d7cfb89b8a55393f0f7eae77af9f8cda9a4f39e2d3c93502b028ddbc6f1

Contents?: true

Size: 1.07 KB

Versions: 6

Compression:

Stored size: 1.07 KB

Contents

# frozen_string_literal: true

RSpec.describe Rails::Auth::ACL do
  let(:example_config) { fixture_path("example_acl.yml").read }

  let(:example_acl) do
    described_class.from_yaml(
      example_config,
      matchers: {
        allow_x509_subject: Rails::Auth::X509::Matcher,
        allow_claims:       ClaimsMatcher
      }
    )
  end

  describe "#initialize" do
    it "raises TypeError if given a non-Array ACL type" do
      expect { described_class.new(:bogus) }.to raise_error(TypeError)
    end
  end

  describe "#match" do
    it "matches routes against the ACL" do
      expect(example_acl.match(env_for(:get, "/"))).to eq "allow_all"
      expect(example_acl.match(env_for(:get, "/foo/bar/baz"))).to eq "allow_claims"
      expect(example_acl.match(env_for(:get, "/_admin"))).to eq nil
    end
  end

  describe "#matching_resources" do
    it "finds Rails::Auth::ACL::Resource objects that match the request" do
      resources = example_acl.matching_resources(env_for(:get, "/foo/bar/baz"))
      expect(resources.first.path).to eq %r{\A/foo/bar/.*\z}
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rails-auth-3.2.0 spec/rails/auth/acl_spec.rb
rails-auth-3.1.0 spec/rails/auth/acl_spec.rb
rails-auth-3.0.0 spec/rails/auth/acl_spec.rb
rails-auth-2.2.2 spec/rails/auth/acl_spec.rb
rails-auth-2.2.1 spec/rails/auth/acl_spec.rb
rails-auth-2.2.0 spec/rails/auth/acl_spec.rb