Sha256: 619c81083d37381cefd867c1a5ac2852890cc9eded6b9e601b4d0f19b35457bf

Contents?: true

Size: 1.33 KB

Versions: 35

Compression:

Stored size: 1.33 KB

Contents

require 'spec_helper'
require 'chef/dsl/audit'

class AuditDSLTester < Chef::Recipe
  include Chef::DSL::Audit
end

class BadAuditDSLTester
  include Chef::DSL::Audit
end

describe Chef::DSL::Audit do
  let(:auditor) { AuditDSLTester.new("cookbook_name", "recipe_name", run_context) }
  let(:run_context) { instance_double(Chef::RunContext, :audits => audits, :cookbook_collection => cookbook_collection) }
  let(:audits) { {} }
  let(:cookbook_collection) { {} }

  it "raises an error when a block of audits is not provided" do
    expect{ auditor.control_group "name" }.to raise_error(Chef::Exceptions::NoAuditsProvided)
  end

  it "raises an error when no audit name is given" do
    expect{ auditor.control_group do end }.to raise_error(Chef::Exceptions::AuditNameMissing)
  end

  context "audits already populated" do
    let(:audits) { {"unique" => {} } }

    it "raises an error if the audit name is a duplicate" do
      expect { auditor.control_group "unique" do end }.to raise_error(Chef::Exceptions::AuditControlGroupDuplicate)
    end
  end

  context "included in a class without recipe DSL" do
    let(:auditor) { BadAuditDSLTester.new }

    it "fails because it relies on the recipe DSL existing" do
      expect { auditor.control_group "unique" do end }.to raise_error(NoMethodError, /undefined method `cookbook_name'/)
    end
  end

end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
chef-12.6.0 spec/unit/dsl/audit_spec.rb
chef-12.6.0-universal-mingw32 spec/unit/dsl/audit_spec.rb
chef-12.5.1-universal-mingw32 spec/unit/dsl/audit_spec.rb
chef-12.5.1 spec/unit/dsl/audit_spec.rb
chef-12.4.3-universal-mingw32 spec/unit/dsl/audit_spec.rb
chef-12.4.3 spec/unit/dsl/audit_spec.rb
chef-12.4.2-universal-mingw32 spec/unit/dsl/audit_spec.rb
chef-12.4.2 spec/unit/dsl/audit_spec.rb
chef-12.5.0.alpha.1 spec/unit/dsl/audit_spec.rb
chef-12.4.1-universal-mingw32 spec/unit/dsl/audit_spec.rb
chef-12.4.1 spec/unit/dsl/audit_spec.rb
chef-12.4.0 spec/unit/dsl/audit_spec.rb
chef-12.4.0-universal-mingw32 spec/unit/dsl/audit_spec.rb
chef-12.4.0.rc.2 spec/unit/dsl/audit_spec.rb
chef-12.4.0.rc.2-universal-mingw32 spec/unit/dsl/audit_spec.rb
chef-12.4.0.rc.0 spec/unit/dsl/audit_spec.rb
chef-12.4.0.rc.0-universal-mingw32 spec/unit/dsl/audit_spec.rb
chef-12.3.0-x86-mingw32 spec/unit/dsl/audit_spec.rb
chef-12.3.0 spec/unit/dsl/audit_spec.rb
chef-12.3.0.rc.0-x86-mingw32 spec/unit/dsl/audit_spec.rb