spec/server_spec.rb in heel-0.2.0 vs spec/server_spec.rb in heel-0.3.0

- old
+ new

@@ -2,12 +2,18 @@ describe Heel::Server do before(:each) do @stdin = StringIO.new @stdout = StringIO.new @stderr = StringIO.new + ENV["HEEL_DEFAULT_DIRECTORY"] = "/tmp/heel" end + after(:each) do + ENV.delete("HEEL_DEFAULT_DIRECTORY") + FileUtils.rm_rf "/tmp/heel" + end + it "should output the version when invoked with --version" do server = Heel::Server.new(["--version"]) server.set_io(@stdin, @stdout) begin server.run @@ -38,16 +44,65 @@ @stdout.string.should =~ /Try .*--help/m end end it "should raise print an error if the directory to serve does not exist" do - server = Heel::Server.new(["--root /not/valid"]) + server = Heel::Server.new(%w[--root /not/valid]) server.set_io(@stdin,@stdout) begin server.run rescue SystemExit => se se.status.should == 1 @stdout.string.should =~ /Try .*--help/m end end + + it "should allow port and address to be set" do + server = Heel::Server.new(%w[--port 4242 --address 192.168.1.1]) + server.merge_options + server.options.address.should == "192.168.1.1" + server.options.port.should == 4242 + end + + it "should set no-launch-browser option and kill option" do + server = Heel::Server.new(%w[--no-launch-browser]) + server.merge_options + server.options.launch_browser.should == false + end + + it "should attempt to kill the process" do + server = Heel::Server.new(%w[--kill]) + server.set_io(@stdin,@stdout) + begin + server.run + violated("Should have thrown SystemExit") + rescue SystemExit => se + se.status.should == 0 + @stdout.string.should =~ /Done/m + end + end + + it "should setup a heel directory" do + server = Heel::Server.new(%w[--daemonize]) + server.set_io(@stdin,@stdout) + File.directory?(server.default_directory).should == false + server.setup_heel_dir + File.directory?(server.default_directory).should == true + @stdout.string.should =~ /Created/m + end + + it "should not find a pid file" do + server = Heel::Server.new(%w[--kil]) + server.set_io(@stdin,@stdout) + server.setup_heel_dir + + File.open(server.pid_file,"w+") { |f| f.write("-42") } + begin + server.run + violated("Should have exited") + rescue SystemExit => se + se.status.should == 0 + @stdout.string.should =~ /Sending TERM to process -42/m + end + end end \ No newline at end of file