From c4ca9d3c3608fbd87cb9fb4391cf7a81528b2fb6 Mon Sep 17 00:00:00 2001 From: Aditya Prakash Date: Fri, 2 Oct 2020 21:27:45 +0530 Subject: [PATCH] Add documentation_uri to searchable test metadata Also, adds test to ensure funding_uri method exists on Links. --- test/unit/links_test.rb | 31 ++++++++++++++++++++++++++++ test/unit/rubygem_searchable_test.rb | 29 ++++++++++++++------------ 2 files changed, 47 insertions(+), 13 deletions(-) diff --git a/test/unit/links_test.rb b/test/unit/links_test.rb index db629078b9f..f985475e602 100644 --- a/test/unit/links_test.rb +++ b/test/unit/links_test.rb @@ -55,4 +55,35 @@ class LinksTest < ActiveSupport::TestCase assert links.homepage_uri end + + context "metadata includes non whitelisted uri key" do + setup do + metadata = { + "homepage_uri" => "https://example.com", + "source_code_uri" => "https://example.com", + "wiki_uri" => "https://example.com", + "mailing_list_uri" => "https://example.com", + "bug_tracker_uri" => "https://example.com", + "funding_uri" => "https://example.com", + "documentation_uri" => "https://example.com", + "changelog_uri" => "https://example.com", + "non_whitelisted_uri" => "https://example.com" + } + + version = build(:version, metadata: metadata) + rubygem = build(:rubygem, versions: [version]) + @links = rubygem.links(version) + end + + should "create method for whitelisted keys" do + whitelisted_keys = Links::LINKS.values.reject! { |k| k == "download_uri" } + whitelisted_keys.each do |key| + assert_equal "https://example.com", @links.send(key), "value doesn't match for method: #{key}" + end + end + + should "not create method for non whitelisted key" do + refute @links.respond_to?("non_whitelisted_uri") + end + end end diff --git a/test/unit/rubygem_searchable_test.rb b/test/unit/rubygem_searchable_test.rb index cc8cf57bed8..c41fb7232b9 100644 --- a/test/unit/rubygem_searchable_test.rb +++ b/test/unit/rubygem_searchable_test.rb @@ -17,12 +17,13 @@ class RubygemSearchableTest < ActiveSupport::TestCase summary: "some summary", description: "some description", metadata: { - "homepage_uri" => "http://example.com", - "source_code_uri" => "http://example.com", - "wiki_uri" => "http://example.com", - "mailing_list_uri" => "http://example.com", - "bug_tracker_uri" => "http://example.com", - "funding_uri" => "http://example.com" + "homepage_uri" => "http://example.com", + "source_code_uri" => "http://example.com", + "wiki_uri" => "http://example.com", + "mailing_list_uri" => "http://example.com", + "bug_tracker_uri" => "http://example.com", + "funding_uri" => "http://example.com", + "documentation_uri" => "http://example.com" }) end @@ -44,12 +45,13 @@ class RubygemSearchableTest < ActiveSupport::TestCase info: "some description", licenses: "MIT", metadata: { - "homepage_uri" => "http://example.com", - "source_code_uri" => "http://example.com", - "wiki_uri" => "http://example.com", - "mailing_list_uri" => "http://example.com", - "bug_tracker_uri" => "http://example.com", - "funding_uri" => "http://example.com" + "homepage_uri" => "http://example.com", + "source_code_uri" => "http://example.com", + "wiki_uri" => "http://example.com", + "mailing_list_uri" => "http://example.com", + "bug_tracker_uri" => "http://example.com", + "funding_uri" => "http://example.com", + "documentation_uri" => "http://example.com" }, sha: "b5d4045c3f466fa91fe2cc6abe79232a1a57cdf104f7a26e716e0a1e2789df78", project_uri: "http://localhost/gems/example_gem", @@ -60,6 +62,7 @@ class RubygemSearchableTest < ActiveSupport::TestCase mailing_list_uri: "http://example.com", source_code_uri: "http://example.com", bug_tracker_uri: "http://example.com", + funding_uri: "http://example.com", yanked: false, summary: "some summary", description: "some description", @@ -68,7 +71,7 @@ class RubygemSearchableTest < ActiveSupport::TestCase } expected_hash.each do |k, v| - assert_equal v, json[k] + assert_equal v, json[k], "value doesn't match for key: #{k}" end end end