Sha256: 9c4842622af8685831875727da47e18adcde1b69e22feb116afa8f6eb36817f8

Contents?: true

Size: 1.03 KB

Versions: 7

Compression:

Stored size: 1.03 KB

Contents

# File: spec/support/tasks.rb
require "rake"

# Task names should be used in the top-level describe, with an optional
# "rake "-prefix for better documentation. Both of these will work:
#
# 1) describe "foo:bar" do ... end
#
# 2) describe "rake foo:bar" do ... end
#
# Favor including "rake "-prefix as in the 2nd example above as it produces
# doc output that makes it clear a rake task is under test and how it is
# invoked.
module TaskExampleGroup
  extend ActiveSupport::Concern

  included do
    let(:task_name) { self.class.top_level_description.sub(/\Arake /, "") }
    let(:tasks) { Rake::Task }

    # Make the Rake task available as `task` in your examples:
    subject(:task) { tasks[task_name] }
  end
end


RSpec.configure do |config|

  # Tag Rake specs with `:task` metadata or put them in the spec/tasks dir
  config.define_derived_metadata(:file_path => %r{/spec/tasks/}) do |metadata|
    metadata[:type] = :task
  end

  config.include TaskExampleGroup, type: :task

  config.before(:suite) do
    Rails.application.load_tasks
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
authz-0.0.5 spec/support/tasks.rb
authz-0.0.4 spec/support/tasks.rb
authz-0.0.3 spec/support/tasks.rb
authz-0.0.2 spec/support/tasks.rb
authz-0.0.1 spec/support/tasks.rb
authz-0.0.1.alpha5 spec/support/tasks.rb
authz-0.0.1.alpha4 spec/support/tasks.rb