Sha256: c5fde2e7403cb5299aa1a7f9da51db078bea015c3adcbde0d2ccd079f2d2151b

Contents?: true

Size: 1.24 KB

Versions: 19

Compression:

Stored size: 1.24 KB

Contents

module TestTrackRailsClient::AssignmentHelper
  def stub_test_track_assignments(assignment_registry) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
    raise "Cannot stub test track assignments when TestTrack is enabled" if TestTrack.enabled?

    split_registry = TestTrack::Fake::SplitRegistry.instance.to_h.deep_dup
    assignments = []
    app_name = URI.parse(TestTrack.private_url).user

    assignment_registry.each do |split_name, variant|
      prefixed_split_name = "#{app_name}.#{split_name}"
      split_name = if split_registry['splits'].key?(prefixed_split_name)
                     prefixed_split_name
                   else
                     split_name.to_s
                   end

      split_registry['splits'][split_name] = {
        weights: { variant.to_s => 100 },
        feature_gate: split_name.end_with?('_enabled')
      }
      assignments << { split_name: split_name, variant: variant.to_s, unsynced: false }
    end

    visitor_attributes = { id: "fake_visitor_id", assignments: assignments }

    allow(TestTrack::Remote::Visitor).to receive(:fake_instance_attributes).and_return(visitor_attributes)
    allow(TestTrack::Remote::SplitRegistry).to receive(:fake_instance_attributes).and_return(split_registry)
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
test_track_rails_client-7.1.2 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-7.1.1 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-7.0.0 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-6.0.0 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-5.0.1 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-5.0.0 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.2 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.1 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0.rc3 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0.rc2 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0.alpha35 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0.alpha34 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0.alpha33 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0.alpha32 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0.alpha31 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0.alpha30 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0.alpha29 lib/test_track_rails_client/assignment_helper.rb
test_track_rails_client-4.0.0.alpha28 lib/test_track_rails_client/assignment_helper.rb