module TrailGuide::SpecHelper

Public Instance Methods

use_trailguide(**experiments) { || ... } click to toggle source
# File lib/trail_guide/spec_helper.rb, line 4
def use_trailguide(**experiments, &block)
  if block_given?
    before do
      use_trailguide(**experiments)
    end

    yield
  else
    experiments.each do |exp,var|
      experiment = TrailGuide.catalog.find(exp)
      raise ArgumentError, "Experiment not found `#{exp}`" unless experiment.present?
      variant = experiment.variants.find { |v| v == var }
      raise ArgumentError, "Variant `#{var}` not found in experiment `#{exp}`" unless variant.present?

      allow_any_instance_of(experiment).to receive(:choose!).and_return(variant)
    end
  end
end
Also aliased as: with_trailguide
with_trailguide(**experiments, &block)
Alias for: use_trailguide