spec/invoker/command_worker_spec.rb in invoker-1.0.4 vs spec/invoker/command_worker_spec.rb in invoker-1.1.0

- old
+ new

@@ -1,15 +1,45 @@ require "spec_helper" describe "Command Worker" do + let(:pipe_end) { StringIO.new } + let(:command_worker) { Invoker::CommandWorker.new('rails', pipe_end, 100, :red) } + describe "converting workers hash to json" do before do @workers = {} @workers["foo"] = Invoker::CommandWorker.new("foo", 89, 1023, "red") @workers["bar"] = Invoker::CommandWorker.new("bar", 99, 1024, "blue") end it "should print json" do expect(@workers.values.map {|worker| worker.to_h }.to_json).not_to be_empty + end + end + + describe "sending json responses" do + before do + @socket = StringIO.new + Invoker.tail_watchers = Invoker::CLI::TailWatcher.new + Invoker.tail_watchers.add(['rails'], @socket) + end + + after do + Invoker.tail_watchers = nil + end + + context "when there is a error encoding the message" do + it "should send nothing to the socket" do + MM::TailResponse.any_instance.expects(:encoded_message).raises(StandardError, "encoding error") + command_worker.receive_line('hello_world') + expect(@socket.string).to be_empty + end + end + + context "when there is successful delivery" do + it "should return json data to client if tail watchers" do + command_worker.receive_line('hello_world') + expect(@socket.string).to match(/hello_world/) + end end end end