rspec-rake 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e7bffb36a216048ed168e8e6f427a935f71b9b70
4
- data.tar.gz: 1e7ed2db1d3ef8e21b35ad241b303973d01f27b3
3
+ metadata.gz: efc103eb231e30250258d2c08c46e78f4f3e8702
4
+ data.tar.gz: faf47c00e50764358ee8b9fa5ef3b72d413a33ce
5
5
  SHA512:
6
- metadata.gz: c0ffe0a90b6b5766d56762ef8dc6d9e69dc7b10b13c81b231d8e052936dde7dde63ec5ed0bc8bdf75da3a46f6e7d2c6ac5ce37ad993953cd820fa128dad023cf
7
- data.tar.gz: 1ac06046bc40640be6da7d9bad556f268d31b1a10f4b3bc2026da9a66961ef5380f5b8ba81f1fca1019ae8044084316832a8e2b2ea33fe9d1dbddcda0df16230
6
+ metadata.gz: c893c28ee53f85a702119e9c34a289494ec58b68a2976039358b3d4203a730df78dc02d99dc5aade6d92204725050209650a1e8ace0a4e0ef802e29aa0ca5988
7
+ data.tar.gz: def6b7bd9ac79ed2ed26cd7c020b221946034203aca9a995106e882d3ca51d431912cb001ee5bf8386731b40f5e0cac852c4cdd045d0734e621163e47b513d1c
@@ -1,4 +1,4 @@
1
- Copyright (c) 2014 Stas SUȘCOV
1
+ Copyright (c) 2014-2017 Stas SUȘCOV
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # RSpec Rake Support
2
2
 
3
+ [![Build Status](https://travis-ci.org/stas/rspec-rake.png?branch=master)](https://travis-ci.org/stas/rspec-rake)
4
+
3
5
  You can test you Rake files like you test your Rails app.
4
6
 
5
7
  This gem adds an example group and configures RSpec so we can write tests for our Rake tasks easily.
@@ -53,6 +55,8 @@ describe 'task:subtask', :rakefile => 'my_task', :tasks_path => 'lib/capistrano/
53
55
  end
54
56
  ```
55
57
 
58
+ Check [rails-dummy](https://github.com/Courseware/rails-dummy) tests for more examples.
59
+
56
60
  ### Limitations
57
61
 
58
62
  Due to how `Rake::Application#rake_require` works, only files with `.rake` extension can be tests.
@@ -3,8 +3,6 @@ require 'rspec/rake/example_group'
3
3
 
4
4
  RSpec.configure do |config|
5
5
  config.include RSpec::Rake::ExampleGroup,
6
- :type => :task,
7
- :example_group => lambda { |example_group, metadata|
8
- metadata[:type].nil? && %r{spec/tasks}.match(example_group[:file_path])
9
- }
6
+ type: :task,
7
+ file_path: /\bspec\/tasks\//
10
8
  end
@@ -8,7 +8,7 @@ module RSpec::Rake
8
8
  base.instance_eval do
9
9
 
10
10
  metadata[:type] = :task
11
- metadata[:tasks_path] ||= File.join('../', 'lib', 'tasks')
11
+ metadata[:tasks_path] ||= File.join('lib', 'tasks')
12
12
  metadata[:rakefile] ||= nil
13
13
 
14
14
  subject(:task) { Rake.application[self.class.top_level_description] }
@@ -18,12 +18,13 @@ module RSpec::Rake
18
18
  task_name = self.class.top_level_description
19
19
 
20
20
  rakefile = metadata[:rakefile] || task_name.split(':').first
21
- task_path = File.join(metadata[:tasks_path], rakefile)
21
+ task_path = File.join('..', metadata[:tasks_path], rakefile)
22
22
 
23
23
  Rake.application = Rake::Application.new
24
24
  # We are sending an empty list of loaded files
25
25
  # in order to force loading of existing files
26
26
  Rake.application.rake_require(task_path, $LOAD_PATH, [])
27
+ Rake::Task.define_task(:environment)
27
28
  end
28
29
  end
29
30
 
@@ -1,5 +1,5 @@
1
1
  module Rspec
2
2
  module Rake
3
- VERSION = "0.0.2"
3
+ VERSION = '0.0.3'
4
4
  end
5
5
  end
@@ -0,0 +1,55 @@
1
+ require 'spec_helper'
2
+
3
+ describe RSpec::Rake::ExampleGroup do
4
+
5
+ subject(:example_group) do
6
+ RSpec::Core::ExampleGroup.describe do
7
+ include RSpec::Rake::ExampleGroup
8
+ end
9
+ end
10
+
11
+ it 'loads metadata' do
12
+ expect(example_group.metadata[:type]).to eq(:task)
13
+ expect(example_group.metadata[:tasks_path]).to eq('lib/tasks')
14
+ expect(example_group.metadata[:rakefile]).to be_nil
15
+ end
16
+
17
+ context '#before(:each) with no rakefile metadata' do
18
+ let(:task_name) { 'some:task' }
19
+
20
+ before do
21
+ example_group.class.stub(:top_level_description => task_name)
22
+ example_group.class.stub(:metadata => example_group.metadata)
23
+ end
24
+
25
+ it 'creates a new rake application and loads the task rake file' do
26
+ fake_rake_app = Rake::Application.new
27
+ expect(fake_rake_app).to receive(:rake_require).with(
28
+ '../lib/tasks/some', $LOAD_PATH, [])
29
+ expect(Rake::Application).to receive(:new).and_return(fake_rake_app)
30
+
31
+ example_group.hooks.send(
32
+ :run_example_hooks_for, example_group, :before, :each)
33
+ end
34
+ end
35
+
36
+ context '#before(:each) with rakefile metadata' do
37
+ let(:metadata) { example_group.metadata.merge(:rakefile => 'another') }
38
+
39
+ before do
40
+ example_group.class.stub(:top_level_description)
41
+ example_group.class.stub(:metadata => metadata)
42
+ end
43
+
44
+ it 'creates a new rake application and loads the task rake file' do
45
+ fake_rake_app = Rake::Application.new
46
+ expect(fake_rake_app).to receive(:rake_require).with(
47
+ '../lib/tasks/another', $LOAD_PATH, [])
48
+ expect(Rake::Application).to receive(:new).and_return(fake_rake_app)
49
+
50
+ example_group.hooks.send(
51
+ :run_example_hooks_for, example_group, :before, :each)
52
+ end
53
+ end
54
+
55
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'default', :rakefile => 'example', :tasks_path => './fixtures' do
3
+ describe 'default', :rakefile => 'example', :tasks_path => 'spec/fixtures' do
4
4
  it 'task lists another task as the prerequisite' do
5
5
  expect(task.prerequisites).to include('example:subexample:task')
6
6
  end
@@ -11,7 +11,7 @@ describe 'default', :rakefile => 'example', :tasks_path => './fixtures' do
11
11
  end
12
12
  end
13
13
 
14
- describe 'example:subexample:task', :tasks_path => 'fixtures' do
14
+ describe 'example:subexample:task', :tasks_path => 'spec/fixtures' do
15
15
  it 'has no prerequisites' do
16
16
  expect(task.prerequisites).to be_empty
17
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-rake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stas SUȘCOV
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-02 00:00:00.000000000 Z
11
+ date: 2017-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -84,6 +84,7 @@ files:
84
84
  - lib/rspec/rake/version.rb
85
85
  - rspec-rake.gemspec
86
86
  - spec/fixtures/example.rake
87
+ - spec/lib/example_group_spec.rb
87
88
  - spec/spec_helper.rb
88
89
  - spec/tasks/rake_task_spec.rb
89
90
  homepage: https://github.com/stas/rspec-rake
@@ -106,11 +107,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
107
  version: '0'
107
108
  requirements: []
108
109
  rubyforge_project:
109
- rubygems_version: 2.2.0
110
+ rubygems_version: 2.6.8
110
111
  signing_key:
111
112
  specification_version: 4
112
113
  summary: Test Rake tasks with RSpec.
113
114
  test_files:
114
115
  - spec/fixtures/example.rake
116
+ - spec/lib/example_group_spec.rb
115
117
  - spec/spec_helper.rb
116
118
  - spec/tasks/rake_task_spec.rb