Sha256: 960ef32d1a2d985c756b76633d57cf5e848de960cedb9a8450013e33e83c7c9f

Contents?: true

Size: 1.28 KB

Versions: 4

Compression:

Stored size: 1.28 KB

Contents

require 'spec_helper'

module Berkshelf
  describe Uploader do
    subject { Uploader.new(Chef::Config[:chef_server_url], client_key: Chef::Config[:client_key], node_name: Chef::Config[:node_name]) }

    describe "#upload" do
      let(:cookbook) { double('nginx', name: "nginx-0.101.2", cookbook_name: "nginx", version: "0.101.2") }

      context "when cookbook is valid" do
        before(:each) do
          cookbook.should_receive(:validate!).and_return(true)
          cookbook.should_receive(:checksums).and_return(
            "da97c94bb6acb2b7900cbf951654fea3" => 
              File.expand_path("spec/fixtures/cookbooks/example_cookbook-0.5.0/recipes/default.rb")
          )
          subject.should_receive(:create_sandbox)
          subject.should_receive(:upload_checksums_to_sandbox)
          subject.should_receive(:commit_sandbox)
          subject.should_receive(:save_cookbook)
        end

        it "returns a successful TXResult" do
          subject.upload(cookbook).should be_success
        end
      end

      context "when cookbook is not valid" do
        before(:each) { cookbook.should_receive(:validate!).and_raise(CookbookSyntaxError) }

        it "returns a failed TXResult" do
          subject.upload(cookbook).should be_failed
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
berkshelf-0.4.0.rc4 spec/unit/berkshelf/uploader_spec.rb
berkshelf-0.4.0.rc3 spec/unit/berkshelf/uploader_spec.rb
berkshelf-0.4.0.rc2 spec/unit/berkshelf/uploader_spec.rb
berkshelf-0.4.0.rc1 spec/unit/berkshelf/uploader_spec.rb