diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-16 18:09:32 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-16 18:09:32 +0300 |
commit | 6de7d2c195a8a7fa5702cafa4365f7a9fcac37cd (patch) | |
tree | e976130993f87a9d1e1f19cdab0ebaf218dfff69 /spec/frontend/groups | |
parent | 591b0e86e3dbaa31b68340a14dc32859306a27b1 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/frontend/groups')
-rw-r--r-- | spec/frontend/groups/components/invite_members_banner_spec.js | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/spec/frontend/groups/components/invite_members_banner_spec.js b/spec/frontend/groups/components/invite_members_banner_spec.js index e2e7af624f8..95003b211fd 100644 --- a/spec/frontend/groups/components/invite_members_banner_spec.js +++ b/spec/frontend/groups/components/invite_members_banner_spec.js @@ -1,7 +1,8 @@ import { shallowMount } from '@vue/test-utils'; import { GlBanner } from '@gitlab/ui'; -import InviteMembersBanner from '~/groups/components/invite_members_banner.vue'; +import { mockTracking, unmockTracking } from 'helpers/tracking_helper'; import { setCookie, parseBoolean } from '~/lib/utils/common_utils'; +import InviteMembersBanner from '~/groups/components/invite_members_banner.vue'; jest.mock('~/lib/utils/common_utils'); @@ -12,6 +13,7 @@ const body = const svgPath = '/illustrations/background'; const inviteMembersPath = 'groups/members'; const buttonText = 'Invite your colleagues'; +const trackLabel = 'invite_members_banner'; const createComponent = (stubs = {}) => { return shallowMount(InviteMembersBanner, { @@ -19,6 +21,7 @@ const createComponent = (stubs = {}) => { svgPath, inviteMembersPath, isDismissedKey, + trackLabel, }, stubs, }); @@ -26,10 +29,51 @@ const createComponent = (stubs = {}) => { describe('InviteMembersBanner', () => { let wrapper; + let trackingSpy; + + beforeEach(() => { + document.body.dataset.page = 'any:page'; + trackingSpy = mockTracking('_category_', undefined, jest.spyOn); + }); afterEach(() => { wrapper.destroy(); wrapper = null; + unmockTracking(); + }); + + describe('tracking', () => { + beforeEach(() => { + wrapper = createComponent({ GlBanner }); + }); + + const trackCategory = undefined; + const displayEvent = 'invite_members_banner_displayed'; + const buttonClickEvent = 'invite_members_banner_button_clicked'; + const dismissEvent = 'invite_members_banner_dismissed'; + + it('sends the displayEvent when the banner is displayed', () => { + expect(trackingSpy).toHaveBeenCalledWith(trackCategory, displayEvent, { + label: trackLabel, + }); + }); + + it('sets the button attributes for the buttonClickEvent', () => { + const button = wrapper.find(`[href='${wrapper.vm.inviteMembersPath}']`); + + expect(button.attributes()).toMatchObject({ + 'data-track-event': buttonClickEvent, + 'data-track-label': trackLabel, + }); + }); + + it('sends the dismissEvent when the banner is dismissed', () => { + wrapper.find(GlBanner).vm.$emit('close'); + + expect(trackingSpy).toHaveBeenCalledWith(trackCategory, dismissEvent, { + label: trackLabel, + }); + }); }); describe('rendering', () => { |