50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
require 'spec_helper'
 | 
						|
 | 
						|
RSpec.describe Gitlab::QuickActions::SubstitutionDefinition do
 | 
						|
  let(:content) do
 | 
						|
    <<EOF
 | 
						|
Hello! Let's do this!
 | 
						|
/sub_name I like this stuff
 | 
						|
/sub_name second substitution
 | 
						|
EOF
 | 
						|
  end
 | 
						|
 | 
						|
  subject do
 | 
						|
    described_class.new(:sub_name, action_block: proc { |text| "#{text} foo" })
 | 
						|
  end
 | 
						|
 | 
						|
  describe '#perform_substitution!' do
 | 
						|
    it 'returns nil if content is nil' do
 | 
						|
      expect(subject.perform_substitution(self, nil)).to be_nil
 | 
						|
    end
 | 
						|
 | 
						|
    context 'when content contains command name' do
 | 
						|
      it 'performs the substitution by default' do
 | 
						|
        expect(subject.perform_substitution(self, content)).to eq <<EOF
 | 
						|
Hello! Let's do this!
 | 
						|
I like this stuff foo
 | 
						|
/sub_name second substitution
 | 
						|
EOF
 | 
						|
      end
 | 
						|
    end
 | 
						|
 | 
						|
    context 'when content contains command name in word' do
 | 
						|
      let(:content) do
 | 
						|
        <<EOF
 | 
						|
Hello! Let's do this!
 | 
						|
`/sub_names` I like this stuff
 | 
						|
EOF
 | 
						|
      end
 | 
						|
 | 
						|
      it 'does not perform the substitution' do
 | 
						|
        expect(subject.perform_substitution(self, content)).to eq <<EOF
 | 
						|
Hello! Let's do this!
 | 
						|
`/sub_names` I like this stuff
 | 
						|
EOF
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |