minitest_to_rspec 0.12.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8f9207756131c32b3622da37695b0da546d38749df1d22ae1f7d1daa1f1f1a5
4
- data.tar.gz: dfb8bb34cd541ed7172822c98ce84db91bb7b99af0bd3f01d907da50a0472af1
3
+ metadata.gz: 0b6e110f3ca9c10dfbc0b55d64f91132df5367984b3b484b6fa5a12dc5fe63ca
4
+ data.tar.gz: dfbd9d42cdd3382f1abb9c84d6a9ac0b45e3aec4c9554203248efca6f01064b2
5
5
  SHA512:
6
- metadata.gz: 45025ed9cdf045697a49d0571811fa14919ba91868044630de17f4436a0f1ffa32c6f172a9b8518eb7139dadce949798caa6a37828101303892d1055c3522001
7
- data.tar.gz: 3ea95cd4da9200505c5c23bf072d084aa37d4994add74f8689e9766061046aa8a68ce6f66adb5c10d325143b3e73a878a86bafc5693088e5016fc4a4d01c7385
6
+ metadata.gz: 7ed6c1df443a56e96b11095962298660cc0826cf709c0c3be628bcc49cbcc8a918cbb12b6904c3bbe67b84b665e0c44db5c599e215ee44302330f14eca9bd317
7
+ data.tar.gz: 66d2051676eb5755589504a8b12f66990eccd37bdcb0e6755d4500e3f75857187479e78b46ed09ff155c5201331cb72dd2eea809542dbfcaa5fe467a8ea49b52
@@ -17,6 +17,23 @@ of [keepachangelog.com][2].
17
17
 
18
18
  - None
19
19
 
20
+ ## 0.13.0 (2018-10-18)
21
+
22
+ ### Breaking Changes
23
+
24
+ - Removed `MinitestToRspec::VERSION`, please use `MinitestToRspec.gem_version`
25
+
26
+ ### Added
27
+
28
+ - [#26](https://github.com/jaredbeck/minitest_to_rspec/pull/26) -
29
+ Support `Test::Unit::TestCase`
30
+ - [#25](https://github.com/jaredbeck/minitest_to_rspec/pull/25) -
31
+ Support `assert_empty`, `assert_kind_of`, `assert_instance_of`
32
+
33
+ ### Fixed
34
+
35
+ - None
36
+
20
37
  ## 0.12.0 (2018-03-11)
21
38
 
22
39
  ### Breaking Changes
@@ -32,13 +32,7 @@ module MinitestToRspec
32
32
  attr_reader :source, :target
33
33
 
34
34
  def initialize(args)
35
- opts = Trollop.options(args) do
36
- version MinitestToRspec::VERSION
37
- banner BANNER
38
- opt :rails, OPT_RAILS, short: :none
39
- opt :mocha, OPT_MOCHA, short: :none
40
- end
41
-
35
+ opts = parse_args(args)
42
36
  @rails = opts[:rails]
43
37
  @mocha = opts[:mocha]
44
38
  case args.length
@@ -101,6 +95,15 @@ module MinitestToRspec
101
95
  .gsub(/_test.rb\Z/, '_spec.rb')
102
96
  end
103
97
 
98
+ def parse_args(args)
99
+ Trollop.options(args) do
100
+ version MinitestToRspec.gem_version.to_s
101
+ banner BANNER
102
+ opt :rails, OPT_RAILS, short: :none
103
+ opt :mocha, OPT_MOCHA, short: :none
104
+ end
105
+ end
106
+
104
107
  def read_source
105
108
  File.read(source)
106
109
  end
@@ -45,6 +45,10 @@ module MinitestToRspec
45
45
  @_block ||= @exp[3..-1] || []
46
46
  end
47
47
 
48
+ def test_unit_test_case?
49
+ lineage?(parent, %i[Test Unit TestCase])
50
+ end
51
+
48
52
  def draper_test_case?
49
53
  lineage?(parent, %i[Draper TestCase])
50
54
  end
@@ -78,23 +82,24 @@ module MinitestToRspec
78
82
  active_support_test_case? ||
79
83
  action_controller_test_case? ||
80
84
  action_mailer_test_case? ||
85
+ test_unit_test_case? ||
81
86
  draper_test_case?
82
87
  end
83
88
 
84
89
  private
85
90
 
86
- def ancestor_name(exp, index)
87
- assert_sexp_type(:colon2, exp)
88
- ancestor = exp[index + 1]
89
- sexp_type?(:const, ancestor) ? ancestor[1] : ancestor
91
+ def ancestor_names(exp)
92
+ return [exp] if exp.is_a?(Symbol)
93
+
94
+ sexp_type?(:colon2, exp) || sexp_type?(:const, exp) ||
95
+ raise(TypeError, "Expected :const or :colon2, got #{exp.inspect}")
96
+
97
+ exp.sexp_body.flat_map { |entry| ancestor_names(entry) }
90
98
  end
91
99
 
92
100
  def lineage?(exp, names)
93
101
  assert_sexp_type(:colon2, exp)
94
- exp.length == names.length + 1 &&
95
- names.each_with_index.all? { |name, ix|
96
- name.to_sym == ancestor_name(exp, ix).to_sym
97
- }
102
+ ancestor_names(exp) == names
98
103
  end
99
104
  end
100
105
  end
@@ -55,10 +55,22 @@ module MinitestToRspec
55
55
  matcher(:be_nil)
56
56
  end
57
57
 
58
+ def be_empty
59
+ matcher(:be_empty)
60
+ end
61
+
58
62
  def be_truthy
59
63
  matcher(:be_truthy)
60
64
  end
61
65
 
66
+ def be_a(exp)
67
+ matcher(:be_a, exp)
68
+ end
69
+
70
+ def be_instance_of(exp)
71
+ matcher(:be_instance_of, exp)
72
+ end
73
+
62
74
  def call_to_question_mark?(exp)
63
75
  sexp_type?(:call, exp) && Model::Call.new(exp).question_mark_method?
64
76
  end
@@ -95,12 +107,28 @@ module MinitestToRspec
95
107
  expect_to_not(be_nil, @exp.arguments[0], true)
96
108
  end
97
109
 
110
+ def method_assert_empty
111
+ expect_to(be_empty, @exp.arguments[0], true)
112
+ end
113
+
98
114
  def method_assert_not_equal
99
115
  expected = @exp.arguments[0]
100
116
  calculated = @exp.arguments[1]
101
117
  expect_to_not(eq(expected), calculated, true)
102
118
  end
103
119
 
120
+ def method_assert_kind_of
121
+ expected = @exp.arguments[0]
122
+ calculated = @exp.arguments[1]
123
+ expect_to(be_a(expected), calculated, true)
124
+ end
125
+
126
+ def method_assert_instance_of
127
+ expected = @exp.arguments[0]
128
+ calculated = @exp.arguments[1]
129
+ expect_to(be_instance_of(expected), calculated, true)
130
+ end
131
+
104
132
  def method_expects
105
133
  if @exp.num_arguments == 1 &&
106
134
  %i[lit hash].include?(@exp.arguments.first.sexp_type)
@@ -2,9 +2,7 @@
2
2
 
3
3
  #:nodoc:
4
4
  module MinitestToRspec
5
- VERSION = '0.12.0'
6
-
7
5
  def self.gem_version
8
- ::Gem::Version.new(VERSION)
6
+ ::Gem::Version.new('0.13.0')
9
7
  end
10
8
  end
@@ -6,7 +6,7 @@ require 'minitest_to_rspec/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = 'minitest_to_rspec'
9
- spec.version = MinitestToRspec::VERSION
9
+ spec.version = MinitestToRspec.gem_version.to_s
10
10
  spec.executables << 'mt2rspec'
11
11
  spec.authors = ['Jared Beck']
12
12
  spec.email = ['jared@jaredbeck.com']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest_to_rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared Beck
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-12 00:00:00.000000000 Z
11
+ date: 2018-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby2ruby