class CypressRails::StartsRailsServer

Public Instance Methods

call(host:, port:, transactional_server:) click to toggle source
# File lib/cypress-rails/starts_rails_server.rb, line 6
def call(host:, port:, transactional_server:)
  configure_rails_to_run_our_state_reset_on_every_request!(transactional_server)
  app = create_rack_app
  Server.new(app, host: host, port: port).tap do |server|
    server.boot
  end
end
configure_rails_to_run_our_state_reset_on_every_request!(transactional_server) click to toggle source
# File lib/cypress-rails/starts_rails_server.rb, line 14
def configure_rails_to_run_our_state_reset_on_every_request!(transactional_server)
  Rails.application.executor.to_run do
    TracksResets.instance.reset_state_if_needed(transactional_server)
  end
end
create_rack_app() click to toggle source
# File lib/cypress-rails/starts_rails_server.rb, line 20
def create_rack_app
  Rack::Builder.new do
    map "/cypress_rails_reset_state" do
      run lambda { |env|
        TracksResets.instance.reset_needed!
        [202, {"Content-Type" => "text/plain"}, ["Accepted"]]
      }
    end
    map "/" do
      run Rails.application
    end
  end
end