first commit
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
import { createManyActiveWorkflows, testDb } from '@n8n/backend-test-utils';
|
||||
import type { User } from '@n8n/db';
|
||||
import { StatisticsNames } from '@n8n/db';
|
||||
import { Container } from '@n8n/di';
|
||||
|
||||
import { CtaService } from '@/services/cta.service';
|
||||
|
||||
import { createUser } from './shared/db/users';
|
||||
import { createWorkflowStatisticsItem } from './shared/db/workflow-statistics';
|
||||
|
||||
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(['WorkflowEntity', '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 createManyActiveWorkflows(numWorkflows, {}, 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);
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user