n8n/packages/cli/test/integration/cta.service.test.ts
कारतोफ्फेलस्क्रिप्ट™ 39d5e0ff87
Some checks failed
Test Master / install-and-build (push) Waiting to run
Test Master / Unit tests (18.x) (push) Blocked by required conditions
Test Master / Unit tests (20.x) (push) Blocked by required conditions
Test Master / Unit tests (22.4) (push) Blocked by required conditions
Test Master / Lint (push) Blocked by required conditions
Test Master / Notify Slack on failure (push) Blocked by required conditions
Benchmark Docker Image CI / build (push) Has been cancelled
refactor(core): Replace typedi with our custom DI system (no-changelog) (#12389)
Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2025-01-06 10:21:24 +01:00

57 lines
1.5 KiB
TypeScript

import { Container } from '@n8n/di';
import type { User } from '@/databases/entities/user';
import { StatisticsNames } from '@/databases/entities/workflow-statistics';
import { CtaService } from '@/services/cta.service';
import { createUser } from './shared/db/users';
import { createWorkflowStatisticsItem } from './shared/db/workflow-statistics';
import { createManyWorkflows } from './shared/db/workflows';
import * as testDb from './shared/test-db';
describe('CtaService', () => {
let ctaService: CtaService;
let user: User;
beforeAll(async () => {
await testDb.init();
ctaService = Container.get(CtaService);
user = await createUser();
});
afterAll(async () => {
await testDb.terminate();
});
describe('getBecomeCreatorCta()', () => {
afterEach(async () => {
await testDb.truncate(['Workflow', 'SharedWorkflow']);
});
test.each([
[false, 0, 0],
[false, 2, 5],
[false, 3, 4],
[true, 3, 5],
])(
'should return %p if user has %d active workflows with %d successful production executions',
async (expected, numWorkflows, numExecutions) => {
const workflows = await createManyWorkflows(numWorkflows, { active: true }, user);
await Promise.all(
workflows.map(
async (workflow) =>
await createWorkflowStatisticsItem(workflow.id, {
count: numExecutions,
name: StatisticsNames.productionSuccess,
}),
),
);
expect(await ctaService.getBecomeCreatorCta(user.id)).toBe(expected);
},
);
});
});