vaguerent/test/unit/vagrant/util/presence_test.rb

54 lines
1.3 KiB
Ruby

# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
require File.expand_path("../../../base", __FILE__)
require "vagrant/util/presence"
describe Vagrant::Util::Presence do
subject { described_class }
describe "#presence" do
it "returns false for nil" do
expect(subject.presence(nil)).to be(false)
end
it "returns false for false" do
expect(subject.presence(false)).to be(false)
end
it "returns false for an empty string" do
expect(subject.presence("")).to be(false)
end
it "returns false for a string with null bytes" do
expect(subject.presence("\u0000")).to be(false)
end
it "returns false for an empty array" do
expect(subject.presence([])).to be(false)
end
it "returns false for an array with nil values" do
expect(subject.presence([nil, nil])).to be(false)
end
it "returns false for an empty hash" do
expect(subject.presence({})).to be(false)
end
it "returns true for true" do
expect(subject.presence(true)).to be(true)
end
it "returns the object for an object" do
obj = Object.new
expect(subject.presence(obj)).to be(obj)
end
it "returns the class for a class" do
expect(subject.presence(String)).to be(String)
end
end
end