gitlab-org--gitlab-foss/spec/lib/gitlab/tracking/destinations/snowplow_micro_spec.rb

71 lines
1.8 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Gitlab::Tracking::Destinations::SnowplowMicro do
include StubENV
before do
stub_application_setting(snowplow_enabled: true)
stub_env('SNOWPLOW_MICRO_ENABLE', '1')
allow(Rails.env).to receive(:development?).and_return(true)
end
describe '#hostname' do
context 'when SNOWPLOW_MICRO_URI is set' do
before do
stub_env('SNOWPLOW_MICRO_URI', 'http://gdk.test:9091')
end
it 'returns hostname URI part' do
expect(subject.hostname).to eq('gdk.test:9091')
end
end
context 'when SNOWPLOW_MICRO_URI is without protocol' do
before do
stub_env('SNOWPLOW_MICRO_URI', 'gdk.test:9091')
end
it 'returns hostname URI part' do
expect(subject.hostname).to eq('gdk.test:9091')
end
end
context 'when SNOWPLOW_MICRO_URI is hostname only' do
before do
stub_env('SNOWPLOW_MICRO_URI', 'uriwithoutport')
end
it 'returns hostname URI with default HTTP port' do
expect(subject.hostname).to eq('uriwithoutport:80')
end
end
context 'when SNOWPLOW_MICRO_URI is not set' do
it 'returns localhost hostname' do
expect(subject.hostname).to eq('localhost:9090')
end
end
end
describe '#options' do
let_it_be(:group) { create :group }
before do
stub_env('SNOWPLOW_MICRO_URI', 'http://gdk.test:9091')
end
it 'includes protocol with the correct value' do
expect(subject.options(group)[:protocol]).to eq 'http'
end
it 'includes port with the correct value' do
expect(subject.options(group)[:port]).to eq 9091
end
it 'includes forceSecureTracker with value false' do
expect(subject.options(group)[:forceSecureTracker]).to eq false
end
end
end