Sha256: 718a0497381ed966ff8af6d58cda25f4a7f17fca34a5e7bb4fd26deece7b391b

Contents?: true

Size: 1.31 KB

Versions: 2

Compression:

Stored size: 1.31 KB

Contents

require 'sprockets'
require 'sprockets-helpers'
require 'construct'
require 'pathname'

# Requires supporting files with custom matchers and macros, etc,
# in ./support/ and its subdirectories.
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }

RSpec.configure do |config|
  config.include Construct::Helpers

  # Returns a Sprockets environment. Automatically
  # appends the 'assets' path if available.
  def env
    @env ||= Sprockets::Environment.new.tap do |env|
      env.append_path 'assets' if File.directory?('assets')
    end
  end

  # Returns a fresh context, that can be used to test helpers.
  def context(logical_path = 'application.js', pathname = nil)
    pathname ||= Pathname.new(File.join('assets', logical_path)).expand_path
    env.context_class.new env, logical_path, pathname
  end

  # Exemplary file system layout for usage in test-construct
  def assets_layout(construct)
    lambda { |c|
      c.file('assets/main.js') do |f|
        f << "//= require a\n"
        f << "//= require b\n"
      end
      c.file('assets/a.js')
      c.file('assets/b.js')

      c.file('assets/main.css') do |f|
        f << "/*\n"
        f << "*= require a\n"
        f << "*= require b\n"
        f << "*/\n"
      end
      c.file('assets/a.css')
      c.file('assets/b.css')
    }.call(construct)
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sprockets-helpers-0.9.1 spec/spec_helper.rb
sprockets-helpers-0.8.0 spec/spec_helper.rb