54 lines
1.1 KiB
Ruby
54 lines
1.1 KiB
Ruby
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: BUSL-1.1
|
|
|
|
require File.expand_path("../../../base", __FILE__)
|
|
|
|
require "vagrant/util/scoped_hash_override"
|
|
|
|
describe Vagrant::Util::ScopedHashOverride do
|
|
let(:klass) do
|
|
Class.new do
|
|
extend Vagrant::Util::ScopedHashOverride
|
|
end
|
|
end
|
|
|
|
it "should not mess with non-overrides" do
|
|
original = {
|
|
key: "value",
|
|
another_value: "foo"
|
|
}
|
|
|
|
expect(klass.scoped_hash_override(original, "foo")).to eq(original)
|
|
end
|
|
|
|
it "should override if the scope matches" do
|
|
original = {
|
|
key: "value",
|
|
scope__key: "replaced"
|
|
}
|
|
|
|
expected = {
|
|
key: "replaced",
|
|
scope__key: "replaced"
|
|
}
|
|
|
|
expect(klass.scoped_hash_override(original, "scope")).to eq(expected)
|
|
end
|
|
|
|
it "should ignore non-matching scopes" do
|
|
original = {
|
|
key: "value",
|
|
scope__key: "replaced",
|
|
another__key: "value"
|
|
}
|
|
|
|
expected = {
|
|
key: "replaced",
|
|
scope__key: "replaced",
|
|
another__key: "value"
|
|
}
|
|
|
|
expect(klass.scoped_hash_override(original, "scope")).to eq(expected)
|
|
end
|
|
end
|