# frozen_string_literal: true require "spec_helper" require "split/metric" describe Split::Metric do describe "possible experiments" do it "should load the experiment if there is one, but no metric" do experiment = Split::ExperimentCatalog.find_or_create("color", "red", "blue") expect(Split::Metric.possible_experiments("color")).to eq([experiment]) end it "should load the experiments in a metric" do experiment1 = Split::ExperimentCatalog.find_or_create("color", "red", "blue") experiment2 = Split::ExperimentCatalog.find_or_create("size", "big", "small") metric = Split::Metric.new(name: "purchase", experiments: [experiment1, experiment2]) metric.save expect(Split::Metric.possible_experiments("purchase")).to include(experiment1, experiment2) end it "should load both the metric experiments and an experiment with the same name" do experiment1 = Split::ExperimentCatalog.find_or_create("purchase", "red", "blue") experiment2 = Split::ExperimentCatalog.find_or_create("size", "big", "small") metric = Split::Metric.new(name: "purchase", experiments: [experiment2]) metric.save expect(Split::Metric.possible_experiments("purchase")).to include(experiment1, experiment2) end end end