on-test-spec 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
- :minor: 2
3
- :patch: 4
2
+ :patch: 5
4
3
  :major: 0
4
+ :minor: 2
5
5
  :build:
@@ -11,9 +11,9 @@ class Class
11
11
  alias_method "original_#{method}", method
12
12
 
13
13
  eval %{
14
- def #{method}(*args)
14
+ def #{method}(*args, &block)
15
15
  if allow_#{method}
16
- original_#{method}(*args)
16
+ original_#{method}(*args, &block)
17
17
  else
18
18
  raise RuntimeError, "You're trying to call `#{method}' on `#{self}', which you probably don't want in a test."
19
19
  end
@@ -40,9 +40,9 @@ class Module
40
40
  alias_method "original_#{method}", method
41
41
 
42
42
  eval %{
43
- def #{method}(*args)
43
+ def #{method}(*args, &block)
44
44
  if allow_#{method}
45
- original_#{method}(*args)
45
+ original_#{method}(*args, &block)
46
46
  else
47
47
  raise RuntimeError, "You're trying to call `#{method}' on `#{self}', which you probably don't want in a test."
48
48
  end
@@ -18,9 +18,12 @@ module Test
18
18
  module Spec
19
19
  module Rails
20
20
  def self.extract_test_case_args(args)
21
- name = args.map { |a| a.to_s }.join(' ')
22
21
  class_to_test = args.find { |a| a.is_a?(Module) }
23
22
  superclass = test_case_for_class(class_to_test)
23
+
24
+ args.delete(class_to_test) if superclass == class_to_test
25
+ name = args.map { |a| a.to_s }.join(' ')
26
+
24
27
  [name, class_to_test, superclass]
25
28
  end
26
29
 
@@ -30,6 +33,8 @@ module Test
30
33
  ActiveRecord::TestCase
31
34
  elsif klass.ancestors.include?(ActionController::Base)
32
35
  ActionController::TestCase
36
+ elsif klass.ancestors.include?(ActiveSupport::TestCase)
37
+ klass
33
38
  elsif !klass.is_a?(Class) && klass.to_s.ends_with?('Helper')
34
39
  ActionView::TestCase
35
40
  end
@@ -55,6 +60,10 @@ module Kernel
55
60
  # will be used. In the latter two cases, the test case will be setup for the
56
61
  # class that's to be tested.
57
62
  #
63
+ # If the class inherits from ActiveSupport::TestCase, it will be used as both
64
+ # the class to be tested and as the test case superclass (this is how test-spec
65
+ # works without on-test-spec).
66
+ #
58
67
  # In all other cases the test case superclass will be ActiveSupport::TestCase.
59
68
  #
60
69
  # Examples:
@@ -70,6 +79,10 @@ module Kernel
70
79
  # describe 'The', MembersHelper, ', concerning dates' do # "The MembersHelper, concerning dates"
71
80
  # ...
72
81
  # end
82
+ #
83
+ # describe 'Creating an account and posting a comment', ActiveSupport::IntegrationTest do # Creating an account and posting a comment ActionController::IntegrationTest
84
+ # ...
85
+ # end
73
86
  def context(*args, &block)
74
87
  name, class_to_test, superclass = Test::Spec::Rails.extract_test_case_args(args)
75
88
  spec = context_before_on_test_spec(name, superclass) { tests class_to_test if respond_to?(:tests) }
@@ -86,4 +99,4 @@ module Kernel
86
99
 
87
100
  alias :describe :context
88
101
  alias :xdescribe :xcontext
89
- end
102
+ end
data/on-test-spec.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{on-test-spec}
8
- s.version = "0.2.3"
8
+ s.version = "0.2.5"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Manfred Stienstra", "Eloy Duran", "Cristi Balan"]
12
- s.date = %q{2009-09-24}
12
+ s.date = %q{2010-05-27}
13
13
  s.description = %q{Rails plugin to make testing Rails on test/spec easier.}
14
14
  s.email = %q{eloy.de.enige@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -29,6 +29,7 @@ Gem::Specification.new do |s|
29
29
  "lib/test/spec/rails/expectations.rb",
30
30
  "lib/test/spec/rails/macros.rb",
31
31
  "lib/test/spec/rails/macros/authorization.rb",
32
+ "lib/test/spec/rails/macros/response.rb",
32
33
  "lib/test/spec/rails/request_helpers.rb",
33
34
  "lib/test/spec/rails/response_helpers.rb",
34
35
  "lib/test/spec/rails/spec_responder.rb",
@@ -40,6 +41,7 @@ Gem::Specification.new do |s|
40
41
  "test/expectations_test.rb",
41
42
  "test/macros/authorization_test.rb",
42
43
  "test/macros/base_test.rb",
44
+ "test/macros/response_test.rb",
43
45
  "test/rails_test.rb",
44
46
  "test/share_test.rb",
45
47
  "test/test_helper.rb",
@@ -56,6 +58,7 @@ Gem::Specification.new do |s|
56
58
  "test/expectations_test.rb",
57
59
  "test/macros/authorization_test.rb",
58
60
  "test/macros/base_test.rb",
61
+ "test/macros/response_test.rb",
59
62
  "test/rails_test.rb",
60
63
  "test/share_test.rb",
61
64
  "test/test_helper.rb",
@@ -72,3 +75,4 @@ Gem::Specification.new do |s|
72
75
  else
73
76
  end
74
77
  end
78
+
@@ -5,8 +5,13 @@ module Factory
5
5
  def self.run
6
6
  true
7
7
  end
8
+
9
+ def self.ran(name, &block)
10
+ block.call("#{name} was run")
11
+ end
8
12
  end
9
13
  Factory.add_allow_switch :run, :default => true
14
+ Factory.add_allow_switch :ran
10
15
 
11
16
  describe "Factory with an allow switch on run" do
12
17
  it "should alias the original method" do
@@ -31,13 +36,25 @@ describe "Factory with an allow switch on run" do
31
36
  Factory.run.should == true
32
37
  }.should.not.raise
33
38
  end
39
+
40
+ it "should forward passed blocks and arguments" do
41
+ Factory.allow_ran = true
42
+ Factory.ran('Machine') do |name|
43
+ name + '!'
44
+ end.should == 'Machine was run!'
45
+ end
34
46
  end
35
47
 
36
48
  class Bunny
49
+ def hip(name, &block)
50
+ block.call("#{name} is hip")
51
+ end
52
+
37
53
  def hop
38
54
  'Hop hop!'
39
55
  end
40
56
  end
57
+ Bunny.add_allow_switch :hip
41
58
  Bunny.add_allow_switch :hop
42
59
 
43
60
  describe "Bunny with an allow switch on hop" do
@@ -67,9 +84,15 @@ describe "Bunny with an allow switch on hop" do
67
84
  @bunny.hop.should == 'Hop hop!'
68
85
  }.should.not.raise
69
86
  end
87
+
88
+ it "should forward passed blocks and arguments" do
89
+ Bunny.allow_hip = true
90
+ @bunny.hip('Bunny') do |name|
91
+ name + '!'
92
+ end.should == 'Bunny is hip!'
93
+ end
70
94
  end
71
95
 
72
-
73
96
  Kernel.add_allow_switch :system
74
97
 
75
98
  describe "Kernel with an allow switch on system" do
data/test/rails_test.rb CHANGED
@@ -4,6 +4,7 @@ require "test/spec/rails"
4
4
  class RegularClass; end
5
5
  class ActiveRecordModel < ActiveRecord::Base; end
6
6
  class ActionControllerClass < ActionController::Base; end
7
+ class ActiveSupportTestCaseClass < ActiveSupport::TestCase; end
7
8
  module ViewModuleHelper; end
8
9
 
9
10
  CLASS_TO_TESTCASE_MAPPINGS = {
@@ -35,6 +36,20 @@ describe "A test case for an", ActionControllerClass do
35
36
  end
36
37
  end
37
38
 
39
+ describe "A test case for an ActiveSupport::TestCase descendant", ActiveSupportTestCaseClass do
40
+ test_case = self
41
+
42
+ it "should have itself assigned as the class to test and as the superclass" do
43
+ test_case.ancestors.should.include ActiveSupportTestCaseClass
44
+ test_case.superclass.should.be ActiveSupportTestCaseClass
45
+ end
46
+
47
+ it "should not include itself in the description" do
48
+ test_case.name.should ==
49
+ "A test case for an ActiveSupport::TestCase descendant"
50
+ end
51
+ end
52
+
38
53
  describe "A test case for a", ViewModuleHelper do
39
54
  test_case = self
40
55
 
@@ -97,4 +112,4 @@ CLASS_TO_TESTCASE_MAPPINGS.each do |test_class, expected_test_case|
97
112
  end
98
113
  end
99
114
 
100
- end
115
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: on-test-spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Manfred Stienstra
@@ -11,7 +11,7 @@ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
13
 
14
- date: 2009-11-03 00:00:00 +01:00
14
+ date: 2010-05-27 00:00:00 +02:00
15
15
  default_executable:
16
16
  dependencies: []
17
17