Sha256: 8dc2e68b87e12e2cdece11808acd2d4b71c79e81b062dc099413b4d29b406388

Contents?: true

Size: 946 Bytes

Versions: 14

Compression:

Stored size: 946 Bytes

Contents

require_relative "tracks_resets"
require_relative "server"

module CypressRails
  class StartsRailsServer
    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

    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

    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
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
cypress-rails-0.8.0.rc1 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.7.1 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.7.0 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.6.1 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.6.0 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.5.5 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.5.4 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.5.3 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.5.2 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.5.1 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.5.0 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.4.2 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.4.1 lib/cypress-rails/starts_rails_server.rb
cypress-rails-0.4.0 lib/cypress-rails/starts_rails_server.rb