Sha256: b25a03980f546615cc77c4daa9eae28733d847b3e402f1971f8ea6f29129a100

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 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.dup
    assignments = []
    app_name = URI.parse(TestTrack.private_url).user

    assignment_registry.each do |split_name, variant|
      prefixed_split_name = "#{app_name}.#{split_name}"
      if split_registry.key?(prefixed_split_name)
        assignments << { split_name: prefixed_split_name, variant: variant.to_s, unsynced: false }
      else
        split_registry[split_name] = { variant => 100 } unless split_registry[split_name]
        assignments << { split_name: split_name.to_s, variant: variant.to_s, unsynced: false }
      end
    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

1 entries across 1 versions & 1 rubygems

Version Path
test_track_rails_client-4.0.0.alpha26 lib/test_track_rails_client/assignment_helper.rb