Sha256: 18c2462a677794f84b3e6c0ed4567211e1a026e6383f6e5b762198a3855f947f

Contents?: true

Size: 1.41 KB

Versions: 4

Compression:

Stored size: 1.41 KB

Contents

require "ammeter/rspec/generator/example.rb"
require "ammeter/rspec/generator/matchers.rb"
require "ammeter/init"

module GeneratorSpecHelpers
  module FileMethods
    def file(path)
      Pathname.new(super)
    end

    def migration_file(path)
      Pathname.new(super)
    end
  end

  TEMPLATE_PATH = File.expand_path("../../app_templates", __FILE__)

  def provide_existing_routes_file
    copy_to_generator_root("config", "routes.rb")
  end

  def provide_existing_initializer
    copy_to_generator_root("config/initializers", "clearance.rb")
  end

  def provide_existing_application_controller
    copy_to_generator_root("app/controllers", "application_controller.rb")
  end

  def provide_existing_user_class
    copy_to_generator_root("app/models", "user.rb")
    allow(File).to receive(:exist?).and_call_original
    allow(File).to receive(:exist?).with("app/models/user.rb").and_return(true)
  end

  private

  def copy_to_generator_root(destination, template)
    template_file = File.join(TEMPLATE_PATH, destination, template)
    destination = File.join(destination_root, destination)

    FileUtils.mkdir_p(destination)
    FileUtils.cp(template_file, destination)
  end
end

RSpec.configure do |config|
  config.include GeneratorSpecHelpers
  config.prepend GeneratorSpecHelpers::FileMethods

  config.before(:example, :generator) do
    destination File.expand_path("../../../tmp", __FILE__)
    prepare_destination
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
clearance-2.9.3 spec/support/generator_spec_helpers.rb
clearance-2.9.2 spec/support/generator_spec_helpers.rb
clearance-2.9.1 spec/support/generator_spec_helpers.rb
clearance-2.9.0 spec/support/generator_spec_helpers.rb