Sha256: 6ac857032f0fea39d016da00c55f55e6468fc4a94d9bfc8ff4bc3a73b65be679

Contents?: true

Size: 1.78 KB

Versions: 4

Compression:

Stored size: 1.78 KB

Contents

require 'test_plugin_helper'

describe JobTemplate do
  context 'cloning' do
    let(:job_template) { FactoryGirl.build(:job_template, :with_input) }

    describe '#dup' do
      it 'duplicates also template inputs' do
        duplicate = job_template.dup
        duplicate.wont_equal job_template
        duplicate.template_inputs.wont_be_empty
        duplicate.template_inputs.first.wont_equal job_template.template_inputs.first
        duplicate.template_inputs.first.name.must_equal job_template.template_inputs.first.name
      end
    end
  end

  context 'importing a template' do
    let(:template) do
      template = <<-END_TEMPLATE
      <%#
      kind: job_template
      name: Service Restart
      job_name: Service Restart
      provider_type: Ssh
      template_inputs:
      - name: service_name
        input_type: user
        required: true
      %>

      service <%= input("service_name") %> restart
      END_TEMPLATE

      JobTemplate.import(template, :default => true)
    end

    it 'sets the name' do
      template.name.must_equal 'Service Restart'
    end

    it 'has a template' do
      template.template.squish.must_equal 'service <%= input("service_name") %> restart'
    end

    it 'imports inputs' do
      template.template_inputs.first.name.must_equal 'service_name'
    end

    it 'sets additional options' do
      template.default.must_equal true
    end
  end

  context 'there is existing template invocation of a job template' do
    let(:job_invocation) { FactoryGirl.create(:job_invocation, :with_template) }
    let(:job_template) { job_invocation.template_invocations.first.template }

    describe 'job template deletion' do
      it 'succeeds' do
        job_template.template_invocations.wont_be_empty
        assert job_template.destroy
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
foreman_remote_execution-0.0.10 test/unit/job_template_test.rb
foreman_remote_execution-0.0.8 test/unit/job_template_test.rb
foreman_remote_execution-0.0.7 test/unit/job_template_test.rb
foreman_remote_execution-0.0.6 test/unit/job_template_test.rb