From db27f446d0a2a2a49d08948014718b16c349b92f Mon Sep 17 00:00:00 2001 From: Elizabeth Tackett Date: Mon, 3 Aug 2020 11:21:50 -0500 Subject: [PATCH] WIP repology module tests --- Library/Homebrew/test/utils/repology_spec.rb | 73 ++++++++++++++++++++ Library/Homebrew/utils/repology.rb | 2 +- 2 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 Library/Homebrew/test/utils/repology_spec.rb diff --git a/Library/Homebrew/test/utils/repology_spec.rb b/Library/Homebrew/test/utils/repology_spec.rb new file mode 100644 index 0000000000..a90c67eafa --- /dev/null +++ b/Library/Homebrew/test/utils/repology_spec.rb @@ -0,0 +1,73 @@ +# frozen_string_literal: true + +require "utils/repology" + +describe Repology do + describe "formula_data", :integration_test do + it "returns nil for invalid Homebrew Formula" do + expect(described_class.formula_data("invalidName")).to be_nil + end + + it "validates Homebrew Formula by name" do + install_test_formula "testball" + expect(described_class.formula_data("testball")).not_to be_nil + end + end + + describe "query_api" do + it "returns a hash of data" do + response = described_class.query_api + + expect(response).not_to be_nil + expect(response).to be_a(Hash) + expect(response.size).not_to eq(0) + # first hash in array val should include "repo" key/val pair + expect(response[response.keys[0]].first).to include("repo") + end + end + + describe "single_package_query" do + it "returns nil for non-existent package" do + response = described_class.single_package_query("invalidName") + + expect(response).to be_nil + end + + it "returns a hash for existing package" do + response = described_class.single_package_query("openclonk") + + expect(response).not_to be_nil + expect(response).to be_a(Hash) + end + end + + describe "parse_api_response" do + response = described_class.parse_api_response + + it "returns a hash of data" do + expect(response).not_to be_nil + expect(response).to be_a(Hash) + end + end + + describe "format_package", :integration_test do + it "returns nil if package is not a valid formula" do + invalid_formula_response = described_class.format_package("invalidName", "5.5.5") + + expect(invalid_formula_response).to be_nil + end + + it "returns hash with data for valid formula" do + install_test_formula "testball" + formatted_data = described_class.format_package("testball", "0.1") + + expect(formatted_data).not_to be_nil + expect(formatted_data).to be_a(Hash) + expect(formatted_data[:repology_latest_version]).not_to be_nil + expect(formatted_data[:current_formula_version]).not_to be_nil + expect(formatted_data[:current_formula_version]).to eq("0.1") + expect(formatted_data).to include(:livecheck_latest_version) + expect(formatted_data).to include(:open_pull_requests) + end + end +end diff --git a/Library/Homebrew/utils/repology.rb b/Library/Homebrew/utils/repology.rb index c40b7ab378..15ab2ca01f 100644 --- a/Library/Homebrew/utils/repology.rb +++ b/Library/Homebrew/utils/repology.rb @@ -25,7 +25,7 @@ module Repology repo["repo"] == "homebrew" end - homebrew.empty? ? nil : { name: data } + homebrew.empty? ? nil : { name => data } end def parse_api_response