Ошеломление шеф-хранилища в Chefspec бросает исключение - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь заглушить метод chef_vault_item из пакета chef-vault в RSpec, но сталкиваюсь с глупой HTTPServerException: 404 "Not Found Я следую этой статье , но это не такне могу объяснить ошибку, которую я получаю.Я новичок в мире Rspec test Chef cookbook, поэтому, пожалуйста, помогите мне найти проблему здесь:

recipes / default.rb

...
include_recipe 'chef-vault'
secrets = chef_vault_item("secrets", node.chef_environment)
...

spec/spec_helper.rb

require 'chefspec'
require 'chef-vault'
require 'chefspec/berkshelf'

spec / unit / recipes / default_spec.rb

  require 'spec_helper'

  describe 'CAMM7_NewRelic_Install::default' do

    context 'When all attributes are default, on Oracle 7.6' do
     before do
      allow(ChefVault).to receive(:chef_vault_item).and_return(secret_data)
      #allow(Chef::DataBag).to receive(:load).with(anything).and_return('_default_keys' => {})
      #allow(ChefVault::Item).to receive(:load).with(anything, anything).and_return(secret_data)
     end

    let(:secret_data) do
      {
        'id' => '_default',
        "d-oracle-7" => {
          "newRelic" => {
              "licenseKey" => "blah-blah-blah"
          }
        }
      } 
    end

    let(:chef_run) do
      runner = ChefSpec::ServerRunner.new(platform: 'oracle', version: '7.6') do |node|
      end
      runner.converge(described_recipe)
    end


    it 'converges successfully' do 
      expect { chef_run }.to_not raise_error 
    end
  end
end

Я получаю следующую ошибку:

Failures:

1) CAMM7_NewRelic_Install::default When all attributes are default, on Oracle 7.6 converges successfully
 Failure/Error: expect { chef_run }.to_not raise_error

   expected no Exception, got #<Net::HTTPServerException: 404 "Not Found "> with backtrace:
     # C:/Users/ns069952/AppData/Local/Temp/chefspec20190620-20352-wfom2afile_cache_path/cookbooks/chef-vault/libraries/helpers.rb:38:in `chef_vault_item'
     # C:/Users/ns069952/AppData/Local/Temp/chefspec20190620-20352-wfom2afile_cache_path/cookbooks/CAMM7_NewRelic_Install/recipes/default.rb:91:in `from_file'
     # ./spec/unit/recipes/default_spec.rb:41:in `block (3 levels) in <top (required)>'
     # ./spec/unit/recipes/default_spec.rb:47:in `block (4 levels) in <top (required)>'
     # ./spec/unit/recipes/default_spec.rb:47:in `block (3 levels) in <top (required)>'
 # ./spec/unit/recipes/default_spec.rb:47:in `block (3 levels) in <top (required)>'

Finished in 11.97 seconds (files took 6.51 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/unit/recipes/default_spec.rb:45 # CAMM7_NewRelic_Install::default When all attributes are default, on Oracle 7.6 converges successfully

Ошибка выдается из строки secrets = chef_vault_item("secrets", node.chef_environment) внутри recipes/default.rb

...