49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
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
 |