Sha256: 41c48ceb76b5dae4400a2edf6a0de858bc18e1f76d6368f6b50dbdda3e4d03d8

Contents?: true

Size: 965 Bytes

Versions: 39

Compression:

Stored size: 965 Bytes

Contents

describe 'Array#__nanoc_symbolize_keys_recursively' do
  it 'should convert keys to symbols' do
    array_old = [:abc, 'xyz', { 'foo' => 'bar', :baz => :qux }]
    array_new = [:abc, 'xyz', { foo: 'bar', baz: :qux }]
    array_old.__nanoc_symbolize_keys_recursively.must_equal array_new
  end
end

describe 'Array#__nanoc_freeze_recursively' do
  include Nanoc::TestHelpers

  it 'should prevent first-level elements from being modified' do
    array = [:a, [:b, :c], :d]
    array.__nanoc_freeze_recursively

    assert_raises_frozen_error do
      array[0] = 123
    end
  end

  it 'should prevent second-level elements from being modified' do
    array = [:a, [:b, :c], :d]
    array.__nanoc_freeze_recursively

    assert_raises_frozen_error do
      array[1][0] = 123
    end
  end

  it 'should not freeze infinitely' do
    a = []
    a << a

    a.__nanoc_freeze_recursively

    assert a.frozen?
    assert a[0].frozen?
    assert_equal a, a[0]
  end
end

Version data entries

39 entries across 39 versions & 1 rubygems

Version Path
nanoc-4.4.5 test/base/core_ext/array_spec.rb
nanoc-4.4.4 test/base/core_ext/array_spec.rb
nanoc-4.4.3 test/base/core_ext/array_spec.rb
nanoc-4.4.2 test/base/core_ext/array_spec.rb
nanoc-4.4.1 test/base/core_ext/array_spec.rb
nanoc-4.4.0 test/base/core_ext/array_spec.rb
nanoc-4.3.8 test/base/core_ext/array_spec.rb
nanoc-4.3.7 test/base/core_ext/array_spec.rb
nanoc-4.3.6 test/base/core_ext/array_spec.rb
nanoc-4.3.5 test/base/core_ext/array_spec.rb
nanoc-4.3.4 test/base/core_ext/array_spec.rb
nanoc-4.3.3 test/base/core_ext/array_spec.rb
nanoc-4.3.2 test/base/core_ext/array_spec.rb
nanoc-4.3.1 test/base/core_ext/array_spec.rb
nanoc-4.3.0 test/base/core_ext/array_spec.rb
nanoc-4.2.4 test/base/core_ext/array_spec.rb
nanoc-4.2.3 test/base/core_ext/array_spec.rb
nanoc-4.2.2 test/base/core_ext/array_spec.rb
nanoc-4.2.1 test/base/core_ext/array_spec.rb
nanoc-4.2.0 test/base/core_ext/array_spec.rb