mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
fix(core): Handle zero execution statistics on metrics collection during license renewal (#8463)
This commit is contained in:
@@ -2,27 +2,24 @@ import { UsageMetricsRepository } from '@/databases/repositories/usageMetrics.re
|
||||
import { createAdmin, createMember, createOwner, createUser } from './shared/db/users';
|
||||
import * as testDb from './shared/testDb';
|
||||
import Container from 'typedi';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { createManyWorkflows } from './shared/db/workflows';
|
||||
import { createManyCredentials } from './shared/db/credentials';
|
||||
import { WorkflowStatisticsRepository } from '@/databases/repositories/workflowStatistics.repository';
|
||||
import { StatisticsNames } from '@/databases/entities/WorkflowStatistics';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
|
||||
describe('UsageMetricsRepository', () => {
|
||||
let usageMetricsRepository: UsageMetricsRepository;
|
||||
let credentialsRepository: CredentialsRepository;
|
||||
let workflowStatisticsRepository: WorkflowStatisticsRepository;
|
||||
let workflowRepository: WorkflowRepository;
|
||||
|
||||
beforeAll(async () => {
|
||||
await testDb.init();
|
||||
|
||||
usageMetricsRepository = Container.get(UsageMetricsRepository);
|
||||
credentialsRepository = Container.get(CredentialsRepository);
|
||||
workflowStatisticsRepository = Container.get(WorkflowStatisticsRepository);
|
||||
workflowRepository = Container.get(WorkflowRepository);
|
||||
|
||||
workflowStatisticsRepository = Container.get(WorkflowStatisticsRepository);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await testDb.truncate(['User', 'Credentials', 'Workflow', 'Execution', 'WorkflowStatistics']);
|
||||
});
|
||||
|
||||
@@ -74,5 +71,20 @@ describe('UsageMetricsRepository', () => {
|
||||
manualExecutions: 2,
|
||||
});
|
||||
});
|
||||
|
||||
test('should handle zero execution statistics correctly', async () => {
|
||||
await Promise.all([createOwner(), createManyWorkflows(3, { active: true })]);
|
||||
|
||||
const metrics = await usageMetricsRepository.getLicenseRenewalMetrics();
|
||||
|
||||
expect(metrics).toStrictEqual({
|
||||
enabledUsers: 1,
|
||||
totalCredentials: 0,
|
||||
totalWorkflows: 3,
|
||||
activeWorkflows: 3,
|
||||
productionExecutions: 0, // not NaN
|
||||
manualExecutions: 0, // not NaN
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user