diff options
-rw-r--r-- | spec/support/reference_filter_spec_helper.rb | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/spec/support/reference_filter_spec_helper.rb b/spec/support/reference_filter_spec_helper.rb index 06c39e1ada5..d2766615ccb 100644 --- a/spec/support/reference_filter_spec_helper.rb +++ b/spec/support/reference_filter_spec_helper.rb @@ -10,6 +10,25 @@ module ReferenceFilterSpecHelper Rails.application.routes.url_helpers end + # Modify a reference to make it invalid + # + # Commit SHAs get reversed, IDs get incremented by 1 + # + # reference - String reference to modify + # + # Returns a String + def invalidate_reference(reference) + if reference =~ /\A(.+)?.\d+\z/ + # Integer-based reference with optional project prefix + reference.gsub(/\d+\z/) { |i| i.to_i + 1 } + elsif reference =~ /\A(.+@)?(\h{6,40}\z)/ + # SHA-based reference with optional prefix + reference.gsub(/\h{6,40}\z/) { |v| v.reverse } + else + reference + end + end + # Perform `call` on the described class # # Automatically passes the current `project` value to the context if none is |