diff options
Diffstat (limited to 'spec/helpers/invite_members_helper_spec.rb')
-rw-r--r-- | spec/helpers/invite_members_helper_spec.rb | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/spec/helpers/invite_members_helper_spec.rb b/spec/helpers/invite_members_helper_spec.rb index d75b3c9f2e3..914d0931476 100644 --- a/spec/helpers/invite_members_helper_spec.rb +++ b/spec/helpers/invite_members_helper_spec.rb @@ -114,4 +114,69 @@ RSpec.describe InviteMembersHelper do end end end + + describe '#dropdown_invite_members_link' do + shared_examples_for 'dropdown invite members link' do + let(:link_regex) do + /data-track-event="click_link".*data-track-property="_track_property_".*Invite members/ + end + + before do + allow(helper).to receive(:experiment_tracking_category_and_group) { '_track_property_' } + allow(helper).to receive(:tracking_label).with(owner) + allow(helper).to receive(:current_user) { owner } + end + + it 'records the experiment' do + allow(helper).to receive(:experiment_enabled?) + + helper.dropdown_invite_members_link(form_model) + + expect(helper).to have_received(:experiment_tracking_category_and_group) + .with(:invite_members_new_dropdown, subject: owner) + end + + context 'with experiment enabled' do + before do + allow(helper).to receive(:experiment_enabled?).with(:invite_members_new_dropdown) { true } + end + + it 'returns link' do + link = helper.dropdown_invite_members_link(form_model) + + expect(link).to match(link_regex) + expect(link).to include(link_href) + expect(link).to include('gl-emoji') + end + end + + context 'with no experiment enabled' do + before do + allow(helper).to receive(:experiment_enabled?).with(:invite_members_new_dropdown) { false } + end + + it 'returns link' do + link = helper.dropdown_invite_members_link(form_model) + + expect(link).to match(link_regex) + expect(link).to include(link_href) + expect(link).not_to include('gl-emoji') + end + end + end + + context 'with a project' do + let_it_be(:form_model) { project } + let(:link_href) { "href=\"#{project_project_members_path(form_model)}\"" } + + it_behaves_like 'dropdown invite members link' + end + + context 'with a group' do + let_it_be(:form_model) { create(:group) } + let(:link_href) { "href=\"#{group_group_members_path(form_model)}\"" } + + it_behaves_like 'dropdown invite members link' + end + end end |