Sha256: 73d2d64090519df04f8c6167208a504b869a9367f6f80788849ccea0ff10f78d

Contents?: true

Size: 1.46 KB

Versions: 3

Compression:

Stored size: 1.46 KB

Contents

require 'sprockets'
require 'sprockets-helpers'
require 'sinatra/base'
require 'sinatra/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

  # Disable old `should` syntax
  config.expect_with :rspec do |c|
    c.syntax = :expect
  end

  # 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

3 entries across 3 versions & 1 rubygems

Version Path
sprockets-helpers-1.1.0 spec/spec_helper.rb
sprockets-helpers-1.0.1 spec/spec_helper.rb
sprockets-helpers-1.0.0 spec/spec_helper.rb