mirror of
https://github.com/teampoltergeist/poltergeist.git
synced 2022-11-09 12:05:00 -05:00
Log raw JSON messages/responses rather than Ruby-parsed and inspected
This allows problems to be more easily reproduced and also allows for the logger output to be programatically parsed (by languages other than Ruby).
This commit is contained in:
parent
a2b1772ed4
commit
53848e53e0
3 changed files with 11 additions and 9 deletions
|
@ -268,11 +268,13 @@ module Capybara::Poltergeist
|
|||
end
|
||||
|
||||
def command(name, *args)
|
||||
message = { 'name' => name, 'args' => args }
|
||||
log message.inspect
|
||||
message = JSON.dump({ 'name' => name, 'args' => args })
|
||||
log message
|
||||
|
||||
json = JSON.load(server.send(JSON.dump(message)))
|
||||
log json.inspect
|
||||
response = server.send(message)
|
||||
log response
|
||||
|
||||
json = JSON.load(response)
|
||||
|
||||
if json['error']
|
||||
klass = ERROR_MAPPINGS[json['error']['name']] || BrowserError
|
||||
|
|
|
@ -540,7 +540,7 @@ describe Capybara::Session do
|
|||
@session.visit("/")
|
||||
@session.find(:css, "a").click
|
||||
|
||||
position = eval(TestSessions.logger.messages.last)["response"]["position"]
|
||||
position = JSON.load(TestSessions.logger.messages.last)["response"]["position"]
|
||||
expect(position["x"]).to_not be_nil
|
||||
expect(position["y"]).to_not be_nil
|
||||
end
|
||||
|
|
|
@ -11,13 +11,13 @@ module Capybara::Poltergeist
|
|||
subject { Browser.new(server, client, logger) }
|
||||
|
||||
it 'logs requests and responses to the client' do
|
||||
request = { 'name' => 'where is', 'args' => ["the love?"] }
|
||||
response = { 'response' => '<3' }
|
||||
server.stub(:send).with(MultiJson.dump(request)).and_return(JSON.dump(response))
|
||||
request = %({"name":"where is","args":["the love?"]})
|
||||
response = %({"response":"<3"})
|
||||
server.stub(:send).with(request).and_return(response)
|
||||
|
||||
subject.command('where is', 'the love?')
|
||||
|
||||
expect(logger.string).to eq("#{request.inspect}\n#{response.inspect}\n")
|
||||
expect(logger.string).to eq("#{request}\n#{response}\n")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue