class Quails::Generators::GeneratorTest

Public Instance Methods

make_builder_class() click to toggle source
# File railties/test/generators/generator_test.rb, line 10
def make_builder_class
  Class.new(AppBase) do
    add_shared_options_for "application"

    # include a module to get around thor's method_added hook
    include(Module.new {
      def gemfile_entries; super; end
      def invoke_all; super; self; end
      def add_gem_entry_filter; super; end
      def gemfile_entry(*args); super; end
    })
  end
end
test_add_gem() click to toggle source
# File railties/test/generators/generator_test.rb, line 29
def test_add_gem
  klass = make_builder_class
  generator = klass.start(["new", "blah"])
  generator.gemfile_entry "tenderlove"
  assert_includes generator.gemfile_entries.map(&:name), "tenderlove"
end
test_add_gem_with_version() click to toggle source
# File railties/test/generators/generator_test.rb, line 36
def test_add_gem_with_version
  klass = make_builder_class
  generator = klass.start(["new", "blah"])
  generator.gemfile_entry "tenderlove", "2.0.0"
  assert generator.gemfile_entries.find { |gfe|
    gfe.name == "tenderlove" && gfe.version == "2.0.0"
  }
end
test_add_github_gem() click to toggle source
# File railties/test/generators/generator_test.rb, line 45
def test_add_github_gem
  klass = make_builder_class
  generator = klass.start(["new", "blah"])
  generator.gemfile_entry "tenderlove", github: "hello world"
  assert generator.gemfile_entries.find { |gfe|
    gfe.name == "tenderlove" && gfe.options[:github] == "hello world"
  }
end
test_add_path_gem() click to toggle source
# File railties/test/generators/generator_test.rb, line 54
def test_add_path_gem
  klass = make_builder_class
  generator = klass.start(["new", "blah"])
  generator.gemfile_entry "tenderlove", path: "hello world"
  assert generator.gemfile_entries.find { |gfe|
    gfe.name == "tenderlove" && gfe.options[:path] == "hello world"
  }
end
test_construction() click to toggle source
# File railties/test/generators/generator_test.rb, line 24
def test_construction
  klass = make_builder_class
  assert klass.start(["new", "blah"])
end
test_filter() click to toggle source
# File railties/test/generators/generator_test.rb, line 63
def test_filter
  klass     = make_builder_class
  generator = klass.start(["new", "blah"])
  gems      = generator.gemfile_entries
  generator.add_gem_entry_filter { |gem|
    gem.name != gems.first.name
  }
  assert_equal gems.drop(1), generator.gemfile_entries
end
test_two_filters() click to toggle source
# File railties/test/generators/generator_test.rb, line 73
def test_two_filters
  klass     = make_builder_class
  generator = klass.start(["new", "blah"])
  gems      = generator.gemfile_entries
  generator.add_gem_entry_filter { |gem|
    gem.name != gems.first.name
  }
  generator.add_gem_entry_filter { |gem|
    gem.name != gems[1].name
  }
  assert_equal gems.drop(2), generator.gemfile_entries
end