Sha256: 5ac25a532bec89cb7f0ab991a2807157cd89cf44ba5aa1ff60828552a6497594

Contents?: true

Size: 1.54 KB

Versions: 1

Compression:

Stored size: 1.54 KB

Contents

require 'spec_helper'

module MongoProfiler
  describe Util do

    describe '.deep_keys' do
      it 'iterates over arrays' do
        hash = {
          key1: [{ 'key1_sub1' => 'key1_sub1_value', key1_sub2: [ 'key1_sub2_sub1' => {}] }, 'test'],
          key2: nil
        }

        expect(described_class.deep_keys(hash)).to eq([:key1, 'key1_sub1', :key1_sub2, 'key1_sub2_sub1', :key2])
      end

      it 'returns all keys' do
        hash = {
          key1: {
            key1_sub1: {
              key1_sub1_sub1: 'key1_sub1_sub1_value'
            },
            key1_sub2: 'key1_sub2_value',
            key1_sub3: {}
          },
          key2: {
            key2_sub1: {
              key2_sub1_sub1: 'key1_sub1_sub1_value',
              key2_sub1_sub2: {
                key2_sub1_sub2_sub1: {
                  key2_sub1_sub2_sub1_sub1: {}
                }
              }
            },
            key2_sub2: 'key2_sub2_value',
            key2_sub3: 'key2_sub3_value',
            key2_sub4: 'key2_sub4_value',
            key2_sub5: 'key2_sub5_value'
          }
        }

        expect(described_class.deep_keys(hash)).to eq(%i[key1 key1_sub1 key1_sub1_sub1
                                                      key1_sub2 key1_sub3 key2 key2_sub1
                                                      key2_sub1_sub1 key2_sub1_sub2
                                                      key2_sub1_sub2_sub1 key2_sub1_sub2_sub1_sub1
                                                      key2_sub2 key2_sub3 key2_sub4 key2_sub5])
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongo_profiler-0.0.2 spec/mongo_profiler/util_spec.rb