spec/heidi/hook_spec.rb in heidi-0.3.1 vs spec/heidi/hook_spec.rb in heidi-0.4.0

- old
+ new

@@ -1,5 +1,51 @@ require 'spec_helper' describe Heidi::Hook do - pending "more tests please!" + before(:all) do + fake_me_a_heidi + @script = File.join(@fake, "projects/heidi_test/hooks/before/testing_hook.sh") + File.open(@script, File::CREAT|File::WRONLY) do |f| + f.puts %Q(#!/bin/sh + +printenv > #{@fake}/testing_hook.out +) + end + + SimpleShell.new(@fake).chmod %W(+x #{@script}) + end + + after(:all) do + FileUtils.remove_entry_secure @fake + end + + before(:each) do + @project = @heidi[:heidi_test] + @build = Heidi::Build.new(@project) + @hook = Heidi::Hook.new(@build, @script) + end + + it "has a name" do + @hook.name.should == "before/testing_hook.sh" + end + + it "performs" do + outfile = File.join(@fake, "testing_hook.out") + File.exists?(outfile).should_not be_true + @hook.perform + @hook.should_not be_failed + File.exists?(outfile).should be_true + end + + it "resets the environment" do + @hook.perform + @hook.should_not be_failed + contents = File.read(File.join(@fake, "testing_hook.out")) + + contents.should_not =~ /RUBYOPT/ + contents.should_not =~ /GEM_HOME/ + contents.should_not =~ /GEM_PATH/ + contents.should_not =~ /BUNDLE_/ + contents.should =~ /HEIDI_BUILD_/ + contents.should =~ /HEIDI_LOG_DIR/ + end end \ No newline at end of file