Sha256: f746c2fa90562dd003bfa10228caa885943f8c5304367dfdf74b126b6c59f3d6

Contents?: true

Size: 1.77 KB

Versions: 39

Compression:

Stored size: 1.77 KB

Contents

# frozen_string_literal: true

require 'test_plugin_helper'

# Tests for the behavior of Hostgroup with roles, checks inheritance, etc
class HostgroupExtensionsTest < ActiveSupport::TestCase
  before do
    @role1 = FactoryBot.create(:ansible_role)
    @role2 = FactoryBot.create(:ansible_role)
    @role3 = FactoryBot.create(:ansible_role)

    @hostgroup_parent = FactoryBot.create(:hostgroup,
                                          :ansible_roles => [@role2])
    @hostgroup = FactoryBot.create(:hostgroup, :ansible_roles => [@role1])
    @host = FactoryBot.create(:host,
                              :ansible_roles => [@role3],
                              :hostgroup => @hostgroup)
  end

  describe '#all_ansible_roles' do
    test 'returns assigned roles without any parent hostgroup' do
      @hostgroup.all_ansible_roles.must_equal [@role1, @role3]
    end

    test 'returns assigned and inherited roles with from parent hostgroup' do
      @hostgroup.parent = @hostgroup_parent
      @hostgroup.all_ansible_roles.must_equal [@role1, @role2, @role3]
    end
  end

  describe '#inherited_ansible_roles' do
    test 'returns empty array for hostgroup without any parent' do
      @hostgroup.inherited_ansible_roles.must_equal []
    end

    test 'returns roles inherited from a chain of parents' do
      @hostgroup.parent = @hostgroup_parent
      @hostgroup.inherited_ansible_roles.must_equal [@role2]
    end
  end

  describe '#inherited_and_own_ansible_roles' do
    test 'returns only hostgroup roles' do
      @hostgroup_parent.inherited_and_own_ansible_roles.must_equal [@role2]
    end

    test 'returns only hostgroup roles including inheritance' do
      @hostgroup.parent = @hostgroup_parent
      @hostgroup.inherited_and_own_ansible_roles.must_equal [@role2, @role1]
    end
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
foreman_ansible-6.2.0 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-6.1.1 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-6.0.2 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-6.1.0 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-6.0.1 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-5.1.3 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-6.0.0 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-5.1.2 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-5.1.1 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-5.1.0 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-4.0.3.5 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-4.0.3.4 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-4.0.3.3 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-4.0.3.2 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-5.0.1 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-4.0.5 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-4.0.3.1 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-4.0.4 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-5.0.0 test/unit/concerns/hostgroup_extensions_test.rb
foreman_ansible-4.0.3 test/unit/concerns/hostgroup_extensions_test.rb