spec/unit/berkshelf/init_generator_spec.rb in berkshelf-5.5.0 vs spec/unit/berkshelf/init_generator_spec.rb in berkshelf-5.6.0

- old
+ new

@@ -1,263 +1,263 @@ -require 'spec_helper' +require "spec_helper" describe Berkshelf::InitGenerator do let(:target) { tmp_path.join("some_cookbook") } - let(:resolver) { double('resolver') } - let(:kitchen_generator) { double('kitchen-generator', invoke_all: nil) } + let(:resolver) { double("resolver") } + let(:kitchen_generator) { double("kitchen-generator", invoke_all: nil) } before do allow(Kitchen::Generator::Init).to receive(:new).with(any_args()).and_return(kitchen_generator) FileUtils.mkdir_p(target) - File.open(File.join(target, 'metadata.rb'), 'w') do |f| + File.open(File.join(target, "metadata.rb"), "w") do |f| f.write("name 'some_cookbook'") end end - context 'with default options' do + context "with default options" do before do - capture(:stdout) { + capture(:stdout) do Berkshelf::InitGenerator.new([target]).invoke_all - } + end end specify do expect(target).to have_structure { - file '.gitignore' - file 'Berksfile' - file 'Gemfile' - file 'Vagrantfile' do - contains %(recipe[some_cookbook::default]) - contains %(config.omnibus.chef_version = 'latest') - contains %(config.vm.box = 'bento/ubuntu-14.04') + file ".gitignore" + file "Berksfile" + file "Gemfile" + file "Vagrantfile" do + contains %{recipe[some_cookbook::default]} + contains %{config.omnibus.chef_version = 'latest'} + contains %{config.vm.box = 'bento/ubuntu-14.04'} end - file 'chefignore' + file "chefignore" } end end - context 'with a chefignore' do + context "with a chefignore" do before(:each) do - capture(:stdout) { + capture(:stdout) do Berkshelf::InitGenerator.new([target], chefignore: true).invoke_all - } + end end specify do expect(target).to have_structure { - file 'Berksfile' - file 'chefignore' + file "Berksfile" + file "chefignore" } end end - context 'with no metadata' do + context "with no metadata" do before do - FileUtils.rm(File.join(target, 'metadata.rb')) - expect { + FileUtils.rm(File.join(target, "metadata.rb")) + expect do Berkshelf::InitGenerator.new([target]).invoke_all - }.to raise_error(Berkshelf::NotACookbook) + end.to raise_error(Berkshelf::NotACookbook) end end - context 'with a metadata entry in the Berksfile' do + context "with a metadata entry in the Berksfile" do before(:each) do - capture(:stdout) { + capture(:stdout) do Berkshelf::InitGenerator.new([target], metadata_entry: true).invoke_all - } + end end specify do expect(target).to have_structure { - file 'Berksfile' do - contains 'metadata' + file "Berksfile" do + contains "metadata" end } end end - context 'with the foodcritic option true' do + context "with the foodcritic option true" do before(:each) do - capture(:stdout) { + capture(:stdout) do Berkshelf::InitGenerator.new([target], foodcritic: true).invoke_all - } + end end specify do expect(target).to have_structure { - file 'Thorfile' do + file "Thorfile" do contains "require 'thor/foodcritic'" end - file 'Gemfile' do + file "Gemfile" do contains "gem 'thor-foodcritic'" end } end end - context 'with the scmversion option true' do + context "with the scmversion option true" do before(:each) do - capture(:stdout) { + capture(:stdout) do Berkshelf::InitGenerator.new([target], scmversion: true).invoke_all - } + end end specify do expect(target).to have_structure { - file 'Thorfile' do + file "Thorfile" do contains "require 'thor/scmversion'" end - file 'Gemfile' do + file "Gemfile" do contains "gem 'thor-scmversion'" end } end end - context 'with the bundler option true' do + context "with the bundler option true" do before(:each) do - capture(:stdout) { + capture(:stdout) do Berkshelf::InitGenerator.new([target], no_bundler: true).invoke_all - } + end end specify do expect(target).to have_structure { - no_file 'Gemfile' + no_file "Gemfile" } end end - context 'given a value for the cookbook_name option' do - it 'sets the value of cookbook_name attribute to the specified option' do - generator = Berkshelf::InitGenerator.new([target], cookbook_name: 'nautilus') + context "given a value for the cookbook_name option" do + it "sets the value of cookbook_name attribute to the specified option" do + generator = Berkshelf::InitGenerator.new([target], cookbook_name: "nautilus") cookbook = generator.send(:cookbook_name) - expect(cookbook).to eq('nautilus') + expect(cookbook).to eq("nautilus") end end - context 'when no value for cookbook_name option is specified' do - it 'infers the name of the cookbook from the directory name' do + context "when no value for cookbook_name option is specified" do + it "infers the name of the cookbook from the directory name" do generator = Berkshelf::InitGenerator.new([target]) cookbook = generator.send(:cookbook_name) - expect(cookbook).to eq('some_cookbook') + expect(cookbook).to eq("some_cookbook") end end - context 'when skipping git' do + context "when skipping git" do before(:each) do generator = Berkshelf::InitGenerator.new([target], skip_git: true) capture(:stdout) { generator.invoke_all } end - it 'does not have a .git directory' do + it "does not have a .git directory" do expect(target).to_not have_structure { - directory '.git' + directory ".git" } end end - context 'when skipping vagrant' do + context "when skipping vagrant" do before(:each) do - capture(:stdout) { + capture(:stdout) do Berkshelf::InitGenerator.new([target], skip_vagrant: true).invoke_all - } + end end - it 'does not have a Vagrantfile' do + it "does not have a Vagrantfile" do expect(target).to have_structure { - no_file 'Vagrantfile' + no_file "Vagrantfile" } end end context "given the 'vagrant.omnibus.version' option set" do before do Berkshelf::Config.instance.vagrant.omnibus.version = "11.4.4" - capture(:stdout) { + capture(:stdout) do Berkshelf::InitGenerator.new([target]).invoke_all - } + end end it "generates a Vagrantfile with the 'config.omnibus.chef_version' value set" do expect(target).to have_structure { - file 'Vagrantfile' do + file "Vagrantfile" do contains "config.omnibus.chef_version = '11.4.4'" end } end end context "given the 'vagrant.omnibus.version' option set to 'latest'" do before do Berkshelf::Config.instance.vagrant.omnibus.version = "latest" - capture(:stdout) { + capture(:stdout) do Berkshelf::InitGenerator.new([target]).invoke_all - } + end end it "generates a Vagrantfile with the 'config.omnibus.chef_version' value set to :latest" do expect(target).to have_structure { - file 'Vagrantfile' do + file "Vagrantfile" do contains " config.omnibus.chef_version = 'latest'" end } end end context "given the 'vagrant.vm.box_url' option set" do before do Berkshelf::Config.instance.vagrant.vm.box_url = "https://vagrantcloud.com/chef/ubuntu-14.04/version/1/provider/virtualbox.box" - capture(:stdout) { + capture(:stdout) do Berkshelf::InitGenerator.new([target]).invoke_all - } + end end it "generates a Vagrantfile with the 'config.vm.box_url' value set" do expect(target).to have_structure { - file 'Vagrantfile' do + file "Vagrantfile" do contains "config.vm.box_url = 'https://vagrantcloud.com/chef/ubuntu-14.04/version/1/provider/virtualbox.box'" end } end end - context 'with the chef_minitest option true' do + context "with the chef_minitest option true" do before(:each) do - allow(Berkshelf::Resolver).to receive(:resolve) { resolver } - skip 'Runs fine with no mock for the HTTP call on the first pass, subsequent passes throw errors' - capture(:stdout) { - Berkshelf::InitGenerator.new([target], chef_minitest: true).invoke_all - } + allow(Berkshelf::Resolver).to receive(:resolve) { resolver } + skip "Runs fine with no mock for the HTTP call on the first pass, subsequent passes throw errors" + capture(:stdout) do + Berkshelf::InitGenerator.new([target], chef_minitest: true).invoke_all + end end specify do expect(target).to have_structure { - file 'Berksfile' do + file "Berksfile" do contains "cookbook 'minitest-handler'" end - file 'Vagrantfile' do + file "Vagrantfile" do contains "'recipe[minitest-handler::default]'" end - directory 'files' do - directory 'default' do - directory 'tests' do - directory 'minitest' do - file 'default_test.rb' do - contains "describe 'some_cookbook::default' do" - contains 'include Helpers::Some_cookbook' - end - directory 'support' do - file 'helpers.rb' do - contains 'module Some_cookbook' - end - end - end - end - end - end + directory "files" do + directory "default" do + directory "tests" do + directory "minitest" do + file "default_test.rb" do + contains "describe 'some_cookbook::default' do" + contains "include Helpers::Some_cookbook" + end + directory "support" do + file "helpers.rb" do + contains "module Some_cookbook" + end + end + end + end + end + end } end end end