n8n/packages/cli/test/integration/commands/update/workflow.test.ts
कारतोफ्फेलस्क्रिप्ट™ 596990bed7
ci: Fix vulnerable dev dependencies (no-changelog) (#9545)
2024-05-30 13:54:29 +02:00

132 lines
3.2 KiB
TypeScript

import { Config } from '@oclif/core';
import { InternalHooks } from '@/InternalHooks';
import { LoadNodesAndCredentials } from '@/LoadNodesAndCredentials';
import { UpdateWorkflowCommand } from '@/commands/update/workflow';
import * as testDb from '../../shared/testDb';
import { createWorkflowWithTrigger, getAllWorkflows } from '../../shared/db/workflows';
import { mockInstance } from '../../../shared/mocking';
const oclifConfig = new Config({ root: __dirname });
beforeAll(async () => {
mockInstance(InternalHooks);
mockInstance(LoadNodesAndCredentials);
await testDb.init();
await oclifConfig.load();
});
beforeEach(async () => {
await testDb.truncate(['Workflow']);
});
afterAll(async () => {
await testDb.terminate();
});
test('update:workflow can activate all workflows', async () => {
//
// ARRANGE
//
const workflows = await Promise.all([
createWorkflowWithTrigger({}),
createWorkflowWithTrigger({}),
]);
expect(workflows).toMatchObject([{ active: false }, { active: false }]);
//
// ACT
//
const updater = new UpdateWorkflowCommand(['--all', '--active=true'], oclifConfig);
await updater.init();
await updater.run();
//
// ASSERT
//
const after = await getAllWorkflows();
expect(after).toMatchObject([{ active: true }, { active: true }]);
});
test('update:workflow can deactivate all workflows', async () => {
//
// ARRANGE
//
const workflows = await Promise.all([
createWorkflowWithTrigger({ active: true }),
createWorkflowWithTrigger({ active: true }),
]);
expect(workflows).toMatchObject([{ active: true }, { active: true }]);
//
// ACT
//
const updater = new UpdateWorkflowCommand(['--all', '--active=false'], oclifConfig);
await updater.init();
await updater.run();
//
// ASSERT
//
const after = await getAllWorkflows();
expect(after).toMatchObject([{ active: false }, { active: false }]);
});
test('update:workflow can activate a specific workflow', async () => {
//
// ARRANGE
//
const workflows = (
await Promise.all([
createWorkflowWithTrigger({ active: false }),
createWorkflowWithTrigger({ active: false }),
])
).sort((wf1, wf2) => wf1.id.localeCompare(wf2.id));
expect(workflows).toMatchObject([{ active: false }, { active: false }]);
//
// ACT
//
const updater = new UpdateWorkflowCommand(
[`--id=${workflows[0].id}`, '--active=true'],
oclifConfig,
);
await updater.init();
await updater.run();
//
// ASSERT
//
const after = (await getAllWorkflows()).sort((wf1, wf2) => wf1.id.localeCompare(wf2.id));
expect(after).toMatchObject([{ active: true }, { active: false }]);
});
test('update:workflow can deactivate a specific workflow', async () => {
//
// ARRANGE
//
const workflows = (
await Promise.all([
createWorkflowWithTrigger({ active: true }),
createWorkflowWithTrigger({ active: true }),
])
).sort((wf1, wf2) => wf1.id.localeCompare(wf2.id));
expect(workflows).toMatchObject([{ active: true }, { active: true }]);
//
// ACT
//
const updater = new UpdateWorkflowCommand(
[`--id=${workflows[0].id}`, '--active=false'],
oclifConfig,
);
await updater.init();
await updater.run();
//
// ASSERT
//
const after = (await getAllWorkflows()).sort((wf1, wf2) => wf1.id.localeCompare(wf2.id));
expect(after).toMatchObject([{ active: false }, { active: true }]);
});