Sha256: adc668497c97f6d89db3d657933f1ff2160bb356660a4a99607e49a7266e6d42

Contents?: true

Size: 888 Bytes

Versions: 15

Compression:

Stored size: 888 Bytes

Contents

# frozen_string_literal: true

require 'spec_helper'

describe Anyway::Ext::DeepDup do
  using Anyway::Ext::DeepDup

  it "duplicates nested arrays and hashes", :aggregate_failures do
    source = {
      a: 1,
      b: 'hello',
      c: {
        id: 1,
        list: [1, 2, { name: 'John' }]
      },
      d: [{ id: 1 }, { id: 2 }]
    }

    dup = source.deep_dup

    expect(dup[:a]).to eq 1
    expect(dup[:b]).to eq 'hello'
    expect(dup[:c]).to eq(
      id: 1,
      list: [1, 2, { name: 'John' }]
    )
    expect(dup[:d]).to eq(
      [{ id: 1 }, { id: 2 }]
    )

    expect(dup[:c]).not_to be_equal(source[:c])
    expect(dup[:c][:list]).not_to be_equal(source[:c][:list])
    expect(dup[:c][:list].last).not_to be_equal(source[:c][:list].last)

    expect(dup[:d].first).not_to be_equal(source[:d].first)
    expect(dup[:d].last).not_to be_equal(source[:d].last)
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
anyway_config-1.4.4 spec/ext/deep_dup_spec.rb
anyway_config-1.4.3 spec/ext/deep_dup_spec.rb
anyway_config-1.4.2 spec/ext/deep_dup_spec.rb
anyway_config-1.4.1 spec/ext/deep_dup_spec.rb
anyway_config-1.4.0 spec/ext/deep_dup_spec.rb
anyway_config-1.3.1 spec/ext/deep_dup_spec.rb
anyway_config-1.3.0 spec/ext/deep_dup_spec.rb
anyway_config-1.2.0 spec/ext/deep_dup_spec.rb
anyway_config-1.1.3 spec/ext/deep_dup_spec.rb
anyway_config-1.1.2 spec/ext/deep_dup_spec.rb
anyway_config-1.1.1 spec/ext/deep_dup_spec.rb
anyway_config-1.1.0 spec/ext/deep_dup_spec.rb
anyway_config-1.0.0 spec/ext/deep_dup_spec.rb
anyway_config-1.0.0.rc1 spec/ext/deep_dup_spec.rb
anyway_config-0.5.1.rc1 spec/ext/deep_dup_spec.rb