spec/guard/foodcritic_spec.rb in guard-foodcritic-1.0.3 vs spec/guard/foodcritic_spec.rb in guard-foodcritic-1.1.0

- old
+ new

@@ -1,165 +1,171 @@ -require "spec_helper" -require "guard/foodcritic" +require 'spec_helper' +require 'guard/compat/test/helper' +require 'guard/foodcritic' module Guard describe Foodcritic do before do Notifier.stub(:notify) UI.stub(:info) end - it { should be_a_kind_of ::Guard::Guard } + it { should be_a_kind_of ::Guard::Plugin } - describe "#options" do - it "[:all_on_start] defaults to true" do - described_class.new.options[:all_on_start].should be_true + describe '#options' do + it '[:all_on_start] defaults to true' do + described_class.new.options[:all_on_start].should be true end it "[:cookbook_paths] defaults to ['cookbooks']" do - described_class.new.options[:cookbook_paths].should == ["cookbooks"] + described_class.new.options[:cookbook_paths].should == ['cookbooks'] end - it "[:notification] defaults to true" do - described_class.new.options[:notification].should be_true + it '[:notification] defaults to true' do + described_class.new.options[:notification].should be true end end - shared_examples "handles runner results" do - context "the runner fails" do + shared_examples 'handles runner results' do + context 'the runner fails' do before { runner.stub(:run).and_return(false) } it { expect { subject }.to throw_symbol :task_has_failed } - context "notifications are enabled" do + context 'notifications are enabled' do let(:notification) { true } - it "notifies the user of the failure" do - Notifier.should_receive(:notify).with("Foodcritic failed", :image => :failed) + it 'notifies the user of the failure' do + Notifier.should_receive(:notify).with('Foodcritic failed', :image => :failed) catch(:task_has_failed) { subject } end end - context "notifications are disabled" do + context 'notifications are disabled' do let(:notification) { false } - it "does not notify the user of the failure" do + it 'does not notify the user of the failure' do Notifier.should_not_receive(:notify) catch(:task_has_failed) { subject } end end end - context "the runner succeeds" do + context 'the runner succeeds' do before { runner.stub(:run).and_return(true) } it { expect { subject }.not_to throw_symbol :task_has_failed } - context "notifications are enabled" do + context 'notifications are enabled' do let(:notification) { true } - it "notifies the user of the success" do - Notifier.should_receive(:notify).with("Foodcritic passed", :image => :success) + it 'notifies the user of the success' do + Notifier.should_receive(:notify).with('Foodcritic passed', :image => :success) subject end end - context "notifications are disabled" do + context 'notifications are disabled' do let(:notification) { false } - it "does not notify the user of the success" do + it 'does not notify the user of the success' do Notifier.should_not_receive(:notify) subject end end end end - describe "#run_all" do + describe '#run_all' do subject { guard.run_all } - let(:guard) { described_class.new [], :cookbook_paths => %w(cookbooks site-cookbooks), :notification => notification } + let(:guard) do + described_class.new( + :cookbook_paths => %w(cookbooks site-cookbooks), + :notification => notification + ) + end let(:notification) { false } - let(:runner) { double "runner", :run => true } + let(:runner) { double 'runner', :run => true } before { guard.stub(:runner).and_return(runner) } - it "runs the runner with the cookbook paths" do + it 'runs the runner with the cookbook paths' do runner.should_receive(:run).with(guard.options[:cookbook_paths]).and_return(true) subject end - it "informs the user" do - UI.should_receive(:info).with("Linting all cookbooks") + it 'informs the user' do + UI.should_receive(:info).with('Linting all cookbooks', {}) subject end - include_examples "handles runner results" + include_examples 'handles runner results' end - shared_examples "lints specified cookbook files" do - let(:guard) { described_class.new([], :notification => notification) } + shared_examples 'lints specified cookbook files' do + let(:guard) { described_class.new(:notification => notification) } let(:notification) { false } let(:paths) { %w(recipes/default.rb attributes/default.rb) } - let(:runner) { double "runner", :run => true } + let(:runner) { double 'runner', :run => true } before { guard.stub(:runner).and_return(runner) } - it "runs the runner with the changed paths" do + it 'runs the runner with the changed paths' do runner.should_receive(:run).with(paths).and_return(true) subject end - it "informs the user" do - UI.should_receive(:info).with("Linting: recipes/default.rb attributes/default.rb") + it 'informs the user' do + UI.should_receive(:info).with('Linting: recipes/default.rb attributes/default.rb', {}) subject end - include_examples "handles runner results" + include_examples 'handles runner results' end - describe "#run_on_additions" do + describe '#run_on_additions' do subject { guard.run_on_additions(paths) } - include_examples "lints specified cookbook files" + include_examples 'lints specified cookbook files' end - describe "#run_on_change" do + describe '#run_on_change' do subject { guard.run_on_change(paths) } - include_examples "lints specified cookbook files" + include_examples 'lints specified cookbook files' end - describe "#run_on_modifications" do + describe '#run_on_modifications' do subject { guard.run_on_modifications(paths) } - include_examples "lints specified cookbook files" + include_examples 'lints specified cookbook files' end - describe "#runner" do - it "returns a Runner" do + describe '#runner' do + it 'returns a Runner' do described_class.new.runner.should be_a_kind_of Foodcritic::Runner end - it "memoizes the runner" do + it 'memoizes the runner' do guard = described_class.new guard.runner.should equal guard.runner end - it "configured the runner with the guard options" do + it 'configured the runner with the guard options' do guard = described_class.new runner = guard.runner runner.options.should include guard.options end end - describe "#start" do - it "runs all on start if the :all_on_start option is set to true" do - guard = described_class.new([], :all_on_start => true) + describe '#start' do + it 'runs all on start if the :all_on_start option is set to true' do + guard = described_class.new(:all_on_start => true) guard.should_receive(:run_all) guard.start end - it "does not run all on start if the :all_on_start option is set to false" do - guard = described_class.new([], :all_on_start => false) + it 'does not run all on start if the :all_on_start option is set to false' do + guard = described_class.new(:all_on_start => false) guard.should_not_receive(:run_all) guard.start end end - describe "#respond_to" do + describe '#respond_to' do it { should respond_to :run_on_additions } it { should respond_to :run_on_modifications } it { should_not respond_to :run_on_change } it { should_not respond_to :run_on_deletion } end