spec/unit/tailor/cli_spec.rb in tailor-1.4.0 vs spec/unit/tailor/cli_spec.rb in tailor-1.4.1

- old
+ new

@@ -1,115 +1,101 @@ require 'spec_helper' require 'tailor/cli' - describe Tailor::CLI do let(:args) { [] } let(:options) { double 'Options', show_config: false } let(:config) do - double 'Tailor::Configuration', - file_sets: nil, formatters: nil, load!: nil + double 'Tailor::Configuration', file_sets: nil, formatters: nil, load!: nil end before do - Tailor::Configuration.stub(:new).and_return config - Tailor::Critic.stub(:new) - Tailor::Reporter.stub(:new) + allow(Tailor::Configuration).to receive(:new).and_return config + allow(Tailor::Critic).to receive(:new) + allow(Tailor::Reporter).to receive(:new) end - after do - Tailor::Configuration.unstub(:new) - end - subject { Tailor::CLI.new(args) } describe '::run' do it "creates an instance of Tailor::CLI and calls that object's #execute!" do cli = double 'Tailor::CLI' - cli.should_receive(:execute!) - Tailor::CLI.should_receive(:new).and_return cli + expect(cli).to receive(:execute!) + expect(Tailor::CLI).to receive(:new).and_return cli Tailor::CLI.run([]) end end describe '#initialize' do - let(:args) { %w[last] } + let(:args) { %w(last) } it 'uses Options to parse the args' do - Tailor::Configuration.stub(:new).and_return config - Tailor::Critic.stub(:new) - Tailor::Reporter.stub(:new) - Tailor::CLI::Options.should_receive(:parse!).with(args).and_return options + allow(Tailor::Configuration).to receive(:new).and_return config + allow(Tailor::Critic).to receive(:new) + allow(Tailor::Reporter).to receive(:new) + expect(Tailor::CLI::Options).to receive(:parse!). + with(args).and_return options Tailor::CLI.new(args) end it 'creates a new Configuration from the file/dir and options' do - Tailor::CLI::Options.stub(:parse!).and_return(options) - Tailor::Configuration.should_receive(:new). - with(args, options).and_return config + allow(Tailor::CLI::Options).to receive(:parse!).and_return(options) + expect(Tailor::Configuration).to receive(:new).with(args, options). + and_return config Tailor::Critic.stub(:new) Tailor::CLI.new(args) end context 'options.show_config is true' do - + pending end context 'options.show_config is false' do - + pending end end describe '#execute!' do let(:reporter) { double 'Tailor::Reporter' } let(:critic) { double 'Tailor::Critic', problem_count: 0 } before do - Tailor::Critic.stub(:new).and_return(critic) - Tailor::Reporter.stub(:new).and_return(reporter) + allow(Tailor::Critic).to receive(:new).and_return(critic) + allow(Tailor::Reporter).to receive(:new).and_return(reporter) subject.instance_variable_set(:@critic, critic) subject.instance_variable_set(:@reporter, reporter) end - after do - Tailor::Critic.unstub(:new) - Tailor::Reporter.unstub(:new) - end - it 'calls @critic.critique and yields file problems and the label' do problems_for_file = {} label = :test - config.should_receive(:output_file) - critic.stub(:problem_count).and_return 1 - critic.stub(:problems) - critic.stub(:critique).and_yield(problems_for_file, label) - reporter.stub(:summary_report) - reporter.should_receive(:file_report).with(problems_for_file, label) + expect(config).to receive(:output_file) + allow(critic).to receive(:problem_count).and_return 1 + allow(critic).to receive(:problems) + allow(critic).to receive(:critique).and_yield(problems_for_file, label) + allow(reporter).to receive(:summary_report) + expect(reporter).to receive(:file_report).with(problems_for_file, label) subject.execute! end end describe '#result' do let(:critic) { double 'Tailor::Critic', problem_count: 0 } before do - Tailor::Critic.stub(:new).and_return(critic) + allow(Tailor::Critic).to receive(:new).and_return(critic) subject.instance_variable_set(:@critic, critic) end - after do - Tailor::Critic.unstub(:new) - end - it 'calls @critic.critique and return @critique.problems hash' do problems = {} - critic.should_receive(:critique) - critic.should_receive(:problems).and_return(problems) + expect(critic).to receive(:critique) + expect(critic).to receive(:problems).and_return(problems) - subject.result.should == problems + expect(subject.result).to eq problems end end end