44 lines
		
	
	
		
			996 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			996 B
		
	
	
	
		
			Ruby
		
	
	
	
| shared_examples_for "position formatter" do
 | |
|   let(:formatter) { described_class.new(attrs) }
 | |
| 
 | |
|   describe '#key' do
 | |
|     let(:key) { [123, 456, 789, Digest::SHA1.hexdigest(formatter.old_path), Digest::SHA1.hexdigest(formatter.new_path), 1, 2] }
 | |
| 
 | |
|     subject { formatter.key }
 | |
| 
 | |
|     it { is_expected.to eq(key) }
 | |
|   end
 | |
| 
 | |
|   describe '#complete?' do
 | |
|     subject { formatter.complete? }
 | |
| 
 | |
|     context 'when there are missing key attributes' do
 | |
|       it { is_expected.to be_truthy }
 | |
|     end
 | |
| 
 | |
|     context 'when old_line and new_line are nil' do
 | |
|       let(:attrs) { base_attrs }
 | |
| 
 | |
|       it { is_expected.to be_falsy }
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe '#to_h' do
 | |
|     let(:formatter_hash) do
 | |
|       attrs.merge(position_type: base_attrs[:position_type] || 'text' )
 | |
|     end
 | |
| 
 | |
|     subject { formatter.to_h }
 | |
| 
 | |
|     it { is_expected.to eq(formatter_hash) }
 | |
|   end
 | |
| 
 | |
|   describe '#==' do
 | |
|     subject { formatter }
 | |
| 
 | |
|     let(:other_formatter) { described_class.new(attrs) }
 | |
| 
 | |
|     it { is_expected.to eq(other_formatter) }
 | |
|   end
 | |
| end
 |