Files
openfoodnetwork/spec/services/address_geocoder_spec.rb
Maikel Linke dcb6f4676d Remove all unnecessary spec_helper require statements
The `.rspec` file is doing this for us.
2026-01-21 12:35:34 +11:00

47 lines
1.5 KiB
Ruby

# frozen_string_literal: true
RSpec.describe AddressGeocoder do
let(:australia) { Spree::Country.find_or_create_by!(name: "Australia") }
let(:victoria) { Spree::State.find_or_create_by(name: "Victoria", country: australia) }
let(:address) do
create(:address,
address1: "12 Galvin Street",
address2: "Unit 1",
city: "Altona",
country: australia,
state: victoria,
zipcode: 3018,
latitude: nil,
longitude: nil)
end
it "formats the address into a single comma separated string when passing it to the geocoder" do
expect(Geocoder).to receive(:coordinates)
.with("12 Galvin Street, Unit 1, 3018, Altona, Australia, Victoria")
AddressGeocoder.new(address).geocode
end
describe "when the geocoder can determine the latitude and longitude" do
it "updates the address's latitude and longitude" do
allow(Geocoder).to receive(:coordinates).and_return([-37.47, 144.78])
AddressGeocoder.new(address).geocode
expect(address.latitude).to eq(-37.47)
expect(address.longitude).to eq(144.78)
end
end
describe "when the geocoder cannot determine the latitude and longitude" do
it "doesn't update the address's latitude and longitude" do
allow(Geocoder).to receive(:coordinates).and_return([nil, nil])
AddressGeocoder.new(address).geocode
expect(address.latitude).to be_nil
expect(address.longitude).to be_nil
end
end
end