Sha256: ed34411bbad898bf5729e329b21020d2d91b98c1ea4f43d7ab42da7cb87c0974

Contents?: true

Size: 1.37 KB

Versions: 11

Compression:

Stored size: 1.37 KB

Contents

require_relative "../spec_helper"

class ExportedLimitsTest < Lanes::TestCase

    class LimitsTestingModel

        include Lanes::Concerns::ExportScope
        include Lanes::Concerns::ExportMethods

        def self.scope(name, query)# act like ActiveRecord model
        end

        def secret_method( name, query )
        end

        def test_method( name, query )
        end

        export_methods :test_method, limit: lambda{ | user, type, name |
            user == 'anon'
        }

        export_scope :admin_data, lambda{ | param |
            param
        }, limit: :only_admins

        export_methods :secret_method, limit: :only_admins


        def self.only_admins( user, type, name )
            return user == 'admin'
        end

    end

    def test_limits
        assert LimitsTestingModel.has_exported_method?( 'test_method', 'anon' ), "anyone can retrieve no_limit data"

        assert LimitsTestingModel.has_exported_scope?( 'admin_data', 'admin' ), "Admins can retrieve admin data"
        refute LimitsTestingModel.has_exported_scope?( 'admin_data', 'non-admin' ), "Non-Admin cannot retrieve admin data"

        assert LimitsTestingModel.has_exported_method?( 'secret_method', 'admin' ), "Public can retrieve public data"
        refute LimitsTestingModel.has_exported_method?( 'secret_method', 'unk' ), "User must be admin to retrieve public data"
    end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
lanes-0.5.6 spec/server/concerns/exported_limits_spec.rb
lanes-0.5.5 spec/server/concerns/exported_limits_spec.rb
lanes-0.5.0 spec/server/concerns/exported_limits_spec.rb
lanes-0.4.0 spec/server/concerns/exported_limits_spec.rb
lanes-0.3.0 spec/server/concerns/exported_limits_spec.rb
lanes-0.1.9.5 spec/server/concerns/exported_limits_spec.rb
lanes-0.1.9 spec/server/concerns/exported_limits_spec.rb
lanes-0.1.8 spec/server/concerns/exported_limits_spec.rb
lanes-0.1.7 spec/server/concerns/exported_limits_spec.rb
lanes-0.1.6 spec/server/concerns/exported_limits_spec.rb
lanes-0.1.5 spec/server/concerns/exported_limits_spec.rb