Как я могу проверить "супер" на ресурсе Chef? - PullRequest
0 голосов
/ 09 апреля 2020

Существует ли подход, подобный step_into, чтобы поощрять Chefspe c следовать вызову ресурса super в его родительский класс? Или вы можете предложить подход для проверки того, что вызов super выполняется (или не выполняется), как ожидается, для выполнения соответствующего действия в родительском классе?

, например,

class Child < Chef::Provider::Parent
  provides :child_resource
  def action_create
    # do childlike things
    super
  end
end

class Parent < Chef::Provider::LWRPBase
  provides :parent_resource
  def action_create
    # do parental things
    file "/home/mine/#{new_resource.name}.json" do
      action :create
      content 'I am malformed json content'
    end
  end
end

с рецептом

child_resource 'ima_potato' do
  property 'vegechair'
end

и проверено с

require 'chefspec'

describe('procreate-concreate') do

  let(:child_runner) do
    memoized_runner('procreate-concreate', {step_into: ['child_resource', 'parent_resource']}, 'child_runner') do |node|
      # node things
    end
  end

  it 'creates the parent resource' do
    expect(child_runner).to create_parent_resource('ima_potato')
  end

  it 'creates the parent file' do
    expect(child_runner).to create_file('/home/mine/ima_potato.json')
  end
end

Вышеприведенный шаблон работает. Мое тестирование упустило пропущенное логическое значение для условного выражения.

1 Ответ

0 голосов
/ 28 апреля 2020

Вышеприведенный шаблон работает. Мое тестирование упустило пропущенное логическое значение для условного выражения.

...