spec/pratt_spec.rb in Pratt-1.5.6 vs spec/pratt_spec.rb in Pratt-1.5.8

- old
+ new

@@ -4,127 +4,133 @@ describe Pratt do before :each do @pratt = Pratt.new end -# it "should act like an array" do -# @pratt.should respond_to(:<<) -# lambda { -# @pratt << :this -# }.should change(@pratt.todo, :size).by(1) -# @pratt.todo.should == [:this] -# end -# -# it "correctly report i_should?" do -# @pratt.send(:i_should?, :this).should be_false -# @pratt << :this -# @pratt.send(:i_should?, :this).should be_true -# end -# -# it "should start a new project when calling begin" do -# @pratt.project = mock('Refactor') -# @pratt.when_to = Time.now -# @pratt.project.expects(:start!).with(@pratt.when_to) -# -# @pratt.begin -# end -# -# it "should allow project to be set by object" do -# primary = Project.new :name => 'project', :weight => 1 -# Project.expects(:find_or_create_by_name).never -# @pratt.project = primary -# @pratt.project.should == primary -# end -# -# it "should allow project to be set by a string" do -# Project.expects(:find_or_create_by_name).with( { :name => 'Refactor' } ) -# @pratt.project = 'Refactor' -# end -# -# describe "color" do -# -# it "should color when expected" do -# @pratt.color = true -# @pratt.send( :red, 'this' ).should == 'this'.red -# end -# -# it "should not color when not expected" do -# @pratt.color = false -# @pratt.send( :red, 'this' ).should == 'this' -# end -# end -# -# describe "\b#root" do -# before :each do -# Dir.stubs(:pwd).returns("/home/scott/git/pratt") -# @expected_root = "/home/scott/git/pratt" -# end -# -# it "is correct without arguments" do -# Pratt.root.should == [Pathname.new(@expected_root)] -# end -# -# it "is correct with a block but no argument" do -# received = [] -# Pratt.root {|model| received << model } -# received.should == [Pathname.new(@expected_root)] -# end -# -# it "is correct with an argument but no block" do -# Pratt.root('models').should == [Pathname.new(File.join(@expected_root, "models"))] -# end -# -# it "is correct with an argument and block" do -# received = [] -# Pratt.root('models', '*.rb') {|model| received << model } -# received.to_set.should == %w(app.rb customer.rb log.rb project.rb payment.rb pratt.rb whence.rb).collect {|model| Pathname.new File.join(@expected_root, "models", model) }.to_set -# end -# end -# -# describe "graph" do -# before :each do -# @when_to = Chronic.parse('last week').beginning_of_week -# @pratt.scale = 'week' -# @pratt.when_to = @when_to -# end -# -# after :each do -# Whence.delete_all -# end -# -# -# def task name, time_spent -# task1 = Project.find_or_create_by_name :name => name -# task1.start! @when_to -# task1.stop! @when_to+time_spent -# end -# -# def populate_with_data -# Project.find_or_create_by_name :name => '**** ********', :weight => 1 -# task 'Lunch/Break', 1.hour+21.minutes -# task 'Task1', 1.hour+4.minutes -# task 'Task2', 58.minutes -# task 'Another Task', 5.minutes -# task 'Task3', 1.day+17.hours+32.minutes -# end -# -# def get_expected_display -# Pratt.root('spec', 'fixtures', 'graph.expectation') {|file| File.open(file).read } -# end -# -# it "report no data" do -# Project.expects(:all).returns([]) -# @pratt.expects(:process_template!).never -# @pratt.graph.should == "No data to report" -# end -# -# it "should look right with data" do -# populate_with_data + it "should act like an array" do + @pratt.should respond_to(:<<) + lambda { + @pratt << :this + }.should change(@pratt.todo, :size).by(1) + @pratt.todo.should == [:this] + end + + it "correctly report i_should?" do + @pratt.send(:i_should?, :this).should be_false + @pratt << :this + @pratt.send(:i_should?, :this).should be_true + end + + it "should start a new project when calling begin" do + @pratt.project = mock('Refactor') + @pratt.when_to = Time.now + @pratt.project.expects(:start!).with(@pratt.when_to) + + @pratt.begin + end + + it "should allow project to be set by object" do + primary = Project.new :name => 'project', :weight => 1 + Project.expects(:find_or_create_by_name).never + @pratt.project = primary + @pratt.project.should == primary + end + + it "should allow project to be set by a string" do + Project.expects(:find_or_create_by_name).with( { :name => 'Refactor' } ) + @pratt.project = 'Refactor' + end + + describe "color" do + + it "should color when expected" do + Pratt.color = true + 'this'.red.should == 'this'.red + end + + it "should not color when not expected" do + Pratt.color = false + 'this'.red.should == 'this' + end + end + + describe "\b#root" do + before :each do + Dir.stubs(:pwd).returns("/home/scott/git/pratt") + @expected_root = "/home/scott/git/pratt" + end + + it "is correct without arguments" do + Pratt.root.should == [Pathname.new(@expected_root)] + end + + it "is correct with a block but no argument" do + received = [] + Pratt.root {|model| received << model } + received.should == [Pathname.new(@expected_root)] + end + + it "is correct with an argument but no block" do + Pratt.root('models').should == [Pathname.new(File.join(@expected_root, "models"))] + end + + it "is correct with an argument and block" do + received = [] + Pratt.root('models', '*.rb') {|model| received << model } + received.to_set.should == %w(app.rb customer.rb project.rb payment.rb pratt.rb whence.rb).collect {|model| Pathname.new File.join(@expected_root, "models", model) }.to_set + end + end + + describe "graph" do + before :each do + @when_to = Chronic.parse('last week').beginning_of_week + @pratt.scale = 'week' + @pratt.when_to = @when_to + @customer = Customer.create :name => 'Bob Hope', :address => '123 Where St', :zip => '22222' + @tasks = [] + end + + after :each do + Whence.delete_all + @customer.destroy + @tasks.each(&:destroy) + end + + def task name, time_spent + task = Project.find_or_create_by_name :name => name, :customer => @customer + task.start! @when_to + task.stop! @when_to+time_spent + @tasks << task + end + + def populate_with_data + @tasks << Project.find_or_create_by_name( :name => '**** ********', :weight => 1, :customer => @customer ) + task 'Lunch/Break', 1.hour+21.minutes + task 'Task1', 1.hour+4.minutes + task 'Task2', 58.minutes + task 'Another Task', 5.minutes + task 'Task3', 1.day+17.hours+32.minutes + end + + def get_expected_display + e = '' + Pratt.root('spec', 'fixtures', 'graph.expectation') {|file| e = File.open(file).read } + e + end + + it "report no data" do + Project.expects(:all).returns([]) + @pratt.expects(:process_template!).never + @pratt.graph.should == "No data to report" + end + + it "should look right with data" do + populate_with_data # @pratt.expects(:process_template!) -# -# @pratt.graph.should == get_expected_display -# end -# end + + @pratt.graph.should == get_expected_display + end + end describe "parse" do it "handles cli arg -n setting appropriate environment config" # do ## Pratt.expects(:connect).with('staging')