34 lines
962 B
Ruby
34 lines
962 B
Ruby
|
require 'spec_helper'
|
||
|
describe Gitlab::Utils::MergeHash do
|
||
|
describe '.crush' do
|
||
|
it 'can flatten a hash to each element' do
|
||
|
input = { hello: "world", this: { crushes: ["an entire", "hash"] } }
|
||
|
expected_result = [:hello, "world", :this, :crushes, "an entire", "hash"]
|
||
|
|
||
|
expect(described_class.crush(input)).to eq(expected_result)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '.elements' do
|
||
|
it 'deep merges an array of elements' do
|
||
|
input = [{ hello: ["world"] },
|
||
|
{ hello: "Everyone" },
|
||
|
{ hello: { greetings: ['Bonjour', 'Hello', 'Hallo', 'Dzień dobry'] } },
|
||
|
"Goodbye", "Hallo"]
|
||
|
expected_output = [
|
||
|
{
|
||
|
hello:
|
||
|
[
|
||
|
"world",
|
||
|
"Everyone",
|
||
|
{ greetings: ['Bonjour', 'Hello', 'Hallo', 'Dzień dobry'] }
|
||
|
]
|
||
|
},
|
||
|
"Goodbye"
|
||
|
]
|
||
|
|
||
|
expect(described_class.merge(input)).to eq(expected_output)
|
||
|
end
|
||
|
end
|
||
|
end
|