Updated Rails to 2.1.0
[gitorious:georgyos-clone.git] / vendor / plugins / rspec / pre_commit / spec / pre_commit / rspec_on_rails_spec.rb
1 require File.dirname(__FILE__) + '/../spec_helper.rb'
2 require 'fileutils'
3
4 include FileUtils
5
6 ##
7 # This is not a complete specification of PreCommit.RSpecOnRails, but 
8 # just a collection of bug fix regression tests.
9 describe "PreCommit::RSpecOnRails" do
10   before do
11     @original_dir = File.expand_path(FileUtils.pwd)
12     @rails_app_dir = File.expand_path(File.dirname(__FILE__) + "/../../../example_rails_app/")
13
14     Dir.chdir(@rails_app_dir)
15     @pre_commit = PreCommit::RspecOnRails.new(nil)
16   end
17   
18   describe "pre_commit" do
19     before(:each) do
20       rm_rf('vendor/plugins/rspec_on_rails')
21       system("svn export ../rspec_on_rails vendor/plugins/rspec_on_rails")
22     end
23
24     after do
25       rm('db/migrate/888_create_purchases.rb', :force => true)
26       @pre_commit.destroy_purchase
27       Dir.chdir(@original_dir)
28     end
29
30     # bug in r1802
31     it "should fail noisily if there is a migration name conflict" do
32       touch('db/migrate/888_create_purchases.rb')
33       lambda { @pre_commit.generate_purchase }.should raise_error
34     end
35
36     it "should not fail if tests run ok" do
37       lambda { @pre_commit.generate_purchase }.should_not raise_error
38     end
39   end
40   
41   describe "install_plugin" do
42     before(:each) do
43       rm_rf('vendor/plugins')
44     end
45
46     it "should create the plugins dir if none exists" do
47       @pre_commit.install_plugin :rspec_on_rails
48       File.directory?('vendor/plugins/rspec_on_rails').should be_true
49     end
50   end
51 end