Sha256: 57f4f1628ff7cb13b7c08dad414cf8fbadc7875132fa3aa5ca83b796a2c87566

Contents?: true

Size: 1.36 KB

Versions: 1

Compression:

Stored size: 1.36 KB

Contents

require_relative '../test_helper'


class ExportedLimitsTest < Skr::TestCase

    class LimitsTestingModel

        include Skr::Concerns::ExportScope
        include Skr::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

1 entries across 1 versions & 1 rubygems

Version Path
stockor-core-0.2 test/concerns/exported_limits_test.rb