0e616d71fb
We have a Danger check that warns if you made changes in app/ but not in spec/. However, this only checked for changed files - not new files. If you added an app file with no specs, it wouldn't warn; and it would warn erroneously if you added a missing spec file while changing a file in app/.
20 lines
791 B
Ruby
20 lines
791 B
Ruby
# frozen_string_literal: true
|
|
|
|
NO_SPECS_LABELS = %w[backstage Documentation QA].freeze
|
|
NO_NEW_SPEC_MESSAGE = <<~MSG.freeze
|
|
You've made some app changes, but didn't add any tests.
|
|
That's OK as long as you're refactoring existing code,
|
|
but please consider adding any of the %<labels>s labels.
|
|
MSG
|
|
|
|
def presented_no_changelog_labels
|
|
NO_SPECS_LABELS.map { |label| "~#{label}" }.join(', ')
|
|
end
|
|
|
|
has_app_changes = !helper.all_changed_files.grep(%r{\A(ee/)?(app|lib|db/(geo/)?(post_)?migrate)/}).empty?
|
|
has_spec_changes = !helper.all_changed_files.grep(%r{\A(ee/)?spec/}).empty?
|
|
new_specs_needed = (gitlab.mr_labels & NO_SPECS_LABELS).empty?
|
|
|
|
if has_app_changes && !has_spec_changes && new_specs_needed
|
|
warn format(NO_NEW_SPEC_MESSAGE, labels: presented_no_changelog_labels), sticky: false
|
|
end
|