summaryrefslogtreecommitdiff
path: root/tool/test
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-28 14:49:40 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-11-28 16:30:40 +0900
commit5a171ee4c05c0ed20ac4b4632e54b23717d5fe16 (patch)
tree963ffde570b6c2c9e0b3e3708b7faa85f2c5c818 /tool/test
parentfb599523cddeb8a2748c0817a12a1915b58c8c63 (diff)
downloadruby-5a171ee4c05c0ed20ac4b4632e54b23717d5fe16.tar.gz
Add tests for sync_default_gems.rb
Diffstat (limited to 'tool/test')
-rwxr-xr-xtool/test/test_sync_default_gems.rb55
1 files changed, 55 insertions, 0 deletions
diff --git a/tool/test/test_sync_default_gems.rb b/tool/test/test_sync_default_gems.rb
new file mode 100755
index 0000000000..7e6a6d830e
--- /dev/null
+++ b/tool/test/test_sync_default_gems.rb
@@ -0,0 +1,55 @@
+#!/usr/bin/ruby
+require 'test/unit'
+require 'stringio'
+require_relative '../sync_default_gems'
+
+module Test_SyncDefaultGems
+ class TestMessageFilter < Test::Unit::TestCase
+ def assert_message_filter(expected, trailers, input, repo = "ruby/test", sha = "0123456789")
+ subject, *expected = expected
+ expected = [
+ "[#{repo}] #{subject}\n",
+ *expected.map {_1+"\n"},
+ "\n",
+ "https://github.com/#{repo}/commit/#{sha[0, 10]}\n",
+ ]
+ if trailers
+ expected << "\n"
+ expected.concat(trailers.map {_1+"\n"})
+ end
+
+ out, err = capture_output do
+ SyncDefaultGems.message_filter(repo, sha, input: StringIO.new(input, "r"))
+ end
+
+ all_assertions do |a|
+ a.for("error") {assert_empty err}
+ a.for("result") {assert_pattern_list(expected, out)}
+ end
+ end
+
+ def test_subject_only
+ expected = [
+ "initial commit",
+ ]
+ assert_message_filter(expected, nil, "initial commit")
+ end
+
+ def test_link_in_parenthesis
+ expected = [
+ "fix (https://github.com/ruby/test/pull/1)",
+ ]
+ assert_message_filter(expected, nil, "fix (#1)")
+ end
+
+ def test_co_authored_by
+ expected = [
+ "commit something",
+ ]
+ trailers = [
+ "Co-Authored-By: git <git@ruby-lang.org>",
+ ]
+ assert_message_filter(expected, trailers, [expected, "", trailers, ""].join("\n"))
+ end
+ end
+end