spec/server/concerns/exported_limits_spec.rb in lanes-0.5.6 vs spec/server/concerns/exported_limits_spec.rb in lanes-0.6.0
- old
+ new
@@ -1,16 +1,23 @@
require_relative "../spec_helper"
class ExportedLimitsTest < Lanes::TestCase
+ module FakeScope
+ extend ActiveSupport::Concern
+ class_methods do
+ def scope(*args) # act like ActiveRecord model
+ end
+ end
+ end
- class LimitsTestingModel
-
+ class Base
+ include FakeScope
include Lanes::Concerns::ExportScope
include Lanes::Concerns::ExportMethods
+ end
- def self.scope(name, query)# act like ActiveRecord model
- end
+ class LimitsTestingModel < Base
def secret_method( name, query )
end
def test_method( name, query )
@@ -18,13 +25,13 @@
export_methods :test_method, limit: lambda{ | user, type, name |
user == 'anon'
}
- export_scope :admin_data, lambda{ | param |
+ scope :admin_data, lambda { | param |
param
- }, limit: :only_admins
+ }, export: {limit: :only_admins}
export_methods :secret_method, limit: :only_admins
def self.only_admins( user, type, name )
@@ -32,14 +39,12 @@
end
end
def test_limits
- assert LimitsTestingModel.has_exported_method?( 'test_method', 'anon' ), "anyone can retrieve no_limit data"
-
+ 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