blob: af14b6e2e95202c30659e02ca5c7e0a31e9cf87c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe "Gitlab::Experiment", :js do
# 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|
e.control { original.call }
e.candidate { original.call }
end
end
end
visit admin_abuse_reports_path
expect(page).to have_content('Abuse Reports')
published_experiments = page.evaluate_script('window.gl.experiments')
expect(published_experiments).to include({
'null_hypothesis' => {
'excluded' => false,
'experiment' => 'null_hypothesis',
'key' => anything,
'variant' => 'candidate'
}
})
end
end
end
|