module ForeignOffice::Test::ClientExec

Public Instance Methods

exec_listeners(listeners, push_data) click to toggle source
# File lib/foreign_office/test/client_exec.rb, line 15
def exec_listeners(listeners, push_data)
  listeners.each do |el|
    messages = push_data.select{|msg| msg['channel'] == el[:'data-channel']}
    message = messages.last
    if message
      page.execute_script("foreign_office.channels_by_name['#{el[:'data-channel']}'].handleMessage(#{message.to_json});")
    end
  end
end
fetch_foreign_office_messages() click to toggle source
# File lib/foreign_office/test/client_exec.rb, line 5
def fetch_foreign_office_messages
  push_data = File.read(Rails.root + 'tmp/foreign_office_rspec_cache.json')
  push_data = push_data.split('IH_FO_MESSAGE_SEPARATOR')
  push_data.map!{|msg| JSON.parse msg}
  File.delete(Rails.root + 'tmp/foreign_office_rspec_cache.json')

  exec_listeners(page.all(:css, '[data-listener]', visible: false), push_data)
  exec_listeners(page.all(:css, '[data-listener]'), push_data)
end