feat: Add telemetry events for free AI credits feature (no-changelog) (#12459)

This commit is contained in:
Ricardo Espinoza
2025-01-07 08:42:19 -05:00
committed by GitHub
parent adcedd1c2b
commit 61993c3906
6 changed files with 219 additions and 2 deletions

View File

@@ -11,11 +11,16 @@ import { useRootStore } from '@/stores/root.store';
import { useToast } from '@/composables/useToast';
import { renderComponent } from '@/__tests__/render';
import { mockedStore } from '@/__tests__/utils';
import { useTelemetry } from '@/composables/useTelemetry';
vi.mock('@/composables/useToast', () => ({
useToast: vi.fn(),
}));
vi.mock('@/composables/useTelemetry', () => ({
useTelemetry: vi.fn(),
}));
vi.mock('@/stores/settings.store', () => ({
useSettingsStore: vi.fn(),
}));
@@ -100,6 +105,10 @@ describe('FreeAiCreditsCallout', () => {
(useToast as any).mockReturnValue({
showError: vi.fn(),
});
(useTelemetry as any).mockReturnValue({
track: vi.fn(),
});
});
it('should shows the claim callout when the user can claim credits', () => {
@@ -120,6 +129,7 @@ describe('FreeAiCreditsCallout', () => {
await fireEvent.click(claimButton);
expect(credentialsStore.claimFreeAiCredits).toHaveBeenCalledWith('test-project-id');
expect(useTelemetry().track).toHaveBeenCalledWith('User claimed OpenAI credits');
assertUserClaimedCredits();
});

View File

@@ -1,5 +1,6 @@
<script lang="ts" setup>
import { useI18n } from '@/composables/useI18n';
import { useTelemetry } from '@/composables/useTelemetry';
import { useToast } from '@/composables/useToast';
import { AI_CREDITS_EXPERIMENT } from '@/constants';
import { useCredentialsStore } from '@/stores/credentials.store';
@@ -32,6 +33,7 @@ const credentialsStore = useCredentialsStore();
const usersStore = useUsersStore();
const ndvStore = useNDVStore();
const projectsStore = useProjectsStore();
const telemetry = useTelemetry();
const i18n = useI18n();
const toast = useToast();
@@ -73,6 +75,8 @@ const onClaimCreditsClicked = async () => {
usersStore.currentUser.settings.userClaimedAiCredits = true;
}
telemetry.track('User claimed OpenAI credits');
showSuccessCallout.value = true;
} catch (e) {
toast.showError(