Sha256: 50b2b5d63860508eae5927b932f24a485843c39fea02a81b4929eefb92d17d77

Contents?: true

Size: 677 Bytes

Versions: 12

Compression:

Stored size: 677 Bytes

Contents

# frozen_string_literal: true

require 'spec_helper'
require 'anyway/ext/deep_freeze'

describe Anyway::Ext::DeepFreeze do
  using Anyway::Ext::DeepFreeze

  it "freezes 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_freeze

    expect(dup).to be_frozen
    expect(dup[:c]).to be_frozen
    expect(dup[:d]).to be_frozen

    expect(dup[:c][:list]).to be_frozen
    expect(dup[:c][:list].last).to be_frozen

    expect(dup[:d].first).to be_frozen
    expect(dup[:d].last).to be_frozen
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

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