Sha256: 1f6bb36fb782e937fd7b6b7f575bea87545bf1745ed9a343bd819090e8ad0070

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

require_relative "finds_bin"
require_relative "config"
require_relative "initializer_hooks"
require_relative "manages_transactions"
require_relative "starts_rails_server"

module CypressRails
  class LaunchesCypress
    def initialize
      @initializer_hooks = InitializerHooks.instance
      @manages_transactions = ManagesTransactions.instance
      @starts_rails_server = StartsRailsServer.new
      @finds_bin = FindsBin.new
    end

    def call(command, config)
      puts config.to_s
      @initializer_hooks.run(:before_server_start)
      if config.transactional_server
        @manages_transactions.begin_transaction
      end
      @starts_rails_server.call(
        port: config.port,
        transactional_server: config.transactional_server
      )
      bin = @finds_bin.call(config.dir)
      at_exit do
        @initializer_hooks.run(:before_server_stop)
      end

      system <<~EXEC
        CYPRESS_BASE_URL=http://#{Capybara.server_host}:#{Capybara.server_port} #{bin} #{command} --project "#{config.dir}" #{config.cypress_cli_opts}
      EXEC
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cypress-rails-0.1.0 lib/cypress-rails/launches_cypress.rb