Sha256: 2d71cac3427e17f0e0403b5ab09a6f221cfc5c2a9ad3257be1a2023df0934e60

Contents?: true

Size: 1.39 KB

Versions: 33

Compression:

Stored size: 1.39 KB

Contents

require 'spec_helper'

describe Ridley::NodeResource do
  let(:instance) do
    inst = described_class.new(double)
    inst.stub(connection: chef_zero_connection)
    inst
  end

  describe "#merge_data" do
    let(:node_name) { "rspec-test" }
    let(:run_list) { [ "recipe[one]", "recipe[two]" ] }
    let(:attributes) { { deep: { two: "val" } } }

    subject(:result) { instance.merge_data(node_name, run_list: run_list, attributes: attributes) }

    context "when a node of the given name exists" do
      before do
        chef_node(node_name,
          run_list: [ "recipe[one]", "recipe[three]" ],
          normal: { deep: { one: "val" } }
        )
      end

      it "returns a Ridley::NodeObject" do
        expect(result).to be_a(Ridley::NodeObject)
      end

      it "has a union between the run list of the original node and the new run list" do
        expect(result.run_list).to eql(["recipe[one]","recipe[three]","recipe[two]"])
      end

      it "has a deep merge between the attributes of the original node and the new attributes" do
        expect(result.normal.to_hash).to eql("deep" => { "one" => "val", "two" => "val" })
      end
    end

    context "when a node with the given name does not exist" do
      let(:node_name) { "does_not_exist" }

      it "raises a ResourceNotFound error" do
        expect { result }.to raise_error(Ridley::Errors::ResourceNotFound)
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
ridley-5.1.1 spec/unit/ridley/resources/node_resource_spec.rb
ridley-5.1.0 spec/unit/ridley/resources/node_resource_spec.rb
ridley-5.0.0 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.6.1 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.6.0 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.5.1 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.5.0 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.4.3 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.4.2 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.4.1 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.4.0 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.3.2 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.3.1 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.3.0 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.2.0 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.1.2 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.1.1 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.1.0 spec/unit/ridley/resources/node_resource_spec.rb
ridley-4.0.0 spec/unit/ridley/resources/node_resource_spec.rb
ridley-3.1.0 spec/unit/ridley/resources/node_resource_spec.rb