spec/unit/cookbook_profiler/git_spec.rb in chef-dk-0.9.0 vs spec/unit/cookbook_profiler/git_spec.rb in chef-dk-0.10.0
- old
+ new
@@ -1,176 +1,176 @@
-#
-# Copyright:: Copyright (c) 2014 Chef Software Inc.
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-require 'spec_helper'
-require 'shared/setup_git_cookbooks'
-require 'fileutils'
-require 'chef-dk/helpers'
-require 'chef-dk/cookbook_profiler/git'
-
-describe ChefDK::CookbookProfiler::Git do
-
- include ChefDK::Helpers
-
- let(:git_profiler) do
- ChefDK::CookbookProfiler::Git.new(cookbook_path)
- end
-
- context "with cookbooks in a valid git repo" do
-
- include_context "setup git cookbooks"
-
- def edit_repo
- with_file(File.join(cookbook_path, "README.md"), "ab+") { |f| f.puts "some unpublished changes" }
- end
-
- context "given a clean repo with no remotes" do
-
- it "reports that the repo has no remotes" do
- expect(git_profiler.remote).to be_nil
- end
-
- it "determines the rev of the repo" do
- expect(git_profiler.revision).to eq(current_rev)
- end
-
- it "reports that the repo is clean" do
- expect(git_profiler.clean?).to be true
- end
-
- it "reports that the commits are unpublished" do
- expect(git_profiler.unpublished_commits?).to be true
- end
-
- it "reports that no remotes have the commits" do
- expect(git_profiler.synchronized_remotes).to eq([])
- end
-
- end
-
- context "when the remote is a local branch" do
-
- before do
- allow(git_profiler).to receive(:remote_name).and_return(".")
- end
-
- it "reports that the repo doesn't have a remote" do
- expect(git_profiler.have_remote?).to be(false)
- end
-
- end
-
- context "with a remote configured" do
-
- include_context "setup git cookbook remote"
-
- context "given a clean repo with all commits published to the remote" do
-
- it "determines the remote for the repo" do
- expect(git_profiler.remote).to eq(remote_url)
- end
-
- it "determines the rev of the repo" do
- expect(git_profiler.revision).to eq(current_rev)
- end
-
- it "reports that the repo is clean" do
- expect(git_profiler.clean?).to be true
- end
-
- it "reports that all commits are published to the upstream" do
- expect(git_profiler.unpublished_commits?).to be false
- end
-
- it "lists the remotes that commits are published to" do
- expect(git_profiler.synchronized_remotes).to eq(%w[origin/master])
- end
-
- end
-
- context "given a clean repo with unpublished changes" do
-
- before do
- edit_repo
- system_command('git config --local user.name "Alice"', cwd: cookbook_path).error!
- system_command('git config --local user.email "alice@example.com"', cwd: cookbook_path).error!
- system_command('git commit -a -m "update readme" --author "Alice <alice@example.com>"', cwd: cookbook_path).error!
- end
-
- it "reports that the repo is clean" do
- expect(git_profiler.clean?).to be true
- end
-
- it "reports that there are unpublished changes" do
- expect(git_profiler.unpublished_commits?).to be true
- end
-
- it "reports that no remotes have the commits" do
- expect(git_profiler.synchronized_remotes).to eq([])
- end
-
- end
- end
-
- context "given a dirty repo" do
-
- before do
- edit_repo
- end
-
- it "reports that the repo is dirty" do
- expect(git_profiler.clean?).to be false
- end
-
- end
-
- end
-
- context "given a repo on an unborn master branch" do
-
- let(:cookbook_path) { File.join(tempdir, "unborn") }
-
- let(:profile_data) { git_profiler.profile_data }
-
- before do
- reset_tempdir
- FileUtils.mkdir_p(cookbook_path)
- system_command("git init .", cwd: cookbook_path).error!
- end
-
- it "does not error when profiling the cookbook" do
- expect { git_profiler.profile_data }.to_not raise_error
- end
-
- it "has a nil revision" do
- expect(profile_data["revision"]).to be_nil
- end
-
- it "has no remote" do
- expect(profile_data["remote"]).to be_nil
- end
-
- it "has no synchronized remote branches" do
- expect(profile_data["synchronized_remote_branches"]).to eq([])
- end
-
- it "is not published" do
- expect(profile_data["published"]).to be(false)
- end
- end
-
-end
-
+#
+# Copyright:: Copyright (c) 2014 Chef Software Inc.
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require 'spec_helper'
+require 'shared/setup_git_cookbooks'
+require 'fileutils'
+require 'chef-dk/helpers'
+require 'chef-dk/cookbook_profiler/git'
+
+describe ChefDK::CookbookProfiler::Git do
+
+ include ChefDK::Helpers
+
+ let(:git_profiler) do
+ ChefDK::CookbookProfiler::Git.new(cookbook_path)
+ end
+
+ context "with cookbooks in a valid git repo" do
+
+ include_context "setup git cookbooks"
+
+ def edit_repo
+ with_file(File.join(cookbook_path, "README.md"), "ab+") { |f| f.puts "some unpublished changes" }
+ end
+
+ context "given a clean repo with no remotes" do
+
+ it "reports that the repo has no remotes" do
+ expect(git_profiler.remote).to be_nil
+ end
+
+ it "determines the rev of the repo" do
+ expect(git_profiler.revision).to eq(current_rev)
+ end
+
+ it "reports that the repo is clean" do
+ expect(git_profiler.clean?).to be true
+ end
+
+ it "reports that the commits are unpublished" do
+ expect(git_profiler.unpublished_commits?).to be true
+ end
+
+ it "reports that no remotes have the commits" do
+ expect(git_profiler.synchronized_remotes).to eq([])
+ end
+
+ end
+
+ context "when the remote is a local branch" do
+
+ before do
+ allow(git_profiler).to receive(:remote_name).and_return(".")
+ end
+
+ it "reports that the repo doesn't have a remote" do
+ expect(git_profiler.have_remote?).to be(false)
+ end
+
+ end
+
+ context "with a remote configured" do
+
+ include_context "setup git cookbook remote"
+
+ context "given a clean repo with all commits published to the remote" do
+
+ it "determines the remote for the repo" do
+ expect(git_profiler.remote).to eq(remote_url)
+ end
+
+ it "determines the rev of the repo" do
+ expect(git_profiler.revision).to eq(current_rev)
+ end
+
+ it "reports that the repo is clean" do
+ expect(git_profiler.clean?).to be true
+ end
+
+ it "reports that all commits are published to the upstream" do
+ expect(git_profiler.unpublished_commits?).to be false
+ end
+
+ it "lists the remotes that commits are published to" do
+ expect(git_profiler.synchronized_remotes).to eq(%w[origin/master])
+ end
+
+ end
+
+ context "given a clean repo with unpublished changes" do
+
+ before do
+ edit_repo
+ system_command('git config --local user.name "Alice"', cwd: cookbook_path).error!
+ system_command('git config --local user.email "alice@example.com"', cwd: cookbook_path).error!
+ system_command('git commit -a -m "update readme" --author "Alice <alice@example.com>"', cwd: cookbook_path).error!
+ end
+
+ it "reports that the repo is clean" do
+ expect(git_profiler.clean?).to be true
+ end
+
+ it "reports that there are unpublished changes" do
+ expect(git_profiler.unpublished_commits?).to be true
+ end
+
+ it "reports that no remotes have the commits" do
+ expect(git_profiler.synchronized_remotes).to eq([])
+ end
+
+ end
+ end
+
+ context "given a dirty repo" do
+
+ before do
+ edit_repo
+ end
+
+ it "reports that the repo is dirty" do
+ expect(git_profiler.clean?).to be false
+ end
+
+ end
+
+ end
+
+ context "given a repo on an unborn master branch" do
+
+ let(:cookbook_path) { File.join(tempdir, "unborn") }
+
+ let(:profile_data) { git_profiler.profile_data }
+
+ before do
+ reset_tempdir
+ FileUtils.mkdir_p(cookbook_path)
+ system_command("git init .", cwd: cookbook_path).error!
+ end
+
+ it "does not error when profiling the cookbook" do
+ expect { git_profiler.profile_data }.to_not raise_error
+ end
+
+ it "has a nil revision" do
+ expect(profile_data["revision"]).to be_nil
+ end
+
+ it "has no remote" do
+ expect(profile_data["remote"]).to be_nil
+ end
+
+ it "has no synchronized remote branches" do
+ expect(profile_data["synchronized_remote_branches"]).to eq([])
+ end
+
+ it "is not published" do
+ expect(profile_data["published"]).to be(false)
+ end
+ end
+
+end
+