n8n/packages/cli/test/integration/cta.service.test.ts
Tomi Turtiainen 5156313074
Some checks are pending
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) Waiting to run
refactor(core): Enable import/order eslint rule (#10794)
2024-09-12 19:07:18 +03:00

57 lines
1.5 KiB
TypeScript

import Container from 'typedi';
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);
},
);
});
});