diff options
Diffstat (limited to 'tooling/danger/specs.rb')
-rw-r--r-- | tooling/danger/specs.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/tooling/danger/specs.rb b/tooling/danger/specs.rb index f95a798d53e..5359e71f8cc 100644 --- a/tooling/danger/specs.rb +++ b/tooling/danger/specs.rb @@ -90,15 +90,17 @@ module Tooling changed_lines.each_with_index do |changed_line, i| next unless changed_line =~ RSPEC_TOP_LEVEL_DESCRIBE_REGEX - next_line_in_file = file_lines[file_lines.find_index(changed_line.delete_prefix('+')) + 1] - - if changed_line.include?(FEATURE_CATEGORY_KEYWORD) || next_line_in_file.to_s.include?(FEATURE_CATEGORY_KEYWORD) - next - end - line_number = file_lines.find_index(changed_line.delete_prefix('+')) next unless line_number + # Get the top level RSpec.describe line and the next 5 lines + lines_to_check = file_lines[line_number, 5] + # Remove all the lines after the first one that ends in `do` + last_line_number_of_describe_declaration = lines_to_check.index { |line| line.end_with?(' do') } + lines_to_check = lines_to_check[0..last_line_number_of_describe_declaration] + + next if lines_to_check.any? { |line| line.include?(FEATURE_CATEGORY_KEYWORD) } + suggested_line = file_lines[line_number] markdown(comment(FEATURE_CATEGORY_SUGGESTION, suggested_line), file: filename, line: line_number.succ) |