transpec 1.5.1 → 1.6.0
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 +4 -4
- data/.travis.yml +2 -2
- data/CHANGELOG.md +6 -0
- data/Gemfile +1 -1
- data/README.md +188 -90
- data/README.md.erb +190 -90
- data/lib/transpec/converter.rb +8 -13
- data/lib/transpec/dynamic_analyzer.rb +0 -1
- data/lib/transpec/dynamic_analyzer/rewriter.rb +6 -1
- data/lib/transpec/rspec_dsl.rb +15 -4
- data/lib/transpec/rspec_version.rb +6 -5
- data/lib/transpec/static_context_inspector.rb +25 -1
- data/lib/transpec/syntax.rb +7 -0
- data/lib/transpec/syntax/matcher_definition.rb +30 -0
- data/lib/transpec/syntax/mixin/send.rb +1 -1
- data/lib/transpec/util.rb +2 -4
- data/lib/transpec/version.rb +2 -2
- data/spec/transpec/converter_spec.rb +53 -14
- data/spec/transpec/dynamic_analyzer/rewriter_spec.rb +24 -45
- data/spec/transpec/rspec_version_spec.rb +2 -2
- data/spec/transpec/static_context_inspector_spec.rb +99 -47
- data/spec/transpec/syntax/matcher_definition_spec.rb +59 -0
- data/tasks/readme.rake +19 -2
- data/transpec.gemspec +1 -1
- metadata +7 -4
data/lib/transpec/converter.rb
CHANGED
@@ -5,18 +5,8 @@ require 'transpec/configuration'
|
|
5
5
|
require 'transpec/report'
|
6
6
|
require 'transpec/rspec_version'
|
7
7
|
require 'transpec/syntax'
|
8
|
-
|
9
|
-
|
10
|
-
require 'transpec/syntax/double'
|
11
|
-
require 'transpec/syntax/example'
|
12
|
-
require 'transpec/syntax/expect'
|
13
|
-
require 'transpec/syntax/its'
|
14
|
-
require 'transpec/syntax/method_stub'
|
15
|
-
require 'transpec/syntax/oneliner_should'
|
16
|
-
require 'transpec/syntax/raise_error'
|
17
|
-
require 'transpec/syntax/rspec_configure'
|
18
|
-
require 'transpec/syntax/should'
|
19
|
-
require 'transpec/syntax/should_receive'
|
8
|
+
|
9
|
+
Transpec::Syntax.require_all
|
20
10
|
|
21
11
|
module Transpec
|
22
12
|
class Converter < BaseRewriter
|
@@ -86,7 +76,7 @@ module Transpec
|
|
86
76
|
else
|
87
77
|
oneliner_should.convert_have_items_to_standard_should!
|
88
78
|
end
|
89
|
-
elsif @configuration.convert_oneliner? && @rspec_version.
|
79
|
+
elsif @configuration.convert_oneliner? && @rspec_version.oneliner_is_expected_available?
|
90
80
|
oneliner_should.expectize!(negative_form, parenthesize)
|
91
81
|
end
|
92
82
|
end
|
@@ -159,6 +149,11 @@ module Transpec
|
|
159
149
|
example.convert! if @configuration.convert_deprecated_method?
|
160
150
|
end
|
161
151
|
|
152
|
+
def process_matcher_definition(matcher_definition)
|
153
|
+
return unless @rspec_version.non_should_matcher_protocol_available?
|
154
|
+
matcher_definition.convert_deprecated_method! if @configuration.convert_deprecated_method?
|
155
|
+
end
|
156
|
+
|
162
157
|
def process_rspec_configure(rspec_configure)
|
163
158
|
if need_to_modify_expectation_syntax_configuration?(rspec_configure)
|
164
159
|
rspec_configure.modify_expectation_syntaxes!(:expect)
|
@@ -1,13 +1,19 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
3
|
require 'transpec/base_rewriter'
|
4
|
+
require 'transpec/dynamic_analyzer'
|
5
|
+
require 'transpec/syntax'
|
4
6
|
require 'transpec/util'
|
5
7
|
|
8
|
+
Transpec::Syntax.require_all
|
9
|
+
|
6
10
|
module Transpec
|
7
11
|
class DynamicAnalyzer
|
8
12
|
class Rewriter < BaseRewriter
|
9
13
|
include Util
|
10
14
|
|
15
|
+
EVAL_TARGET_TYPES = [:object, :context]
|
16
|
+
|
11
17
|
def process(ast, source_rewriter)
|
12
18
|
# TODO: Currently multitheading is not considered...
|
13
19
|
clear_requests!
|
@@ -75,7 +81,6 @@ module Transpec
|
|
75
81
|
'), self, %s, __FILE__, %d, %d)',
|
76
82
|
hash_literal(analysis_codes), source_range.begin_pos, source_range.end_pos
|
77
83
|
)
|
78
|
-
rear = "\n" + indentation_of_line(source_range.end) + rear if contain_here_document?(node)
|
79
84
|
|
80
85
|
[front, rear]
|
81
86
|
end
|
data/lib/transpec/rspec_dsl.rb
CHANGED
@@ -1,20 +1,31 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
+
# Aliases by Capybara:
|
4
|
+
# https://github.com/jnicklas/capybara/blob/2.2.0/lib/capybara/rspec/features.rb
|
5
|
+
|
3
6
|
module Transpec
|
4
7
|
module RSpecDSL
|
5
8
|
EXAMPLE_GROUP_METHODS = [
|
6
9
|
:describe, :context,
|
7
|
-
:shared_examples, :shared_context, :share_examples_for, :shared_examples_for
|
10
|
+
:shared_examples, :shared_context, :share_examples_for, :shared_examples_for,
|
11
|
+
:feature # Capybara
|
8
12
|
].freeze
|
9
13
|
|
10
14
|
EXAMPLE_METHODS = [
|
11
15
|
:example, :it, :specify,
|
12
16
|
:focus, :focused, :fit,
|
13
|
-
:pending, :xexample, :xit, :xspecify
|
17
|
+
:pending, :xexample, :xit, :xspecify,
|
18
|
+
:scenario, :xscenario # Capybara
|
14
19
|
].freeze
|
15
20
|
|
16
|
-
HOOK_METHODS = [
|
21
|
+
HOOK_METHODS = [
|
22
|
+
:before, :after, :around,
|
23
|
+
:background # Capybara
|
24
|
+
].freeze
|
17
25
|
|
18
|
-
HELPER_METHODS = [
|
26
|
+
HELPER_METHODS = [
|
27
|
+
:subject, :subject!, :let, :let!,
|
28
|
+
:given, :given! # Capybara
|
29
|
+
].freeze
|
19
30
|
end
|
20
31
|
end
|
@@ -41,10 +41,11 @@ module Transpec
|
|
41
41
|
@gem_version.to_s
|
42
42
|
end
|
43
43
|
|
44
|
-
define_feature :be_truthy,
|
45
|
-
define_feature :yielded_example,
|
46
|
-
define_feature :
|
47
|
-
define_feature :receive_messages,
|
48
|
-
define_feature :receive_message_chain,
|
44
|
+
define_feature :be_truthy, '2.99.0.beta1'
|
45
|
+
define_feature :yielded_example, '2.99.0.beta1'
|
46
|
+
define_feature :oneliner_is_expected, '2.99.0.beta2', except: '3.0.0.beta1'
|
47
|
+
define_feature :receive_messages, '3.0.0.beta1'
|
48
|
+
define_feature :receive_message_chain, '3.0.0.beta2'
|
49
|
+
define_feature :non_should_matcher_protocol, '3.0.0.beta2'
|
49
50
|
end
|
50
51
|
end
|
@@ -8,6 +8,7 @@ module Transpec
|
|
8
8
|
include RSpecDSL, Util
|
9
9
|
|
10
10
|
SCOPE_TYPES = [:module, :class, :sclass, :def, :defs, :block].freeze
|
11
|
+
TWISTED_SCOPE_TYPES = (SCOPE_TYPES - [:def, :defs]).freeze
|
11
12
|
|
12
13
|
NON_MONKEY_PATCH_EXPECTATION_AVAILABLE_CONTEXT = [
|
13
14
|
[:example_group, :example],
|
@@ -41,12 +42,16 @@ module Transpec
|
|
41
42
|
|
42
43
|
def scopes
|
43
44
|
@scopes ||= begin
|
44
|
-
scopes =
|
45
|
+
scopes = valid_ancestor_nodes.reverse_each.map { |node| scope_type(node) }
|
45
46
|
scopes.compact!
|
46
47
|
scopes.extend(ArrayExtension)
|
47
48
|
end
|
48
49
|
end
|
49
50
|
|
51
|
+
def inside_of_example_group?
|
52
|
+
scopes.include?(:example_group)
|
53
|
+
end
|
54
|
+
|
50
55
|
def non_monkey_patch_expectation_available?
|
51
56
|
return @expectation_available if instance_variable_defined?(:@expectation_available)
|
52
57
|
@expectation_available = match_scopes(NON_MONKEY_PATCH_EXPECTATION_AVAILABLE_CONTEXT)
|
@@ -64,6 +69,25 @@ module Transpec
|
|
64
69
|
|
65
70
|
private
|
66
71
|
|
72
|
+
def valid_ancestor_nodes
|
73
|
+
valid_nodes = []
|
74
|
+
|
75
|
+
self_and_ancestor_nodes = [@node] + @node.ancestor_nodes
|
76
|
+
|
77
|
+
self_and_ancestor_nodes.each_cons(2) do |child, parent|
|
78
|
+
valid_nodes << parent unless belong_to_direct_outer_scope?(child)
|
79
|
+
end
|
80
|
+
|
81
|
+
valid_nodes
|
82
|
+
end
|
83
|
+
|
84
|
+
def belong_to_direct_outer_scope?(node)
|
85
|
+
return false unless TWISTED_SCOPE_TYPES.include?(node.parent_node.type)
|
86
|
+
scope_node = node.parent_node
|
87
|
+
return true if node.equal?(scope_node.children[0])
|
88
|
+
scope_node.type == :class && node.equal?(scope_node.children[1])
|
89
|
+
end
|
90
|
+
|
67
91
|
def scope_type(node)
|
68
92
|
return nil unless SCOPE_TYPES.include?(node.type)
|
69
93
|
|
data/lib/transpec/syntax.rb
CHANGED
@@ -13,6 +13,13 @@ module Transpec
|
|
13
13
|
all_syntaxes << subclass
|
14
14
|
end
|
15
15
|
|
16
|
+
def require_all
|
17
|
+
pattern = File.join(File.dirname(__FILE__), 'syntax', '*.rb')
|
18
|
+
Dir.glob(pattern) do |path|
|
19
|
+
require path
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
16
23
|
def all_syntaxes
|
17
24
|
@subclasses ||= []
|
18
25
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
require 'transpec/syntax'
|
4
|
+
require 'transpec/syntax/mixin/send'
|
5
|
+
|
6
|
+
module Transpec
|
7
|
+
class Syntax
|
8
|
+
class MatcherDefinition < Syntax
|
9
|
+
include Mixin::Send
|
10
|
+
|
11
|
+
CONVERSION_CORRESPONDENCE = {
|
12
|
+
match_for_should: :match,
|
13
|
+
match_for_should_not: :match_when_negated,
|
14
|
+
failure_message_for_should: :failure_message,
|
15
|
+
failure_message_for_should_not: :failure_message_when_negated
|
16
|
+
}
|
17
|
+
|
18
|
+
def self.target_method?(receiver_node, method_name)
|
19
|
+
receiver_node.nil? && CONVERSION_CORRESPONDENCE.keys.include?(method_name)
|
20
|
+
end
|
21
|
+
|
22
|
+
def convert_deprecated_method!
|
23
|
+
replacement_method_name = CONVERSION_CORRESPONDENCE[method_name].to_s
|
24
|
+
replace(selector_range, replacement_method_name)
|
25
|
+
|
26
|
+
@report.records << Record.new("#{method_name} { }", "#{replacement_method_name} { }")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/transpec/util.rb
CHANGED
@@ -47,13 +47,11 @@ module Transpec
|
|
47
47
|
|
48
48
|
def here_document?(node)
|
49
49
|
return false unless [:str, :dstr].include?(node.type)
|
50
|
-
|
51
|
-
return false if !map.respond_to?(:begin) || map.begin.nil?
|
52
|
-
map.begin.source.start_with?('<<')
|
50
|
+
node.loc.respond_to?(:heredoc_end)
|
53
51
|
end
|
54
52
|
|
55
53
|
def contain_here_document?(node)
|
56
|
-
|
54
|
+
node.each_node.any? { |n| here_document?(n) }
|
57
55
|
end
|
58
56
|
|
59
57
|
def in_explicit_parentheses?(node)
|
data/lib/transpec/version.rb
CHANGED
@@ -223,8 +223,8 @@ module Transpec
|
|
223
223
|
end
|
224
224
|
|
225
225
|
shared_examples 'invokes OnelinerShould#expectize! if available' do
|
226
|
-
context 'when RSpecVersion#
|
227
|
-
before { rspec_version.stub(:
|
226
|
+
context 'when RSpecVersion#oneliner_is_expected_available? returns true' do
|
227
|
+
before { rspec_version.stub(:oneliner_is_expected_available?).and_return(true) }
|
228
228
|
|
229
229
|
it 'invokes OnelinerShould#expectize!' do
|
230
230
|
should_object.should_receive(:expectize!)
|
@@ -232,8 +232,8 @@ module Transpec
|
|
232
232
|
end
|
233
233
|
end
|
234
234
|
|
235
|
-
context 'when RSpecVersion#
|
236
|
-
before { rspec_version.stub(:
|
235
|
+
context 'when RSpecVersion#oneliner_is_expected_available? returns false' do
|
236
|
+
before { rspec_version.stub(:oneliner_is_expected_available?).and_return(false) }
|
237
237
|
include_examples 'does nothing'
|
238
238
|
end
|
239
239
|
end
|
@@ -655,7 +655,7 @@ module Transpec
|
|
655
655
|
context 'when Configuration#convert_deprecated_method? is false' do
|
656
656
|
before { configuration.convert_deprecated_method = false }
|
657
657
|
|
658
|
-
it 'does
|
658
|
+
it 'does nothing' do
|
659
659
|
double_object.should_not_receive(:convert_to_double!)
|
660
660
|
converter.process_double(double_object)
|
661
661
|
end
|
@@ -668,7 +668,7 @@ module Transpec
|
|
668
668
|
context 'when RSpecVersion#be_truthy_available? returns true' do
|
669
669
|
before { rspec_version.stub(:be_truthy_available?).and_return(true) }
|
670
670
|
|
671
|
-
context '
|
671
|
+
context 'and Configuration#convert_deprecated_method? is true' do
|
672
672
|
before { configuration.convert_deprecated_method = true }
|
673
673
|
|
674
674
|
context 'and Configuration#boolean_matcher_type is :conditional' do
|
@@ -703,7 +703,7 @@ module Transpec
|
|
703
703
|
end
|
704
704
|
end
|
705
705
|
|
706
|
-
context '
|
706
|
+
context 'and Configuration#convert_deprecated_method? is false' do
|
707
707
|
before { configuration.convert_deprecated_method = false }
|
708
708
|
|
709
709
|
it 'does nothing' do
|
@@ -740,7 +740,7 @@ module Transpec
|
|
740
740
|
context 'when Configuration#convert_deprecated_method? is false' do
|
741
741
|
before { configuration.convert_deprecated_method = false }
|
742
742
|
|
743
|
-
it 'does
|
743
|
+
it 'does nothing' do
|
744
744
|
be_close_object.should_not_receive(:convert_to_be_within!)
|
745
745
|
converter.process_be_close(be_close_object)
|
746
746
|
end
|
@@ -762,7 +762,7 @@ module Transpec
|
|
762
762
|
context 'when Configuration#convert_deprecated_method? is false' do
|
763
763
|
before { configuration.convert_deprecated_method = false }
|
764
764
|
|
765
|
-
it 'does
|
765
|
+
it 'does nothing' do
|
766
766
|
raise_error_object.should_not_receive(:remove_error_specification_with_negative_expectation!)
|
767
767
|
converter.process_raise_error(raise_error_object)
|
768
768
|
end
|
@@ -784,7 +784,7 @@ module Transpec
|
|
784
784
|
context 'when Configuration#convert_its? is false' do
|
785
785
|
before { configuration.convert_its = false }
|
786
786
|
|
787
|
-
it 'does
|
787
|
+
it 'does nothing' do
|
788
788
|
its_object.should_not_receive(:convert_to_describe_subject_it!)
|
789
789
|
converter.process_its(its_object)
|
790
790
|
end
|
@@ -797,7 +797,7 @@ module Transpec
|
|
797
797
|
context 'when RSpecVersion#yielded_example_available? returns true' do
|
798
798
|
before { rspec_version.stub(:yielded_example_available?).and_return(true) }
|
799
799
|
|
800
|
-
context '
|
800
|
+
context 'and Configuration#convert_deprecated_method? is true' do
|
801
801
|
before { configuration.convert_deprecated_method = true }
|
802
802
|
|
803
803
|
it 'invokes Example#convert!' do
|
@@ -806,10 +806,10 @@ module Transpec
|
|
806
806
|
end
|
807
807
|
end
|
808
808
|
|
809
|
-
context '
|
809
|
+
context 'and Configuration#convert_deprecated_method? is false' do
|
810
810
|
before { configuration.convert_deprecated_method = false }
|
811
811
|
|
812
|
-
it 'does
|
812
|
+
it 'does nothing' do
|
813
813
|
example_object.should_not_receive(:convert!)
|
814
814
|
converter.process_example(example_object)
|
815
815
|
end
|
@@ -819,7 +819,7 @@ module Transpec
|
|
819
819
|
context 'when RSpecVersion#yielded_example_available? returns false' do
|
820
820
|
before { rspec_version.stub(:yielded_example_available?).and_return(false) }
|
821
821
|
|
822
|
-
context '
|
822
|
+
context 'and Configuration#convert_deprecated_method? is true' do
|
823
823
|
before { configuration.convert_deprecated_method = true }
|
824
824
|
|
825
825
|
it 'does nothing' do
|
@@ -830,6 +830,45 @@ module Transpec
|
|
830
830
|
end
|
831
831
|
end
|
832
832
|
|
833
|
+
describe '#process_matcher_definition' do
|
834
|
+
let(:matcher_definition) { double('matcher_definition').as_null_object }
|
835
|
+
|
836
|
+
context 'when RSpecVersion#non_should_matcher_protocol_available? returns true' do
|
837
|
+
before { rspec_version.stub(:non_should_matcher_protocol_available?).and_return(true) }
|
838
|
+
|
839
|
+
context 'and Configuration#convert_deprecated_method? is true' do
|
840
|
+
before { configuration.convert_deprecated_method = true }
|
841
|
+
|
842
|
+
it 'invokes MatcherDefinition#convert_deprecated_method!' do
|
843
|
+
matcher_definition.should_receive(:convert_deprecated_method!)
|
844
|
+
converter.process_matcher_definition(matcher_definition)
|
845
|
+
end
|
846
|
+
end
|
847
|
+
|
848
|
+
context 'and Configuration#convert_deprecated_method? is false' do
|
849
|
+
before { configuration.convert_deprecated_method = false }
|
850
|
+
|
851
|
+
it 'does nothing' do
|
852
|
+
matcher_definition.should_not_receive(:convert_deprecated_method!)
|
853
|
+
converter.process_matcher_definition(matcher_definition)
|
854
|
+
end
|
855
|
+
end
|
856
|
+
end
|
857
|
+
|
858
|
+
context 'when RSpecVersion#non_should_matcher_protocol_available? returns false' do
|
859
|
+
before { rspec_version.stub(:non_should_matcher_protocol_available?).and_return(false) }
|
860
|
+
|
861
|
+
context 'and Configuration#convert_deprecated_method? is true' do
|
862
|
+
before { configuration.convert_deprecated_method = true }
|
863
|
+
|
864
|
+
it 'does nothing' do
|
865
|
+
matcher_definition.should_not_receive(:convert_deprecated_method!)
|
866
|
+
converter.process_matcher_definition(matcher_definition)
|
867
|
+
end
|
868
|
+
end
|
869
|
+
end
|
870
|
+
end
|
871
|
+
|
833
872
|
describe '#process_rspec_configure' do
|
834
873
|
let(:rspec_configure) { double('rspec_configure').as_null_object }
|
835
874
|
|
@@ -15,10 +15,8 @@ module Transpec
|
|
15
15
|
|
16
16
|
let(:source) do
|
17
17
|
<<-END
|
18
|
-
|
19
|
-
|
20
|
-
subject.should be(foo)
|
21
|
-
end
|
18
|
+
it 'is foo' do
|
19
|
+
subject.should be(foo)
|
22
20
|
end
|
23
21
|
END
|
24
22
|
end
|
@@ -26,10 +24,8 @@ module Transpec
|
|
26
24
|
# rubocop:disable LineLength
|
27
25
|
let(:expected_source) do
|
28
26
|
<<-END
|
29
|
-
|
30
|
-
|
31
|
-
transpec_analysis((transpec_analysis((subject), self, { :should_source_location => [:object, "method(:should).source_location"] }, __FILE__, 79, 86).should be(foo)), self, { :expect_available? => [:context, "self.class.ancestors.any? { |a| a.name.start_with?('RSpec::') } && respond_to?(:expect)"] }, __FILE__, 79, 101)
|
32
|
-
end
|
27
|
+
it 'is foo' do
|
28
|
+
transpec_analysis((transpec_analysis((subject), self, { :should_source_location => [:object, "method(:should).source_location"] }, __FILE__, 41, 48).should be(foo)), self, { :expect_available? => [:context, "self.class.ancestors.any? { |a| a.name.start_with?('RSpec::') } && respond_to?(:expect)"] }, __FILE__, 41, 63)
|
33
29
|
end
|
34
30
|
END
|
35
31
|
end
|
@@ -42,12 +38,10 @@ module Transpec
|
|
42
38
|
context 'when the target includes here document' do
|
43
39
|
let(:source) do
|
44
40
|
<<-END
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
HEREDOC
|
50
|
-
end
|
41
|
+
it 'matches to foo' do
|
42
|
+
subject.should =~ <<-HEREDOC.gsub('foo', 'bar')
|
43
|
+
foo
|
44
|
+
HEREDOC
|
51
45
|
end
|
52
46
|
END
|
53
47
|
end
|
@@ -55,13 +49,10 @@ module Transpec
|
|
55
49
|
# rubocop:disable LineLength
|
56
50
|
let(:expected_source) do
|
57
51
|
<<-END
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
HEREDOC
|
63
|
-
), self, { :arg_is_enumerable? => [:object, "is_a?(Enumerable)"] }, __FILE__, 111, 188)
|
64
|
-
end
|
52
|
+
it 'matches to foo' do
|
53
|
+
transpec_analysis((transpec_analysis((subject), self, { :should_source_location => [:object, "method(:should).source_location"] }, __FILE__, 53, 60).should), self, { :"=~_source_location" => [:object, "method(:=~).source_location"], :expect_available? => [:context, "self.class.ancestors.any? { |a| a.name.start_with?('RSpec::') } && respond_to?(:expect)"] }, __FILE__, 53, 67) =~ transpec_analysis((<<-HEREDOC.gsub('foo', 'bar')), self, { :arg_is_enumerable? => [:object, "is_a?(Enumerable)"] }, __FILE__, 71, 100)
|
54
|
+
foo
|
55
|
+
HEREDOC
|
65
56
|
end
|
66
57
|
END
|
67
58
|
end
|
@@ -75,10 +66,8 @@ module Transpec
|
|
75
66
|
context 'when the target takes block' do
|
76
67
|
let(:source) do
|
77
68
|
<<-END
|
78
|
-
|
79
|
-
|
80
|
-
expect { do_something }.to throw_symbol
|
81
|
-
end
|
69
|
+
it 'raises error' do
|
70
|
+
expect { do_something }.to throw_symbol
|
82
71
|
end
|
83
72
|
END
|
84
73
|
end
|
@@ -86,10 +75,8 @@ module Transpec
|
|
86
75
|
# rubocop:disable LineLength
|
87
76
|
let(:expected_source) do
|
88
77
|
<<-END
|
89
|
-
|
90
|
-
|
91
|
-
transpec_analysis((expect { do_something }), self, { :expect_source_location => [:context, "method(:expect).source_location"] }, __FILE__, 91, 97).to throw_symbol
|
92
|
-
end
|
78
|
+
it 'raises error' do
|
79
|
+
transpec_analysis((expect { do_something }), self, { :expect_source_location => [:context, "method(:expect).source_location"] }, __FILE__, 51, 57).to throw_symbol
|
93
80
|
end
|
94
81
|
END
|
95
82
|
end
|
@@ -103,10 +90,8 @@ module Transpec
|
|
103
90
|
context 'when the target is only the expression in a block' do
|
104
91
|
let(:source) do
|
105
92
|
<<-END
|
106
|
-
|
107
|
-
|
108
|
-
expect
|
109
|
-
end
|
93
|
+
it 'raises error' do
|
94
|
+
expect
|
110
95
|
end
|
111
96
|
END
|
112
97
|
end
|
@@ -114,10 +99,8 @@ module Transpec
|
|
114
99
|
# rubocop:disable LineLength
|
115
100
|
let(:expected_source) do
|
116
101
|
<<-END
|
117
|
-
|
118
|
-
|
119
|
-
transpec_analysis((expect), self, { :expect_source_location => [:context, "method(:expect).source_location"] }, __FILE__, 91, 97)
|
120
|
-
end
|
102
|
+
it 'raises error' do
|
103
|
+
transpec_analysis((expect), self, { :expect_source_location => [:context, "method(:expect).source_location"] }, __FILE__, 51, 57)
|
121
104
|
end
|
122
105
|
END
|
123
106
|
end
|
@@ -131,10 +114,8 @@ module Transpec
|
|
131
114
|
context 'when the target is method invocation without parentheses' do
|
132
115
|
let(:source) do
|
133
116
|
<<-END
|
134
|
-
|
135
|
-
|
136
|
-
expect subject
|
137
|
-
end
|
117
|
+
it 'raises error' do
|
118
|
+
expect subject
|
138
119
|
end
|
139
120
|
END
|
140
121
|
end
|
@@ -142,10 +123,8 @@ module Transpec
|
|
142
123
|
# rubocop:disable LineLength
|
143
124
|
let(:expected_source) do
|
144
125
|
<<-END
|
145
|
-
|
146
|
-
|
147
|
-
transpec_analysis((expect subject), self, { :expect_source_location => [:context, "method(:expect).source_location"] }, __FILE__, 91, 105)
|
148
|
-
end
|
126
|
+
it 'raises error' do
|
127
|
+
transpec_analysis((expect subject), self, { :expect_source_location => [:context, "method(:expect).source_location"] }, __FILE__, 51, 65)
|
149
128
|
end
|
150
129
|
END
|
151
130
|
end
|