Sha256: 45faaf80820337fbfbb69f1b61c8d85cc599d7449f2c0b236d0e74f5c99e1b14

Contents?: true

Size: 1.45 KB

Versions: 2

Compression:

Stored size: 1.45 KB

Contents

# frozen_string_literal: true

require 'test_plugin_helper'
require 'rake'

module ForemanVault
  class PushAuthMethodsTest < ActiveSupport::TestCase
    TASK_NAME = 'foreman_vault:auth_methods:push'

    let(:host) { FactoryBot.create(:host, :managed) }
    let(:vault_connection) { FactoryBot.create(:vault_connection, :without_callbacks) }

    setup do
      Rake.application.rake_require 'tasks/foreman_vault_tasks'

      Rake::Task.define_task(:environment)
      Rake::Task[TASK_NAME].reenable

      FactoryBot.create(:parameter, name: 'vault_connection', value: vault_connection.name)

      ForemanVault::VaultAuthMethod.any_instance.stubs(:vault_policy_name).returns('vault_policy_name')
      ForemanVault::VaultAuthMethod.any_instance.stubs(:certificate).returns('cert')

      ForemanVault::VaultClient.any_instance.stubs(:set_certificate).returns(true)
    end

    it 'does successfully push auth methods' do
      host

      stdout, _stderr = capture_io do
        Rake::Task[TASK_NAME].invoke
      end

      assert_match("[1/1] Auth-Method of \"#{host.name}\" pushed to Vault server \"#{host.vault_connection.url}\"", stdout)
    end

    it 'does throw an error when host was deleted' do
      host

      Host::Managed.any_instance.stubs(:reload).raises(ActiveRecord::RecordNotFound)

      stdout, _stderr = capture_io do
        Rake::Task[TASK_NAME].invoke
      end

      assert_match("[1/1] Failed to push \"#{host.name}\"", stdout)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
foreman_vault-1.2.0 test/lib/tasks/push_auth_methods_test.rb
foreman_vault-1.1.0 test/lib/tasks/push_auth_methods_test.rb