spec/cli_spec.rb in boojs-0.0.7 vs spec/cli_spec.rb in boojs-0.0.9

- old
+ new

@@ -1,78 +1,94 @@ require 'open3' +require 'tempfile' require 'securerandom' describe "CLI" do before(:all) do #Laziness `ps -ax | grep phantomjs | grep -v phantomjs | awk '{print $1}' | xargs kill -9` end - it "Will not exit in pipe mode" do - @finished = false - Thread.new do - `ruby -I./lib ./bin/boojs` - @finished = true - end +# it "Will not exit in pipe mode" do + #@finished = false + #Thread.new do + #`ruby -I./lib ./bin/boojs` + #@finished = true + #end - sleep 5 - expect(@finished).to eq(false) - end + #sleep 5 + #expect(@finished).to eq(false) + #end - it "Replies with pong$KEY when given ping('$key')" do - key = SecureRandom.hex - Thread.new do - Open3.popen3("ruby -I./lib ./bin/boojs") do |i, o, e, t| - i.puts "__spec_ping('#{key}')" - @back = o.gets.chomp - end - end + #it "Replies with pong$KEY when given ping('$key')" do + #key = SecureRandom.hex + #Thread.new do + #Open3.popen3("ruby -I./lib ./bin/boojs") do |i, o, e, t| + #i.puts "__spec_ping('#{key}')" + #@back = o.gets.chomp + #end + #end - sleep 5 - expect(@back).to eq("pong"+key) - end + #sleep 5 + #expect(@back).to eq("pong"+key) + #end - it "Replies with pong$KEY when given ping('$key') twice" do - keyA = SecureRandom.hex - keyB = SecureRandom.hex + #it "Replies with pong$KEY when given ping('$key') twice" do + #keyA = SecureRandom.hex + #keyB = SecureRandom.hex - Thread.new do - Open3.popen3("ruby -I./lib ./bin/boojs") do |i, o, e, t| - i.puts "__spec_ping('#{keyA}')" - @backA = o.gets.chomp - i.puts "__spec_ping('#{keyB}')" - @backB = o.gets.chomp - end - end + #Thread.new do + #Open3.popen3("ruby -I./lib ./bin/boojs") do |i, o, e, t| + #i.puts "__spec_ping('#{keyA}')" + #@backA = o.gets.chomp + #i.puts "__spec_ping('#{keyB}')" + #@backB = o.gets.chomp + #end + #end - sleep 5 - expect(@backA).to eq("pong"+keyA) - expect(@backB).to eq("pong"+keyB) - end + #sleep 5 + #expect(@backA).to eq("pong"+keyA) + #expect(@backB).to eq("pong"+keyB) + #end - it "Emits stderr and not stdout when an error has occurred" do - Thread.new do - Open3.popen3("ruby -I./lib ./bin/boojs") do |i, o, e, t| - i.puts "no_such_variable" - @error = e.gets.chomp - @out = o.gets.chomp - end - end + #it "Emits stderr and not stdout when an error has occurred" do + #Thread.new do + #Open3.popen3("ruby -I./lib ./bin/boojs") do |i, o, e, t| + #i.puts "no_such_variable" + #@error = e.gets.chomp + #@out = o.gets.chomp + #end + #end - sleep 5 - expect(@error.length).not_to eq(0) - expect(@out).to eq(nil) - end + #sleep 5 + #expect(@error.length).not_to eq(0) + #expect(@out).to eq(nil) + #end - it "Exits with a return code of 1 with error" do + #it "Exits with a return code of 1 with error" do + #Thread.new do + #Open3.popen3("ruby -I./lib ./bin/boojs") do |i, o, e, t| + #i.puts "no_such_variable" + #@error = e.gets.chomp + #@exit = t.value + #end + #end + + #sleep 5 + #expect(@exit.exitstatus).to eq(1) + #end + + it "Can be passed a file as an argument" do + f = Tempfile.new(SecureRandom.hex) + f.puts "console.log('hello');" + f.close + Thread.new do - Open3.popen3("ruby -I./lib ./bin/boojs") do |i, o, e, t| - i.puts "no_such_variable" - @error = e.gets.chomp - @exit = t.value + Open3.popen3(%{ruby -I./lib ./bin/boojs #{f.path}}) do |i, o, e, t| + @read = o.gets.chomp end end sleep 5 - expect(@exit.exitstatus).to eq(1) + expect(@read).to eq("hello") end end