mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-14 21:27:23 +01:00
* Loggly-only user support events (#12676) * feat(analytics): Loggly-only user support events * fix(analytics): clean up more Unknowns * wip: allow tracking events from the server * analytics: allow tracking generic events on the server * remove console.logs * remove console.log (client) * add integration test Co-authored-by: Sabe Jones <sabrecat@gmail.com>
29 lines
1001 B
JavaScript
29 lines
1001 B
JavaScript
import {
|
|
generateUser,
|
|
requester,
|
|
translate as t,
|
|
} from '../../../../helpers/api-integration/v3';
|
|
import { mockAnalyticsService as analytics } from '../../../../../website/server/libs/analyticsService';
|
|
|
|
describe('POST /analytics/track/:eventName', () => {
|
|
it('requires authentication', async () => {
|
|
await expect(requester().post('/analytics/track/event')).to.eventually.be.rejected.and.eql({
|
|
code: 401,
|
|
error: 'NotAuthorized',
|
|
message: t('missingAuthHeaders'),
|
|
});
|
|
});
|
|
|
|
it('calls res.analytics', async () => {
|
|
const user = await generateUser();
|
|
sandbox.spy(analytics, 'track');
|
|
|
|
const requestWithHeaders = requester(user, { 'x-client': 'habitica-web' });
|
|
await requestWithHeaders.post('/analytics/track/eventName', { data: 'example' }, { 'x-client': 'habitica-web' });
|
|
expect(analytics.track).to.be.calledOnce;
|
|
expect(analytics.track).to.be.calledWith('eventName', sandbox.match({ data: 'example' }));
|
|
|
|
sandbox.restore();
|
|
});
|
|
});
|