47 lines
1.7 KiB
Ruby
47 lines
1.7 KiB
Ruby
|
require 'spec_helper'
|
||
|
|
||
|
describe Gitlab::CrossProjectAccess::ClassMethods do
|
||
|
let(:dummy_class) do
|
||
|
Class.new do
|
||
|
extend Gitlab::CrossProjectAccess::ClassMethods
|
||
|
end
|
||
|
end
|
||
|
let(:dummy_proc) { lambda { false } }
|
||
|
|
||
|
describe '#requires_cross_project_access' do
|
||
|
it 'creates a correct check when a hash is passed' do
|
||
|
expect(Gitlab::CrossProjectAccess)
|
||
|
.to receive(:add_check).with(dummy_class,
|
||
|
actions: { hello: true, world: false },
|
||
|
positive_condition: dummy_proc,
|
||
|
negative_condition: dummy_proc)
|
||
|
|
||
|
dummy_class.requires_cross_project_access(
|
||
|
hello: true, world: false, if: dummy_proc, unless: dummy_proc
|
||
|
)
|
||
|
end
|
||
|
|
||
|
it 'creates a correct check when an array is passed' do
|
||
|
expect(Gitlab::CrossProjectAccess)
|
||
|
.to receive(:add_check).with(dummy_class,
|
||
|
actions: { hello: true, world: true },
|
||
|
positive_condition: nil,
|
||
|
negative_condition: nil)
|
||
|
|
||
|
dummy_class.requires_cross_project_access(:hello, :world)
|
||
|
end
|
||
|
|
||
|
it 'creates a correct check when an array and a hash is passed' do
|
||
|
expect(Gitlab::CrossProjectAccess)
|
||
|
.to receive(:add_check).with(dummy_class,
|
||
|
actions: { hello: true, world: true },
|
||
|
positive_condition: dummy_proc,
|
||
|
negative_condition: dummy_proc)
|
||
|
|
||
|
dummy_class.requires_cross_project_access(
|
||
|
:hello, :world, if: dummy_proc, unless: dummy_proc
|
||
|
)
|
||
|
end
|
||
|
end
|
||
|
end
|