|
5 | 5 | require "active_support/testing/autorun"
|
6 | 6 | require "rails/test_unit/test_parser"
|
7 | 7 |
|
8 |
| -class TestParserTest < ActiveSupport::TestCase |
9 |
| - def test_parser |
10 |
| - example_test = <<~RUBY |
11 |
| - require "test_helper" |
| 8 | +class TestParserTestFixture < ActiveSupport::TestCase |
| 9 | + def test_method |
| 10 | + assert true |
12 | 11 |
|
13 |
| - class ExampleTest < ActiveSupport::TestCase |
14 |
| - def test_method |
15 |
| - assert true |
| 12 | + assert true |
| 13 | + end |
16 | 14 |
|
| 15 | + def test_oneline; assert true; end |
17 | 16 |
|
18 |
| - end |
| 17 | + test "declarative" do |
| 18 | + assert true |
| 19 | + |
| 20 | + assert true |
| 21 | + end |
19 | 22 |
|
20 |
| - def test_oneline; assert true; end |
| 23 | + test("declarative w/parens") do |
| 24 | + assert true |
| 25 | + end |
21 | 26 |
|
22 |
| - test "declarative" do |
23 |
| - assert true |
24 |
| - end |
| 27 | + self.test "declarative explicit receiver" do |
| 28 | + assert true |
25 | 29 |
|
26 |
| - test("declarative w/parens") do |
27 |
| - assert true |
| 30 | + assert true |
| 31 | + end |
28 | 32 |
|
29 |
| - end |
| 33 | + test("declarative oneline") { assert true } |
30 | 34 |
|
31 |
| - self.test "declarative explicit receiver" do |
32 |
| - assert true |
33 |
| - end |
| 35 | + test("declarative oneline do") do assert true end |
34 | 36 |
|
35 |
| - test("declarative oneline") { assert true } |
| 37 | + test("declarative multiline w/ braces") { |
| 38 | + assert true |
| 39 | + assert_not false |
| 40 | + } |
| 41 | +end |
36 | 42 |
|
37 |
| - test("declarative oneline do") do assert true end |
| 43 | +class TestParserTest < ActiveSupport::TestCase |
| 44 | + def test_parser |
| 45 | + actual = |
| 46 | + TestParserTestFixture |
| 47 | + .instance_methods(false) |
| 48 | + .map { |method| TestParserTestFixture.instance_method(method) } |
| 49 | + .sort_by { |method| method.source_location[1] } |
| 50 | + .map { |method| [method.name, *Rails::TestUnit::TestParser.definition_for(method)] } |
38 | 51 |
|
39 |
| - test("declarative multiline w/ braces") { |
40 |
| - assert true |
41 |
| - refute false |
42 |
| - } |
43 |
| - end |
44 |
| - RUBY |
| 52 | + expected = [ |
| 53 | + [:test_method, __FILE__, 9..13], |
| 54 | + [:test_oneline, __FILE__, 15..15], |
| 55 | + [:test_declarative, __FILE__, 17..21], |
| 56 | + [:"test_declarative_w/parens", __FILE__, 23..25], |
| 57 | + [:test_declarative_explicit_receiver, __FILE__, 27..31], |
| 58 | + [:test_declarative_oneline, __FILE__, 33..33], |
| 59 | + [:test_declarative_oneline_do, __FILE__, 35..35], |
| 60 | + [:"test_declarative_multiline_w/_braces", __FILE__, 37..40] |
| 61 | + ] |
45 | 62 |
|
46 |
| - actual_map = Rails::TestUnit::TestParser.definitions_for(example_test, "example_test.rb") |
47 |
| - expected_map = { |
48 |
| - 4 => 8, # test_method |
49 |
| - 10 => 10, # test_oneline |
50 |
| - 12 => 14, # declarative |
51 |
| - 16 => 19, # declarative w/parens |
52 |
| - 21 => 23, # declarative explicit receiver |
53 |
| - 25 => 25, # declarative oneline |
54 |
| - 27 => 27, # declarative oneilne do |
55 |
| - 29 => 32 # declarative multiline w/braces |
56 |
| - } |
57 |
| - assert_equal expected_map, actual_map |
| 63 | + assert_equal expected, actual |
58 | 64 | end
|
59 | 65 | end
|
0 commit comments