Sha256: 4737e53eea8c6776e7cf52b774ff189c9b9f161cfc2c05895c6830ed6e7be14c

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

require 'spec_helper'

describe '#geohash' do
  let(:key) { 'cities' }

  context 'with existing key' do
    let(:san_francisco) { [-122.5076404, 37.757815, 'SF'] }
    let(:los_angeles) { [-118.6919259, 34.0207305, 'LA'] }

    before { @redises.geoadd(key, *san_francisco, *los_angeles) }

    after { @redises.zrem(key, %w[SF LA]) }

    context 'with existing points only' do
      let(:expected_result) do
        %w[9q8yu38ejp0 9q59e171je0]
      end

      it 'returns decoded coordinates pairs for each point' do
        results = @redises.geohash(key, 'SF', 'LA')
        expect(results).to be == expected_result
      end

      context 'with non-existing points only' do
        it 'returns array filled with nils' do
          results = @redises.geohash(key, 'FF', 'FA')
          expect(results).to be == [nil, nil]
        end
      end

      context 'with both existing and non-existing points' do
        let(:expected_result) do
          ['9q8yu38ejp0', nil]
        end

        it 'returns mixture of nil and coordinates pair' do
          results = @redises.geohash(key, 'SF', 'FA')
          expect(results).to be == expected_result
        end
      end
    end
  end

  context 'with non-existing key' do
    before { @redises.del(key) }

    it 'returns empty array' do
      results = @redises.geohash(key, 'SF', 'LA')
      expect(results).to be == [nil, nil]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mock_redis-0.19.0 spec/commands/geohash_spec.rb