mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-20 11:22:15 +00:00
refactor(editor): Move editor-ui and design-system to frontend dir (no-changelog) (#13564)
This commit is contained in:
208
packages/frontend/editor-ui/src/plugins/telemetry.test.ts
Normal file
208
packages/frontend/editor-ui/src/plugins/telemetry.test.ts
Normal file
@@ -0,0 +1,208 @@
|
||||
import { SETTINGS_STORE_DEFAULT_STATE } from '@/__tests__/utils';
|
||||
import { Telemetry } from '@/plugins/telemetry';
|
||||
import { useSettingsStore } from '@/stores/settings.store';
|
||||
import merge from 'lodash-es/merge';
|
||||
import { createPinia, setActivePinia } from 'pinia';
|
||||
|
||||
let telemetry: Telemetry;
|
||||
|
||||
let settingsStore: ReturnType<typeof useSettingsStore>;
|
||||
|
||||
const MOCK_VERSION_CLI = '0.0.0';
|
||||
|
||||
describe('telemetry', () => {
|
||||
beforeAll(() => {
|
||||
telemetry = new Telemetry();
|
||||
setActivePinia(createPinia());
|
||||
settingsStore = useSettingsStore();
|
||||
telemetry.init(
|
||||
{ enabled: true, config: { url: '', key: '' } },
|
||||
{ versionCli: '1', instanceId: '1' },
|
||||
);
|
||||
});
|
||||
|
||||
beforeEach(() => vitest.clearAllMocks());
|
||||
|
||||
describe('identify', () => {
|
||||
it('Rudderstack identify method should be called when proving userId ', () => {
|
||||
const identifyFunction = vi.spyOn(window.rudderanalytics, 'identify');
|
||||
|
||||
const userId = '1';
|
||||
const instanceId = '1';
|
||||
|
||||
settingsStore.setSettings(
|
||||
merge({}, SETTINGS_STORE_DEFAULT_STATE.settings, {
|
||||
deployment: {
|
||||
type: '',
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
telemetry.identify(userId, instanceId);
|
||||
expect(identifyFunction).toHaveBeenCalledTimes(1);
|
||||
expect(identifyFunction).toHaveBeenCalledWith(
|
||||
`${instanceId}#${userId}`,
|
||||
{ instance_id: instanceId },
|
||||
{ context: { ip: '0.0.0.0' } },
|
||||
);
|
||||
});
|
||||
|
||||
it('Rudderstack identify method should be called when proving userId and versionCli ', () => {
|
||||
const identifyFunction = vi.spyOn(window.rudderanalytics, 'identify');
|
||||
|
||||
const userId = '1';
|
||||
const instanceId = '1';
|
||||
const versionCli = '1';
|
||||
|
||||
settingsStore.setSettings(
|
||||
merge({}, SETTINGS_STORE_DEFAULT_STATE.settings, {
|
||||
deployment: {
|
||||
type: '',
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
telemetry.identify(userId, instanceId, versionCli);
|
||||
expect(identifyFunction).toHaveBeenCalledTimes(1);
|
||||
expect(identifyFunction).toHaveBeenCalledWith(
|
||||
`${instanceId}#${userId}`,
|
||||
{
|
||||
instance_id: instanceId,
|
||||
version_cli: versionCli,
|
||||
},
|
||||
{ context: { ip: '0.0.0.0' } },
|
||||
);
|
||||
});
|
||||
|
||||
it('Rudderstack identify method should be called when proving userId and versionCli and projectId', () => {
|
||||
const identifyFunction = vi.spyOn(window.rudderanalytics, 'identify');
|
||||
|
||||
const userId = '1';
|
||||
const instanceId = '1';
|
||||
const versionCli = '1';
|
||||
const projectId = '1';
|
||||
|
||||
settingsStore.setSettings(
|
||||
merge({}, SETTINGS_STORE_DEFAULT_STATE.settings, {
|
||||
deployment: {
|
||||
type: '',
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
telemetry.identify(userId, instanceId, versionCli, projectId);
|
||||
expect(identifyFunction).toHaveBeenCalledTimes(1);
|
||||
expect(identifyFunction).toHaveBeenCalledWith(
|
||||
`${instanceId}#${userId}#${projectId}`,
|
||||
{
|
||||
instance_id: instanceId,
|
||||
version_cli: versionCli,
|
||||
},
|
||||
{ context: { ip: '0.0.0.0' } },
|
||||
);
|
||||
});
|
||||
|
||||
it('Rudderstack identify method should be called when proving userId and deployment type is cloud ', () => {
|
||||
const identifyFunction = vi.spyOn(window.rudderanalytics, 'identify');
|
||||
|
||||
const userId = '1';
|
||||
const instanceId = '1';
|
||||
const versionCli = '1';
|
||||
const userCloudId = '1';
|
||||
|
||||
settingsStore.setSettings(
|
||||
merge({}, SETTINGS_STORE_DEFAULT_STATE.settings, {
|
||||
n8nMetadata: {
|
||||
userId: userCloudId,
|
||||
},
|
||||
deployment: {
|
||||
type: 'cloud',
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
telemetry.identify(userId, instanceId, versionCli);
|
||||
expect(identifyFunction).toHaveBeenCalledTimes(1);
|
||||
expect(identifyFunction).toHaveBeenCalledWith(
|
||||
`${instanceId}#${userId}`,
|
||||
{
|
||||
instance_id: instanceId,
|
||||
version_cli: versionCli,
|
||||
user_cloud_id: userCloudId,
|
||||
},
|
||||
{ context: { ip: '0.0.0.0' } },
|
||||
);
|
||||
});
|
||||
|
||||
it('Rudderstack identify method should be called when proving userId and deployment type is cloud', () => {
|
||||
const identifyFunction = vi.spyOn(window.rudderanalytics, 'identify');
|
||||
|
||||
const userId = '1';
|
||||
const instanceId = '1';
|
||||
const versionCli = '1';
|
||||
const userCloudId = '1';
|
||||
|
||||
settingsStore.setSettings(
|
||||
merge({}, SETTINGS_STORE_DEFAULT_STATE.settings, {
|
||||
n8nMetadata: {
|
||||
userId: userCloudId,
|
||||
},
|
||||
deployment: {
|
||||
type: 'cloud',
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
telemetry.identify(userId, instanceId, versionCli);
|
||||
expect(identifyFunction).toHaveBeenCalledTimes(1);
|
||||
expect(identifyFunction).toHaveBeenCalledWith(
|
||||
`${instanceId}#${userId}`,
|
||||
{
|
||||
instance_id: instanceId,
|
||||
version_cli: versionCli,
|
||||
user_cloud_id: userCloudId,
|
||||
},
|
||||
{ context: { ip: '0.0.0.0' } },
|
||||
);
|
||||
});
|
||||
|
||||
it('Rudderstack reset method should be called when proving userId and deployment type is cloud', () => {
|
||||
const resetFunction = vi.spyOn(window.rudderanalytics, 'reset');
|
||||
|
||||
const instanceId = '1';
|
||||
|
||||
settingsStore.setSettings(
|
||||
merge({}, SETTINGS_STORE_DEFAULT_STATE.settings, {
|
||||
deployment: {
|
||||
type: '',
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
telemetry.identify(instanceId);
|
||||
expect(resetFunction).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe('track function', () => {
|
||||
it('should call Rudderstack track method with correct parameters', () => {
|
||||
const trackFunction = vi.spyOn(window.rudderanalytics, 'track');
|
||||
|
||||
const event = 'testEvent';
|
||||
const properties = { test: '1' };
|
||||
const options = { withPostHog: false };
|
||||
|
||||
telemetry.track(event, properties, options);
|
||||
|
||||
expect(trackFunction).toHaveBeenCalledTimes(1);
|
||||
expect(trackFunction).toHaveBeenCalledWith(
|
||||
event,
|
||||
{
|
||||
...properties,
|
||||
version_cli: MOCK_VERSION_CLI,
|
||||
},
|
||||
{ context: { ip: '0.0.0.0' } },
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user