summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason King <jk@handle.it>2016-12-08 12:17:42 -0700
committerJason King <jk@handle.it>2016-12-08 12:43:37 -0700
commitf33a11c4e713ec89ebec135e1fab1d293663463a (patch)
tree88c68b2761f18a4828700084ca32a0672774004d
parent67d278530f5af699d47221a2dc702be959a419c6 (diff)
downloadbundler-f33a11c4e713ec89ebec135e1fab1d293663463a.tar.gz
Specs for update post-install messages
-rw-r--r--spec/update/gems/post_install_spec.rb77
1 files changed, 77 insertions, 0 deletions
diff --git a/spec/update/gems/post_install_spec.rb b/spec/update/gems/post_install_spec.rb
new file mode 100644
index 0000000000..89cf6a9017
--- /dev/null
+++ b/spec/update/gems/post_install_spec.rb
@@ -0,0 +1,77 @@
+# frozen_string_literal: true
+require "spec_helper"
+
+describe "bundle update" do
+ let(:config) {}
+
+ before do
+ gemfile <<-G
+ source "file://#{gem_repo1}"
+ gem 'rack', "< 1.0"
+ gem 'thin'
+ G
+
+ bundle "config #{config}" if config
+
+ bundle :install
+ end
+
+ shared_examples "a config observer" do
+ context "when ignore post-install messages for gem is set" do
+ let(:config) { "ignore_messages.rack true" }
+
+ it "doesn't display gem's post-install message" do
+ expect(out).not_to include("Rack's post install message")
+ end
+ end
+
+ context "when ignore post-install messages for all gems" do
+ let(:config) { "ignore_messages true" }
+
+ it "doesn't display any post-install messages" do
+ expect(out).not_to include("Post-install message")
+ end
+ end
+ end
+
+ shared_examples "a post-install message outputter" do
+ it "should display post-install messages for updated gems" do
+ expect(out).to include("Post-install message from rack:")
+ expect(out).to include("Rack's post install message")
+ end
+
+ it "should not display the post-install message for non-updated gems" do
+ expect(out).not_to include("Thin's post install message")
+ end
+ end
+
+ context "when listed gem is updated" do
+ before do
+ gemfile <<-G
+ source "file://#{gem_repo1}"
+ gem 'rack'
+ gem 'thin'
+ G
+
+ bundle :update
+ end
+
+ it_behaves_like "a post-install message outputter"
+ it_behaves_like "a config observer"
+ end
+
+ context "when dependency triggers update" do
+ before do
+ gemfile <<-G
+ source "file://#{gem_repo1}"
+ gem 'rack-obama'
+ gem 'thin'
+ G
+
+ bundle :update
+ end
+
+ it_behaves_like "a post-install message outputter"
+ it_behaves_like "a config observer"
+ end
+end