Module: TrailGuide::SpecHelper

Defined in:
lib/trail_guide/spec_helper.rb

Instance Method Summary collapse

Instance Method Details

#use_trailguide(**experiments, &block) ⇒ Object Also known as: with_trailguide



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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