grafana/public/app/features/alerting/unified/Analytics.test.ts
Virginia Cepeda 115218b1ff
Alerting: only track events for survey if user is not new (#61005)
* Only track events data if user is not new

To know this we evaluate the creation date to be older than two weeks

* Address PR comments
2023-01-09 14:41:03 -03:00

41 lines
1.2 KiB
TypeScript

import { dateTime } from '@grafana/data';
import { getBackendSrv } from '@grafana/runtime';
import { isNewUser, USER_CREATION_MIN_DAYS } from './Analytics';
jest.mock('@grafana/runtime', () => ({
getBackendSrv: jest.fn().mockReturnValue({
get: jest.fn(),
}),
}));
describe('isNewUser', function () {
it('should return true if the user has been created within the last two weeks', async () => {
const newUser = {
id: 1,
createdAt: dateTime().subtract(14, 'days'),
};
getBackendSrv().get = jest.fn().mockResolvedValue(newUser);
const isNew = await isNewUser(1);
expect(isNew).toBe(true);
expect(getBackendSrv().get).toHaveBeenCalledTimes(1);
expect(getBackendSrv().get).toHaveBeenCalledWith('/api/users/1');
});
it('should return false if the user has been created prior to the last two weeks', async () => {
const oldUser = {
id: 2,
createdAt: dateTime().subtract(USER_CREATION_MIN_DAYS, 'days'),
};
getBackendSrv().get = jest.fn().mockResolvedValue(oldUser);
const isNew = await isNewUser(2);
expect(isNew).toBe(false);
expect(getBackendSrv().get).toHaveBeenCalledTimes(1);
expect(getBackendSrv().get).toHaveBeenCalledWith('/api/users/2');
});
});