65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
require 'spec_helper'
 | 
						|
 | 
						|
describe ExpandVariables do
 | 
						|
  describe '#expand' do
 | 
						|
    subject { described_class.expand(value, variables) }
 | 
						|
 | 
						|
    tests = [
 | 
						|
      { value: 'key',
 | 
						|
        result: 'key',
 | 
						|
        variables: [] },
 | 
						|
      { value: 'key$variable',
 | 
						|
        result: 'key',
 | 
						|
        variables: [] },
 | 
						|
      { value: 'key$variable',
 | 
						|
        result: 'keyvalue',
 | 
						|
        variables: [
 | 
						|
          { key: 'variable', value: 'value' }
 | 
						|
        ] },
 | 
						|
      { value: 'key${variable}',
 | 
						|
        result: 'keyvalue',
 | 
						|
        variables: [
 | 
						|
          { key: 'variable', value: 'value' }
 | 
						|
        ] },
 | 
						|
      { value: 'key$variable$variable2',
 | 
						|
        result: 'keyvalueresult',
 | 
						|
        variables: [
 | 
						|
          { key: 'variable', value: 'value' },
 | 
						|
          { key: 'variable2', value: 'result' }
 | 
						|
        ] },
 | 
						|
      { value: 'key${variable}${variable2}',
 | 
						|
        result: 'keyvalueresult',
 | 
						|
        variables: [
 | 
						|
          { key: 'variable', value: 'value' },
 | 
						|
          { key: 'variable2', value: 'result' }
 | 
						|
        ] },
 | 
						|
      { value: 'key$variable2$variable',
 | 
						|
        result: 'keyresultvalue',
 | 
						|
        variables: [
 | 
						|
          { key: 'variable', value: 'value' },
 | 
						|
          { key: 'variable2', value: 'result' }
 | 
						|
        ] },
 | 
						|
      { value: 'key${variable2}${variable}',
 | 
						|
        result: 'keyresultvalue',
 | 
						|
        variables: [
 | 
						|
          { key: 'variable', value: 'value' },
 | 
						|
          { key: 'variable2', value: 'result' }
 | 
						|
        ] },
 | 
						|
      { value: 'review/$CI_COMMIT_REF_NAME',
 | 
						|
        result: 'review/feature/add-review-apps',
 | 
						|
        variables: [
 | 
						|
          { key: 'CI_COMMIT_REF_NAME', value: 'feature/add-review-apps' }
 | 
						|
        ] }
 | 
						|
    ]
 | 
						|
 | 
						|
    tests.each do |test|
 | 
						|
      context "#{test[:value]} resolves to #{test[:result]}" do
 | 
						|
        let(:value) { test[:value] }
 | 
						|
        let(:variables) { test[:variables] }
 | 
						|
 | 
						|
        it { is_expected.to eq(test[:result]) }
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |