Sha256: 089ac5bd551634285bb00e505d40474380d5d23731150ac48a7fdf008edf3224

Contents?: true

Size: 1.7 KB

Versions: 22

Compression:

Stored size: 1.7 KB

Contents

require File.join(File.dirname(__FILE__), 'test_helper')

describe 'role' do
  describe 'clone' do
    before do
      @cmd = %w(role clone)
    end

    it 'should print error on missing --id' do
      params = ['--new-name=zzz']

      expected_result = CommandExpectation.new
      expected_result.expected_err =
        ['Could not clone the user role:',
         "  Missing arguments for '--id'.",
         ''].join("\n")
      expected_result.expected_exit_code = HammerCLI::EX_USAGE

      api_expects_no_call

      result = run_cmd(@cmd + params)
      assert_cmd(expected_result, result)
    end

    it 'should print error on missing --new-name' do
      params = ['--id=1']

      expected_result = usage_error_result(
        @cmd,
        'Option --new-name is required.',
        'Could not clone the user role')

      api_expects_no_call

      result = run_cmd(@cmd + params)

      assert_cmd(expected_result, result)
    end

    it 'should clone a role by id' do
      params = ['--id=1', '--new-name=zzz']

      api_expects(:roles, :clone, 'Clone role').with_params(
        { 'id' => '1', 'role' => { 'name' => 'zzz' } }
      )

      result = run_cmd(@cmd + params)
      assert_cmd(success_result("User role cloned.\n"), result)
    end

    it 'should clone a role by name' do
      params = ['--name=old', '--new-name=zzz']

      api_expects_search(:roles, { name: 'old' }, 'Attempt find role').returns(
        index_response([{ 'name' => 'old', 'id' => 1 }])
      )

      api_expects(:roles, :clone, 'Clone role').with_params(
        { 'id' => 1, 'role' => { 'name' => 'zzz' } }
      )

      result = run_cmd(@cmd + params)
      assert_cmd(success_result("User role cloned.\n"), result)
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
hammer_cli_foreman-3.14.0 test/functional/role_test.rb
hammer_cli_foreman-3.13.0 test/functional/role_test.rb
hammer_cli_foreman-3.12.0 test/functional/role_test.rb
hammer_cli_foreman-3.10.0 test/functional/role_test.rb
hammer_cli_foreman-3.9.0 test/functional/role_test.rb
hammer_cli_foreman-3.8.0 test/functional/role_test.rb
hammer_cli_foreman-3.7.0 test/functional/role_test.rb
hammer_cli_foreman-3.5.1 test/functional/role_test.rb
hammer_cli_foreman-3.6.0 test/functional/role_test.rb
hammer_cli_foreman-3.5.0 test/functional/role_test.rb
hammer_cli_foreman-3.4.0 test/functional/role_test.rb
hammer_cli_foreman-3.3.0 test/functional/role_test.rb
hammer_cli_foreman-3.2.0 test/functional/role_test.rb
hammer_cli_foreman-2.5.2 test/functional/role_test.rb
hammer_cli_foreman-3.1.0 test/functional/role_test.rb
hammer_cli_foreman-3.0.0 test/functional/role_test.rb
hammer_cli_foreman-2.5.1 test/functional/role_test.rb
hammer_cli_foreman-2.5.0 test/functional/role_test.rb
hammer_cli_foreman-2.3.2 test/functional/role_test.rb
hammer_cli_foreman-2.4.0 test/functional/role_test.rb