class Quails::ConsoleTest

Attributes

output[R]

Public Class Methods

new(console) click to toggle source
# File railties/test/commands/console_test.rb, line 156
def initialize(console)
  @console = console
end

Public Instance Methods

test_console_defaults_to_IRB() click to toggle source
# File railties/test/commands/console_test.rb, line 56
def test_console_defaults_to_IRB
  app = build_app(nil)
  assert_equal IRB, Quails::Console.new(app).console
end
test_console_with_environment() click to toggle source
# File railties/test/commands/console_test.rb, line 51
def test_console_with_environment
  start ["-e", "production"]
  assert_match(/\sproduction\s/, output)
end
test_default_environment_with_no_quails_env() click to toggle source
# File railties/test/commands/console_test.rb, line 61
def test_default_environment_with_no_quails_env
  with_quails_env nil do
    start
    assert_match(/\sdevelopment\s/, output)
  end
end
test_default_environment_with_quails_env() click to toggle source
# File railties/test/commands/console_test.rb, line 68
def test_default_environment_with_quails_env
  with_quails_env "special-production" do
    start
    assert_match(/\sspecial-production\s/, output)
  end
end
test_default_environment_with_rack_env() click to toggle source
# File railties/test/commands/console_test.rb, line 75
def test_default_environment_with_rack_env
  with_rack_env "production" do
    start
    assert_match(/\sproduction\s/, output)
  end
end
test_e_option() click to toggle source
# File railties/test/commands/console_test.rb, line 82
def test_e_option
  start ["-e", "special-production"]
  assert_match(/\sspecial-production\s/, output)
end
test_e_option_is_properly_expanded() click to toggle source
# File railties/test/commands/console_test.rb, line 87
def test_e_option_is_properly_expanded
  start ["-e", "prod"]
  assert_match(/\sproduction\s/, output)
end
test_environment_option() click to toggle source
# File railties/test/commands/console_test.rb, line 92
def test_environment_option
  start ["--environment=special-production"]
  assert_match(/\sspecial-production\s/, output)
end
test_no_options() click to toggle source
# File railties/test/commands/console_test.rb, line 31
def test_no_options
  console = Quails::Console.new(app, parse_arguments([]))
  assert !console.sandbox?
end
test_quails_env_is_dev_when_argument_is_dev_and_dev_env_is_present() click to toggle source
# File railties/test/commands/console_test.rb, line 118
def test_quails_env_is_dev_when_argument_is_dev_and_dev_env_is_present
  Quails::Command::ConsoleCommand.class_eval do
    alias_method :old_environments, :available_environments

    define_method :available_environments do
      ["dev"]
    end
  end

  assert_deprecated do
    assert_match("dev", parse_arguments(["dev"])[:environment])
  end
ensure
  Quails::Command::ConsoleCommand.class_eval do
    undef_method :available_environments
    alias_method :available_environments, :old_environments
    undef_method :old_environments
  end
end
test_quails_env_is_development_when_argument_is_d() click to toggle source
# File railties/test/commands/console_test.rb, line 111
def test_quails_env_is_development_when_argument_is_d
  assert_deprecated do
    start ["d"]
    assert_match(/\sdevelopment\s/, output)
  end
end
test_quails_env_is_production_when_first_argument_is_p() click to toggle source
# File railties/test/commands/console_test.rb, line 97
def test_quails_env_is_production_when_first_argument_is_p
  assert_deprecated do
    start ["p"]
    assert_match(/\sproduction\s/, output)
  end
end
test_quails_env_is_test_when_first_argument_is_t() click to toggle source
# File railties/test/commands/console_test.rb, line 104
def test_quails_env_is_test_when_first_argument_is_t
  assert_deprecated do
    start ["t"]
    assert_match(/\stest\s/, output)
  end
end
test_sandbox_option() click to toggle source
# File railties/test/commands/console_test.rb, line 21
def test_sandbox_option
  console = Quails::Console.new(app, parse_arguments(["--sandbox"]))
  assert console.sandbox?
end
test_short_version_of_sandbox_option() click to toggle source
# File railties/test/commands/console_test.rb, line 26
def test_short_version_of_sandbox_option
  console = Quails::Console.new(app, parse_arguments(["-s"]))
  assert console.sandbox?
end
test_start() click to toggle source
# File railties/test/commands/console_test.rb, line 36
def test_start
  start

  assert app.console.started?
  assert_match(/Loading \w+ environment \(Quails/, output)
end
test_start_with_sandbox() click to toggle source
# File railties/test/commands/console_test.rb, line 43
def test_start_with_sandbox
  start ["--sandbox"]

  assert app.console.started?
  assert app.sandbox
  assert_match(/Loading \w+ environment in sandbox \(Quails/, output)
end

Private Instance Methods

app() click to toggle source
# File railties/test/commands/console_test.rb, line 148
def app
  @app ||= build_app(FakeConsole)
end
build_app(console) click to toggle source
# File railties/test/commands/console_test.rb, line 152
def build_app(console)
  mocked_console = Class.new do
    attr_reader :sandbox, :console

    def initialize(console)
      @console = console
    end

    def config
      self
    end

    def sandbox=(arg)
      @sandbox = arg
    end

    def load_console
    end
  end
  mocked_console.new(console)
end
config() click to toggle source
# File railties/test/commands/console_test.rb, line 160
def config
  self
end
load_console() click to toggle source
# File railties/test/commands/console_test.rb, line 168
def load_console
end
parse_arguments(args) click to toggle source
# File railties/test/commands/console_test.rb, line 174
def parse_arguments(args)
  Quails::Command::ConsoleCommand.class_eval do
    alias_method :old_perform, :perform
    define_method(:perform) do
      extract_environment_option_from_argument

      options
    end
  end

  Quails::Command.invoke(:console, args)
ensure
  Quails::Command::ConsoleCommand.class_eval do
    undef_method :perform
    alias_method :perform, :old_perform
    undef_method :old_perform
  end
end
sandbox=(arg) click to toggle source
# File railties/test/commands/console_test.rb, line 164
def sandbox=(arg)
  @sandbox = arg
end
start(argv = []) click to toggle source
# File railties/test/commands/console_test.rb, line 143
def start(argv = [])
  quails_console = Quails::Console.new(app, parse_arguments(argv))
  @output = capture(:stdout) { quails_console.start }
end