addressfinder 1.10.0 → 1.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/addressfinder.gemspec +3 -2
- data/lib/addressfinder/version.rb +1 -1
- metadata +5 -39
- data/.github/workflows/ruby.yml +0 -31
- data/.gitignore +0 -11
- data/.travis.yml +0 -6
- data/Dockerfile +0 -28
- data/Gemfile +0 -3
- data/Guardfile +0 -5
- data/Rakefile +0 -7
- data/docker-compose.yml +0 -11
- data/spec/lib/addressfinder/address_autocomplete_spec.rb +0 -95
- data/spec/lib/addressfinder/address_info_spec.rb +0 -62
- data/spec/lib/addressfinder/address_search_spec.rb +0 -76
- data/spec/lib/addressfinder/bulk_spec.rb +0 -207
- data/spec/lib/addressfinder/location_info_spec.rb +0 -79
- data/spec/lib/addressfinder/location_search_spec.rb +0 -93
- data/spec/lib/addressfinder/util_spec.rb +0 -37
- data/spec/lib/addressfinder/v1/email/verification_spec.rb +0 -148
- data/spec/lib/addressfinder/v1/phone/verification_spec.rb +0 -144
- data/spec/lib/addressfinder/v2/au/verification_spec.rb +0 -187
- data/spec/lib/addressfinder/verification_spec.rb +0 -170
- data/spec/lib/addressfinder_spec.rb +0 -94
- data/spec/spec_helper.rb +0 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 85227fdfa94c38218cb23aa0f2d637270f5fba6f1e3101c1303404de467e4c72
|
|
4
|
+
data.tar.gz: 44987ff360e797b67691494785388fcdd51c12f08cbc925eb445ac3251a20102
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 132e29b1da5bad8864aa136edfbb37cae2925610a767465cd3c027b70ec61492b9c55ed884e628b85fa87191d86c128153ba5f7476c8728ac09e866e131d7fc9
|
|
7
|
+
data.tar.gz: 6b64c5fd1de404b594e3e077b62bb3104e0aa9cf17e2f50a6ae2c688e449ce5dfd7cf214f677d8add6e32477d4dc562ab8cbc2a49031b9b37310aa3bdf1acfaf
|
data/addressfinder.gemspec
CHANGED
|
@@ -11,13 +11,14 @@ Gem::Specification.new do |gem|
|
|
|
11
11
|
gem.summary = 'Provides easy access to AddressFinder APIs'
|
|
12
12
|
gem.homepage = 'https://github.com/AddressFinder/addressfinder-ruby'
|
|
13
13
|
|
|
14
|
-
gem.files = `git ls-files`.split($/)
|
|
14
|
+
gem.files = `git ls-files`.split($/).select{|f| f.match(%r{^lib|\.gemspec$|\.md$})}
|
|
15
15
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
|
16
16
|
gem.test_files = gem.files.grep(%r{^(spec|features)/})
|
|
17
17
|
gem.require_paths = ['lib']
|
|
18
18
|
|
|
19
|
-
gem.required_ruby_version = '>= 2.
|
|
19
|
+
gem.required_ruby_version = '>= 2.6'
|
|
20
20
|
gem.add_dependency 'multi_json', '~> 1.15'
|
|
21
|
+
|
|
21
22
|
gem.add_development_dependency 'guard-rspec', '~> 4.7'
|
|
22
23
|
gem.add_development_dependency 'listen', '~> 3.7'
|
|
23
24
|
gem.add_development_dependency 'rake', '~> 13.0'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: addressfinder
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.10.
|
|
4
|
+
version: 1.10.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nigel Ramsay
|
|
@@ -12,7 +12,7 @@ authors:
|
|
|
12
12
|
autorequire:
|
|
13
13
|
bindir: bin
|
|
14
14
|
cert_chain: []
|
|
15
|
-
date: 2023-
|
|
15
|
+
date: 2023-09-13 00:00:00.000000000 Z
|
|
16
16
|
dependencies:
|
|
17
17
|
- !ruby/object:Gem::Dependency
|
|
18
18
|
name: multi_json
|
|
@@ -109,18 +109,10 @@ executables: []
|
|
|
109
109
|
extensions: []
|
|
110
110
|
extra_rdoc_files: []
|
|
111
111
|
files:
|
|
112
|
-
- ".github/workflows/ruby.yml"
|
|
113
|
-
- ".gitignore"
|
|
114
|
-
- ".travis.yml"
|
|
115
112
|
- CHANGELOG.md
|
|
116
|
-
- Dockerfile
|
|
117
|
-
- Gemfile
|
|
118
|
-
- Guardfile
|
|
119
113
|
- LICENSE.md
|
|
120
114
|
- README.md
|
|
121
|
-
- Rakefile
|
|
122
115
|
- addressfinder.gemspec
|
|
123
|
-
- docker-compose.yml
|
|
124
116
|
- lib/addressfinder.rb
|
|
125
117
|
- lib/addressfinder/address_autocomplete.rb
|
|
126
118
|
- lib/addressfinder/address_info.rb
|
|
@@ -138,19 +130,6 @@ files:
|
|
|
138
130
|
- lib/addressfinder/v2/au/verification.rb
|
|
139
131
|
- lib/addressfinder/verification.rb
|
|
140
132
|
- lib/addressfinder/version.rb
|
|
141
|
-
- spec/lib/addressfinder/address_autocomplete_spec.rb
|
|
142
|
-
- spec/lib/addressfinder/address_info_spec.rb
|
|
143
|
-
- spec/lib/addressfinder/address_search_spec.rb
|
|
144
|
-
- spec/lib/addressfinder/bulk_spec.rb
|
|
145
|
-
- spec/lib/addressfinder/location_info_spec.rb
|
|
146
|
-
- spec/lib/addressfinder/location_search_spec.rb
|
|
147
|
-
- spec/lib/addressfinder/util_spec.rb
|
|
148
|
-
- spec/lib/addressfinder/v1/email/verification_spec.rb
|
|
149
|
-
- spec/lib/addressfinder/v1/phone/verification_spec.rb
|
|
150
|
-
- spec/lib/addressfinder/v2/au/verification_spec.rb
|
|
151
|
-
- spec/lib/addressfinder/verification_spec.rb
|
|
152
|
-
- spec/lib/addressfinder_spec.rb
|
|
153
|
-
- spec/spec_helper.rb
|
|
154
133
|
homepage: https://github.com/AddressFinder/addressfinder-ruby
|
|
155
134
|
licenses:
|
|
156
135
|
- MIT
|
|
@@ -163,28 +142,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
163
142
|
requirements:
|
|
164
143
|
- - ">="
|
|
165
144
|
- !ruby/object:Gem::Version
|
|
166
|
-
version: '2.
|
|
145
|
+
version: '2.6'
|
|
167
146
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
147
|
requirements:
|
|
169
148
|
- - ">="
|
|
170
149
|
- !ruby/object:Gem::Version
|
|
171
150
|
version: '0'
|
|
172
151
|
requirements: []
|
|
173
|
-
rubygems_version: 3.
|
|
152
|
+
rubygems_version: 3.2.33
|
|
174
153
|
signing_key:
|
|
175
154
|
specification_version: 4
|
|
176
155
|
summary: Provides easy access to AddressFinder APIs
|
|
177
|
-
test_files:
|
|
178
|
-
- spec/lib/addressfinder/address_autocomplete_spec.rb
|
|
179
|
-
- spec/lib/addressfinder/address_info_spec.rb
|
|
180
|
-
- spec/lib/addressfinder/address_search_spec.rb
|
|
181
|
-
- spec/lib/addressfinder/bulk_spec.rb
|
|
182
|
-
- spec/lib/addressfinder/location_info_spec.rb
|
|
183
|
-
- spec/lib/addressfinder/location_search_spec.rb
|
|
184
|
-
- spec/lib/addressfinder/util_spec.rb
|
|
185
|
-
- spec/lib/addressfinder/v1/email/verification_spec.rb
|
|
186
|
-
- spec/lib/addressfinder/v1/phone/verification_spec.rb
|
|
187
|
-
- spec/lib/addressfinder/v2/au/verification_spec.rb
|
|
188
|
-
- spec/lib/addressfinder/verification_spec.rb
|
|
189
|
-
- spec/lib/addressfinder_spec.rb
|
|
190
|
-
- spec/spec_helper.rb
|
|
156
|
+
test_files: []
|
data/.github/workflows/ruby.yml
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
name: Ruby
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ "master" ]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [ "master" ]
|
|
8
|
-
|
|
9
|
-
permissions:
|
|
10
|
-
contents: read
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
test:
|
|
14
|
-
|
|
15
|
-
runs-on: ubuntu-latest
|
|
16
|
-
strategy:
|
|
17
|
-
matrix:
|
|
18
|
-
ruby-version: ['2.6', '2.7', '3.0', '3.1']
|
|
19
|
-
|
|
20
|
-
steps:
|
|
21
|
-
- uses: actions/checkout@v3
|
|
22
|
-
- name: Set up Ruby
|
|
23
|
-
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
|
24
|
-
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
|
25
|
-
# uses: ruby/setup-ruby@v1
|
|
26
|
-
uses: ruby/setup-ruby@0a29871fe2b0200a17a4497bae54fe5df0d973aa # v1.115.3
|
|
27
|
-
with:
|
|
28
|
-
ruby-version: ${{ matrix.ruby-version }}
|
|
29
|
-
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
|
30
|
-
- name: Run tests
|
|
31
|
-
run: bundle exec rake
|
data/.gitignore
DELETED
data/.travis.yml
DELETED
data/Dockerfile
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Use the barebones version of Ruby 2.7.x
|
|
2
|
-
FROM ruby:2.7
|
|
3
|
-
|
|
4
|
-
# Install dependencies:
|
|
5
|
-
# - build-essential: To ensure certain gems can be compiled
|
|
6
|
-
# - nodejs: Compile assets
|
|
7
|
-
# - bundler: ensure most recent version is installed
|
|
8
|
-
RUN apt-get update && apt-get install -qq -y build-essential --fix-missing --no-install-recommends
|
|
9
|
-
RUN gem install bundler
|
|
10
|
-
|
|
11
|
-
# Set an environment variable to store where the app is installed to inside
|
|
12
|
-
# of the Docker image.
|
|
13
|
-
ENV LANG C.UTF-8
|
|
14
|
-
ENV BUNDLE_PATH /bundle
|
|
15
|
-
ENV INSTALL_PATH /addressfinder-ruby
|
|
16
|
-
RUN mkdir -p $INSTALL_PATH
|
|
17
|
-
|
|
18
|
-
# Create address verification directories
|
|
19
|
-
RUN mkdir -p $INSTALL_PATH/verification/originals
|
|
20
|
-
RUN mkdir -p $INSTALL_PATH/verification/verified
|
|
21
|
-
|
|
22
|
-
# This sets the context of where commands will be ran in and is documented
|
|
23
|
-
# on Docker's website extensively.
|
|
24
|
-
WORKDIR $INSTALL_PATH
|
|
25
|
-
|
|
26
|
-
ADD . $INSTALL_PATH
|
|
27
|
-
|
|
28
|
-
RUN bundle install
|
data/Gemfile
DELETED
data/Guardfile
DELETED
data/Rakefile
DELETED
data/docker-compose.yml
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
RSpec.describe AddressFinder::AddressAutocomplete do
|
|
4
|
-
before do
|
|
5
|
-
AddressFinder.configure do |af|
|
|
6
|
-
af.api_key = 'XXX'
|
|
7
|
-
af.api_secret = 'YYY'
|
|
8
|
-
af.default_country = 'au'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
describe '#build_request' do
|
|
13
|
-
let(:locator){ AddressFinder::AddressAutocomplete.new(params: args, http: http) }
|
|
14
|
-
let(:http){ AddressFinder::HTTP.new(AddressFinder.configuration) }
|
|
15
|
-
|
|
16
|
-
subject(:request_uri){ locator.send(:build_request) }
|
|
17
|
-
|
|
18
|
-
context 'with minimal arguments' do
|
|
19
|
-
let(:args){ {q: '186 willis'} }
|
|
20
|
-
|
|
21
|
-
it { expect(request_uri).to eq('/api/au/address/autocomplete.json?q=186+willis&key=XXX&secret=YYY') }
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
context 'with more arguments' do
|
|
25
|
-
let(:args){ {q: '186 willis st', au_paf: 1, max: 10} }
|
|
26
|
-
|
|
27
|
-
it { expect(request_uri).to eq('/api/au/address/autocomplete.json?q=186+willis+st&au_paf=1&max=10&key=XXX&secret=YYY') }
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
context 'with a country override' do
|
|
31
|
-
let(:args){ {q: '186 willis st', country: 'au'} }
|
|
32
|
-
|
|
33
|
-
it { expect(request_uri).to eq('/api/au/address/autocomplete.json?q=186+willis+st&key=XXX&secret=YYY') }
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
context 'with a key override' do
|
|
37
|
-
let(:args){ {q: '186 willis st', key: 'AAA'} }
|
|
38
|
-
|
|
39
|
-
it { expect(request_uri).to eq('/api/au/address/autocomplete.json?q=186+willis+st&key=AAA&secret=YYY') }
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
context 'with a secret override' do
|
|
43
|
-
let(:args){ {q: '186 willis st', secret: 'BBB'} }
|
|
44
|
-
|
|
45
|
-
it { expect(request_uri).to eq('/api/au/address/autocomplete.json?q=186+willis+st&secret=BBB&key=XXX') }
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
describe '#validate_params' do
|
|
50
|
-
let(:locator){ AddressFinder::AddressAutocomplete.new(params: args, http: http) }
|
|
51
|
-
let(:http){ AddressFinder::HTTP.new(AddressFinder.configuration) }
|
|
52
|
-
|
|
53
|
-
subject(:validate_params){ locator.send(:validate_params) }
|
|
54
|
-
|
|
55
|
-
context 'with wrong country' do
|
|
56
|
-
let(:args){ {q: '186 willis st', country: 'nz'} }
|
|
57
|
-
|
|
58
|
-
it { expect{validate_params}.to raise_error(AddressFinder::RequestRejectedError) }
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
context 'with correct country' do
|
|
62
|
-
let(:args){ {q: '186 willis st', country: 'au'} }
|
|
63
|
-
|
|
64
|
-
it { expect{validate_params}.not_to raise_error }
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
describe '#build_result' do
|
|
69
|
-
let(:locator){ AddressFinder::AddressSearch.new(params: {q: 'ignored'}, http: nil) }
|
|
70
|
-
|
|
71
|
-
before do
|
|
72
|
-
locator.send('response_body=', body)
|
|
73
|
-
locator.send('response_status=', status)
|
|
74
|
-
locator.send(:build_result)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
subject(:results){ locator.results }
|
|
78
|
-
|
|
79
|
-
context 'with completions' do
|
|
80
|
-
let(:body){ '{"completions":[{"a":"184 William Jones Drive, Otangarei, Whangarei 0112","pxid":"2-.9.2U.F.F.2I","v":1},{"a":"184 Williams Street, Kaiapoi 7630","pxid":"2-.3.1q.2.4G.4c","v":0},{"a":"184 Willis Street, Te Aro, Wellington 6011","pxid":"2-.F.1W.p.1D.1W","v":0}],"paid":true}' }
|
|
81
|
-
let(:status){ '200' }
|
|
82
|
-
|
|
83
|
-
it { expect(results.size).to eq(3) }
|
|
84
|
-
it { expect(results.first.class).to eq(AddressFinder::AddressSearch::Result) }
|
|
85
|
-
it { expect(results.first.a).to eq("184 William Jones Drive, Otangarei, Whangarei 0112") }
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
context 'with no completions' do
|
|
89
|
-
let(:body){ '{"completions":[],"paid":true}' }
|
|
90
|
-
let(:status){ '200' }
|
|
91
|
-
|
|
92
|
-
it { expect(results).to eq([]) }
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
RSpec.describe AddressFinder::AddressInfo do
|
|
4
|
-
before do
|
|
5
|
-
AddressFinder.configure do |af|
|
|
6
|
-
af.api_key = 'XXX'
|
|
7
|
-
af.api_secret = 'YYY'
|
|
8
|
-
af.default_country = 'au'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
describe '#build_request' do
|
|
13
|
-
let(:locator){ AddressFinder::AddressInfo.new(params: args, http: http) }
|
|
14
|
-
let(:http){ AddressFinder::HTTP.new(AddressFinder.configuration) }
|
|
15
|
-
|
|
16
|
-
subject(:request_uri){ locator.send(:build_request) }
|
|
17
|
-
|
|
18
|
-
context 'with a simple PXID' do
|
|
19
|
-
let(:args){ {pxid: '123'} }
|
|
20
|
-
|
|
21
|
-
it { expect(request_uri).to eq('/api/au/address/info.json?pxid=123&key=XXX&secret=YYY') }
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
context 'with a country override' do
|
|
25
|
-
let(:args){ {pxid: '123', country: 'nz'} }
|
|
26
|
-
|
|
27
|
-
it { expect(request_uri).to eq('/api/nz/address/info.json?pxid=123&key=XXX&secret=YYY') }
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
context 'with a key override' do
|
|
31
|
-
let(:args){ {pxid: '123', key:'AAA'} }
|
|
32
|
-
|
|
33
|
-
it { expect(request_uri).to eq('/api/au/address/info.json?pxid=123&key=AAA&secret=YYY') }
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
context 'with a secret override' do
|
|
37
|
-
let(:args){ {pxid: '123', secret: 'BBB'} }
|
|
38
|
-
|
|
39
|
-
it { expect(request_uri).to eq('/api/au/address/info.json?pxid=123&secret=BBB&key=XXX') }
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
describe '#build_result' do
|
|
44
|
-
let(:locator){ AddressFinder::AddressInfo.new(params: {q: 'ignored'}, http: nil) }
|
|
45
|
-
|
|
46
|
-
before do
|
|
47
|
-
locator.send('response_body=', body)
|
|
48
|
-
locator.send('response_status=', status)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
subject(:result){ locator.send(:build_result) }
|
|
52
|
-
|
|
53
|
-
context 'with a successful result' do
|
|
54
|
-
let(:body){ '{"pxid":"2-.9.2U.F.F.2I","number":"184","container_only":"false","x":"174.314855382547","y":"-35.6946659390092","postcode":"0112","a":"184 William Jones Drive, Otangarei, Whangarei 0112","postal":"184 William Jones Drive, Otangarei, Whangarei 0112","mailtown":"Whangarei","post_suburb":"Otangarei","ta":"Whangarei District","sufi":932755,"street_type":"drive","city":"Whangarei","suburb":"Otangarei","region":"Northland Region","street":"William Jones Drive","postal_line_1":"184 William Jones Drive","postal_line_2":"Otangarei","postal_line_3":"Whangarei 0112","meshblock":"93700","dpid":"681856"}' }
|
|
55
|
-
let(:status){ '200' }
|
|
56
|
-
|
|
57
|
-
it { expect(result.class).to eq(AddressFinder::AddressInfo::Result) }
|
|
58
|
-
it { expect(result.a).to eq("184 William Jones Drive, Otangarei, Whangarei 0112") }
|
|
59
|
-
it { expect(result.pxid).to eq("2-.9.2U.F.F.2I") }
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
RSpec.describe AddressFinder::AddressSearch do
|
|
4
|
-
before do
|
|
5
|
-
AddressFinder.configure do |af|
|
|
6
|
-
af.api_key = 'XXX'
|
|
7
|
-
af.api_secret = 'YYY'
|
|
8
|
-
af.default_country = 'nz'
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
describe '#build_request' do
|
|
13
|
-
let(:locator){ AddressFinder::AddressSearch.new(params: args, http: http) }
|
|
14
|
-
let(:http){ AddressFinder::HTTP.new(AddressFinder.configuration) }
|
|
15
|
-
|
|
16
|
-
subject(:request_uri){ locator.send(:build_request) }
|
|
17
|
-
|
|
18
|
-
context 'with minimal arguments' do
|
|
19
|
-
let(:args){ {q: '186 willis'} }
|
|
20
|
-
|
|
21
|
-
it { expect(request_uri).to eq('/api/nz/address.json?q=186+willis&key=XXX&secret=YYY') }
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
context 'with more arguments' do
|
|
25
|
-
let(:args){ {q: '186 willis st', delivered: 1, max: 10} }
|
|
26
|
-
|
|
27
|
-
it { expect(request_uri).to eq('/api/nz/address.json?q=186+willis+st&delivered=1&max=10&key=XXX&secret=YYY') }
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
context 'with a country override' do
|
|
31
|
-
let(:args){ {q: '186 willis st', country: 'au'} }
|
|
32
|
-
|
|
33
|
-
it { expect(request_uri).to eq('/api/au/address.json?q=186+willis+st&key=XXX&secret=YYY') }
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
context 'with a key override' do
|
|
37
|
-
let(:args){ {q: '186 willis st', key: 'AAA'} }
|
|
38
|
-
|
|
39
|
-
it { expect(request_uri).to eq('/api/nz/address.json?q=186+willis+st&key=AAA&secret=YYY') }
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
context 'with a secret override' do
|
|
43
|
-
let(:args){ {q: '186 willis st', secret: 'BBB'} }
|
|
44
|
-
|
|
45
|
-
it { expect(request_uri).to eq('/api/nz/address.json?q=186+willis+st&secret=BBB&key=XXX') }
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
describe '#build_result' do
|
|
50
|
-
let(:locator){ AddressFinder::AddressSearch.new(params: {q: 'ignored'}, http: nil) }
|
|
51
|
-
|
|
52
|
-
before do
|
|
53
|
-
locator.send('response_body=', body)
|
|
54
|
-
locator.send('response_status=', status)
|
|
55
|
-
locator.send(:build_result)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
subject(:results){ locator.results }
|
|
59
|
-
|
|
60
|
-
context 'with completions' do
|
|
61
|
-
let(:body){ '{"completions":[{"a":"184 William Jones Drive, Otangarei, Whangarei 0112","pxid":"2-.9.2U.F.F.2I","v":1},{"a":"184 Williams Street, Kaiapoi 7630","pxid":"2-.3.1q.2.4G.4c","v":0},{"a":"184 Willis Street, Te Aro, Wellington 6011","pxid":"2-.F.1W.p.1D.1W","v":0}],"paid":true}' }
|
|
62
|
-
let(:status){ '200' }
|
|
63
|
-
|
|
64
|
-
it { expect(results.size).to eq(3) }
|
|
65
|
-
it { expect(results.first.class).to eq(AddressFinder::AddressSearch::Result) }
|
|
66
|
-
it { expect(results.first.a).to eq("184 William Jones Drive, Otangarei, Whangarei 0112") }
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
context 'with no completions' do
|
|
70
|
-
let(:body){ '{"completions":[],"paid":true}' }
|
|
71
|
-
let(:status){ '200' }
|
|
72
|
-
|
|
73
|
-
it { expect(results).to eq([]) }
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|