Commit e978b11e authored by Enrique Alcántara's avatar Enrique Alcántara Committed by Filipa Lacerda

Track clicks on "uninstall" button for kubernetes implementation

parent a076a1dc
<script>
import { GlModal } from '@gitlab/ui';
import { sprintf, s__ } from '~/locale';
import trackUninstallButtonClickMixin from 'ee_else_ce/clusters/mixins/track_uninstall_button_click';
import { INGRESS, CERT_MANAGER, PROMETHEUS, RUNNER, KNATIVE, JUPYTER } from '../constants';
const CUSTOM_APP_WARNING_TEXT = {
......@@ -20,6 +21,7 @@ export default {
components: {
GlModal,
},
mixins: [trackUninstallButtonClickMixin],
props: {
application: {
type: String,
......@@ -51,6 +53,12 @@ export default {
return `uninstall-${this.application}`;
},
},
methods: {
confirmUninstall() {
this.trackUninstallButtonClick(this.application);
this.$emit('confirm');
},
},
};
</script>
<template>
......@@ -60,7 +68,7 @@ export default {
:ok-title="title"
:modal-id="modalId"
:title="title"
@ok="$emit('confirm')"
@ok="confirmUninstall()"
>{{ warningText }} {{ customAppWarningText }}</gl-modal
>
</template>
export default {
methods: {
trackUninstallButtonClick: () => {},
},
};
import stats from 'ee/stats';
export default {
methods: {
trackUninstallButtonClick: application => {
stats.trackEvent('k8s_cluster', 'uninstall', {
label: application,
});
},
},
};
---
title: Track clicks on uninstall button for kubernetes implementation
merge_request: 12048
author:
type: added
import trackUninstallButtonClick from 'ee/clusters/mixins/track_uninstall_button_click';
import stats from 'ee/stats';
jest.mock('ee/stats');
describe('trackUninstallButtonClickMixin', () => {
describe('trackUninstallButtonClick', () => {
it('sends snowplow event indicating which application will be uninstalled', () => {
const application = 'ingress';
trackUninstallButtonClick.methods.trackUninstallButtonClick(application);
expect(stats.trackEvent).toHaveBeenCalledWith('k8s_cluster', 'uninstall', {
label: application,
});
});
});
});
......@@ -29,10 +29,19 @@ describe('UninstallApplicationConfirmationModal', () => {
expect(wrapper.find(GlModal).attributes('ok-title')).toEqual(`Uninstall ${appTitle}`);
});
it('triggers confirm event when ok button is clicked', () => {
wrapper.find(GlModal).vm.$emit('ok');
describe('when ok button is clicked', () => {
beforeEach(() => {
jest.spyOn(wrapper.vm, 'trackUninstallButtonClick');
wrapper.find(GlModal).vm.$emit('ok');
});
it('emits confirm event', () => {
expect(wrapper.emitted('confirm')).toBeTruthy();
});
expect(wrapper.emitted('confirm')).toBeTruthy();
it('calls track uninstall button click mixin', () => {
expect(wrapper.vm.trackUninstallButtonClick).toHaveBeenCalledWith(INGRESS);
});
});
it('displays a warning text indicating the app will be uninstalled', () => {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment