54 lines
1.3 KiB
Ruby
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
|