42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
require 'spec_helper'
 | 
						|
 | 
						|
RSpec.describe Gitlab::View::Presenter::Factory do
 | 
						|
  let(:build) { Ci::Build.new }
 | 
						|
 | 
						|
  describe '#initialize' do
 | 
						|
    context 'without optional parameters' do
 | 
						|
      it 'takes a subject and optional params' do
 | 
						|
        presenter = described_class.new(build)
 | 
						|
 | 
						|
        expect { presenter }.not_to raise_error
 | 
						|
      end
 | 
						|
    end
 | 
						|
 | 
						|
    context 'with optional parameters' do
 | 
						|
      it 'takes a subject and optional params' do
 | 
						|
        presenter = described_class.new(build, user: 'user')
 | 
						|
 | 
						|
        expect { presenter }.not_to raise_error
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  describe '#fabricate!' do
 | 
						|
    it 'detects the presenter based on the given subject' do
 | 
						|
      presenter = described_class.new(build).fabricate!
 | 
						|
 | 
						|
      expect(presenter).to be_a(Ci::BuildPresenter)
 | 
						|
    end
 | 
						|
 | 
						|
    it 'uses the presenter_class if given on #initialize' do
 | 
						|
      my_custom_presenter = Class.new(described_class)
 | 
						|
 | 
						|
      presenter = described_class.new(build, presenter_class: my_custom_presenter).fabricate!
 | 
						|
 | 
						|
      expect(presenter).to be_a(my_custom_presenter)
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |