From cfb8ec81937f64f239ee0c98c9f149f995452696 Mon Sep 17 00:00:00 2001 From: Douglas Eichelberger Date: Sun, 26 Nov 2023 15:36:27 -0800 Subject: [PATCH] Add tests --- Library/Homebrew/test/extend/blank_spec.rb | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Library/Homebrew/test/extend/blank_spec.rb diff --git a/Library/Homebrew/test/extend/blank_spec.rb b/Library/Homebrew/test/extend/blank_spec.rb new file mode 100644 index 0000000000..4c9689020f --- /dev/null +++ b/Library/Homebrew/test/extend/blank_spec.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + +require "extend/blank" + +describe Object do + let(:empty_true) do + Class.new(described_class) do + def empty? + 0 + end + end + end + let(:empty_false) do + Class.new(described_class) do + def empty? + nil + end + end + end + let(:blank) { [empty_true.new, nil, false, "", " ", " \n\t \r ", " ", "\u00a0", [], {}] } + let(:present) { [empty_false.new, described_class.new, true, 0, 1, "a", [nil], { nil => 0 }, Time.now] } + + describe ".blank?" do + it "checks if an object is blank" do + blank.each { |v| expect(v.blank?).to be true } + present.each { |v| expect(v.blank?).to be false } + end + + it "checks if an object is blank with bundled string encodings" do + Encoding.list.reject(&:dummy?).each do |encoding| + expect(" ".encode(encoding).blank?).to be true + expect("a".encode(encoding).blank?).to be false + end + end + end + + describe ".present?" do + it "checks if an object is present" do + blank.each { |v| expect(v.present?).to be false } + present.each { |v| expect(v.present?).to be true } + end + end + + describe ".presence" do + it "returns the object if present, or nil" do + blank.each { |v| expect(v.presence).to be_nil } + present.each { |v| expect(v.presence).to be v } + end + end +end