debian-mirror-gitlab/spec/features/gitlab_experiments_spec.rb

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

46 lines
1.4 KiB
Ruby
Raw Normal View History

2021-04-29 21:17:54 +05:30
# frozen_string_literal: true
require 'spec_helper'
2023-03-04 22:38:38 +05:30
RSpec.describe "Gitlab::Experiment", :js, feature_category: :experimentation_activation do
2021-04-29 21:17:54 +05:30
# This is part of a set of tests that ensure that tracking remains
# consistent at the front end layer. Since we don't want to actually
# introduce an experiment in real code, we're going to simulate it
# here.
let(:user) { create(:user) }
before do
admin = create(:admin)
sign_in(admin)
gitlab_enable_admin_mode_sign_in(admin)
stub_experiments(null_hypothesis: :candidate)
end
describe 'with event tracking' do
it 'publishes the experiments that have been run to the client', :experiment do
allow_next_instance_of(Admin::AbuseReportsController) do |instance|
allow(instance).to receive(:index).and_wrap_original do |original|
instance.experiment(:null_hypothesis, user: instance.current_user) do |e|
2022-04-04 11:22:00 +05:30
e.control { original.call }
e.candidate { original.call }
2021-04-29 21:17:54 +05:30
end
end
end
visit admin_abuse_reports_path
expect(page).to have_content('Abuse Reports')
2022-01-26 12:08:38 +05:30
published_experiments = page.evaluate_script('window.gl.experiments')
2021-04-29 21:17:54 +05:30
expect(published_experiments).to include({
'null_hypothesis' => {
2022-01-26 12:08:38 +05:30
'excluded' => false,
2021-04-29 21:17:54 +05:30
'experiment' => 'null_hypothesis',
'key' => anything,
'variant' => 'candidate'
}
})
end
end
end