mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-10 01:01:39 -05:00
100 lines
2.7 KiB
Ruby
100 lines
2.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe DawarichSettings do
|
|
before do
|
|
described_class.instance_variables.each do |ivar|
|
|
described_class.remove_instance_variable(ivar)
|
|
end
|
|
end
|
|
|
|
describe '.reverse_geocoding_enabled?' do
|
|
context 'when photon is enabled' do
|
|
before do
|
|
allow(described_class).to receive(:photon_enabled?).and_return(true)
|
|
allow(described_class).to receive(:geoapify_enabled?).and_return(false)
|
|
end
|
|
|
|
it 'returns true' do
|
|
expect(described_class.reverse_geocoding_enabled?).to be true
|
|
end
|
|
end
|
|
|
|
context 'when geoapify is enabled' do
|
|
before do
|
|
allow(described_class).to receive(:photon_enabled?).and_return(false)
|
|
allow(described_class).to receive(:geoapify_enabled?).and_return(true)
|
|
end
|
|
|
|
it 'returns true' do
|
|
expect(described_class.reverse_geocoding_enabled?).to be true
|
|
end
|
|
end
|
|
|
|
context 'when neither service is enabled' do
|
|
before do
|
|
allow(described_class).to receive(:photon_enabled?).and_return(false)
|
|
allow(described_class).to receive(:geoapify_enabled?).and_return(false)
|
|
end
|
|
|
|
it 'returns false' do
|
|
expect(described_class.reverse_geocoding_enabled?).to be false
|
|
end
|
|
end
|
|
end
|
|
|
|
describe '.photon_enabled?' do
|
|
context 'when PHOTON_API_HOST is present' do
|
|
before { stub_const('PHOTON_API_HOST', 'photon.example.com') }
|
|
|
|
it 'returns true' do
|
|
expect(described_class.photon_enabled?).to be true
|
|
end
|
|
end
|
|
|
|
context 'when PHOTON_API_HOST is blank' do
|
|
before { stub_const('PHOTON_API_HOST', '') }
|
|
|
|
it 'returns false' do
|
|
expect(described_class.photon_enabled?).to be false
|
|
end
|
|
end
|
|
end
|
|
|
|
describe '.photon_uses_komoot_io?' do
|
|
context 'when PHOTON_API_HOST is komoot.io' do
|
|
before { stub_const('PHOTON_API_HOST', 'photon.komoot.io') }
|
|
|
|
it 'returns true' do
|
|
expect(described_class.photon_uses_komoot_io?).to be true
|
|
end
|
|
end
|
|
|
|
context 'when PHOTON_API_HOST is different' do
|
|
before { stub_const('PHOTON_API_HOST', 'photon.example.com') }
|
|
|
|
it 'returns false' do
|
|
expect(described_class.photon_uses_komoot_io?).to be false
|
|
end
|
|
end
|
|
end
|
|
|
|
describe '.geoapify_enabled?' do
|
|
context 'when GEOAPIFY_API_KEY is present' do
|
|
before { stub_const('GEOAPIFY_API_KEY', 'some-api-key') }
|
|
|
|
it 'returns true' do
|
|
expect(described_class.geoapify_enabled?).to be true
|
|
end
|
|
end
|
|
|
|
context 'when GEOAPIFY_API_KEY is blank' do
|
|
before { stub_const('GEOAPIFY_API_KEY', '') }
|
|
|
|
it 'returns false' do
|
|
expect(described_class.geoapify_enabled?).to be false
|
|
end
|
|
end
|
|
end
|
|
end
|