xml_spec: Standardize XPath expressions

The XML examples used in `Xml` strategy tests is known/predictable,
so the related XPaths can be explicit instead of loose.
This commit is contained in:
Sam Ford 2023-11-17 20:04:02 -05:00
parent 9bfe423a5a
commit 5a3632efa4
No known key found for this signature in database
GPG Key ID: 7AF5CBEE1DD6F76D

View File

@ -183,11 +183,11 @@ describe Homebrew::Livecheck::Strategy::Xml do
# Returning an array of strings from block # Returning an array of strings from block
expect(xml.versions_from_content(content_version_text, regex) do |xml, regex| expect(xml.versions_from_content(content_version_text, regex) do |xml, regex|
xml.get_elements("versions//version").map { |item| item.text[regex, 1] } xml.get_elements("/versions/version").map { |item| item.text[regex, 1] }
end).to eq(content_matches) end).to eq(content_matches)
expect(xml.versions_from_content(content_version_attr, regex) do |xml, regex| expect(xml.versions_from_content(content_version_attr, regex) do |xml, regex|
xml.get_elements("items//item").map do |item| xml.get_elements("/items/item").map do |item|
version = item["version"] version = item["version"]
next if version.blank? next if version.blank?
@ -214,7 +214,7 @@ describe Homebrew::Livecheck::Strategy::Xml do
describe "::find_versions?" do describe "::find_versions?" do
it "finds versions in provided_content using a block" do it "finds versions in provided_content using a block" do
expect(xml.find_versions(url: http_url, regex: regex, provided_content: content_version_text) do |xml, regex| expect(xml.find_versions(url: http_url, regex: regex, provided_content: content_version_text) do |xml, regex|
xml.get_elements("versions//version").map { |item| item.text[regex, 1] } xml.get_elements("/versions/version").map { |item| item.text[regex, 1] }
end).to eq(find_versions_cached_return_hash) end).to eq(find_versions_cached_return_hash)
# NOTE: A regex should be provided using the `#regex` method in a # NOTE: A regex should be provided using the `#regex` method in a
@ -223,7 +223,7 @@ describe Homebrew::Livecheck::Strategy::Xml do
# regex isn't provided. # regex isn't provided.
expect(xml.find_versions(url: http_url, provided_content: content_version_text) do |xml| expect(xml.find_versions(url: http_url, provided_content: content_version_text) do |xml|
regex = /^v?(\d+(?:\.\d+)+)$/i.freeze regex = /^v?(\d+(?:\.\d+)+)$/i.freeze
xml.get_elements("versions//version").map { |item| item.text[regex, 1] } xml.get_elements("/versions/version").map { |item| item.text[regex, 1] }
end).to eq(find_versions_cached_return_hash.merge({ regex: nil })) end).to eq(find_versions_cached_return_hash.merge({ regex: nil }))
end end