|
1 | 1 | # frozen_string_literal: true
|
2 | 2 |
|
| 3 | +require "active_support/deprecator" |
3 | 4 | require "active_support/test_case"
|
4 | 5 | require "active_support/testing/autorun"
|
5 | 6 | require "rails/test_unit/test_parser"
|
6 | 7 |
|
7 |
| -class TestParserTest < ActiveSupport::TestCase |
8 |
| - def test_parser |
9 |
| - example_test = <<~RUBY |
10 |
| - require "test_helper" |
| 8 | +class TestParserTestFixture < ActiveSupport::TestCase |
| 9 | + def test_method |
| 10 | + assert true |
11 | 11 |
|
12 |
| - class ExampleTest < ActiveSupport::TestCase |
13 |
| - def test_method |
14 |
| - assert true |
| 12 | + assert true |
| 13 | + end |
15 | 14 |
|
| 15 | + def test_oneline; assert true; end |
16 | 16 |
|
17 |
| - end |
| 17 | + test "declarative" do |
| 18 | + assert true |
| 19 | + |
| 20 | + assert true |
| 21 | + end |
18 | 22 |
|
19 |
| - def test_oneline; assert true; end |
| 23 | + test("declarative w/parens") do |
| 24 | + assert true |
| 25 | + end |
20 | 26 |
|
21 |
| - test "declarative" do |
22 |
| - assert true |
23 |
| - end |
| 27 | + self.test "declarative explicit receiver" do |
| 28 | + assert true |
24 | 29 |
|
25 |
| - test("declarative w/parens") do |
26 |
| - assert true |
| 30 | + assert true |
| 31 | + end |
27 | 32 |
|
28 |
| - end |
| 33 | + test("declarative oneline") { assert true } |
29 | 34 |
|
30 |
| - self.test "declarative explicit receiver" do |
31 |
| - assert true |
32 |
| - end |
| 35 | + test("declarative oneline do") do assert true end |
33 | 36 |
|
34 |
| - test("declarative oneline") { assert true } |
| 37 | + test("declarative multiline w/ braces") { |
| 38 | + assert true |
| 39 | + assert_not false |
| 40 | + } |
| 41 | +end |
35 | 42 |
|
36 |
| - 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)] } |
37 | 51 |
|
38 |
| - test("declarative multiline w/ braces") { |
39 |
| - assert true |
40 |
| - refute false |
41 |
| - } |
42 |
| - end |
43 |
| - 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 | + ] |
44 | 62 |
|
45 |
| - parser = Rails::TestUnit::TestParser.new(example_test, "example_test.rb") |
46 |
| - expected_map = { |
47 |
| - 4 => 8, # test_method |
48 |
| - 10 => 10, # test_oneline |
49 |
| - 12 => 14, # declarative |
50 |
| - 16 => 19, # declarative w/parens |
51 |
| - 21 => 23, # declarative explicit receiver |
52 |
| - 25 => 25, # declarative oneline |
53 |
| - 27 => 27, # declarative oneilne do |
54 |
| - 29 => 32 # declarative multiline w/braces |
55 |
| - } |
56 |
| - assert_equal expected_map, parser.parse |
| 63 | + assert_equal expected, actual |
57 | 64 | end
|
58 | 65 | end
|
0 commit comments