fix(core): Don't create multiple owners when importing credentials or workflows (#9112)

This commit is contained in:
Danny Martini
2024-04-12 17:25:59 +02:00
committed by GitHub
parent 5433004d77
commit 3eb5be5f5a
12 changed files with 826 additions and 184 deletions

View File

@@ -12,8 +12,13 @@ import { SharedWorkflowRepository } from '@/databases/repositories/sharedWorkflo
import * as testDb from './shared/testDb';
import { mockInstance } from '../shared/mocking';
import { createOwner } from './shared/db/users';
import { createWorkflow, getWorkflowById } from './shared/db/workflows';
import { createMember, createOwner } from './shared/db/users';
import {
createWorkflow,
getAllSharedWorkflows,
getWorkflowById,
newWorkflow,
} from './shared/db/workflows';
import type { User } from '@db/entities/User';
@@ -57,7 +62,7 @@ describe('ImportService', () => {
});
test('should make user owner of imported workflow', async () => {
const workflowToImport = await createWorkflow();
const workflowToImport = newWorkflow();
await importService.importWorkflows([workflowToImport], owner.id);
@@ -68,6 +73,23 @@ describe('ImportService', () => {
expect(dbSharing.userId).toBe(owner.id);
});
test('should not change the owner if it already exists', async () => {
const member = await createMember();
const workflowToImport = await createWorkflow(undefined, owner);
await importService.importWorkflows([workflowToImport], member.id);
const sharings = await getAllSharedWorkflows();
expect(sharings).toMatchObject([
expect.objectContaining({
workflowId: workflowToImport.id,
userId: owner.id,
role: 'workflow:owner',
}),
]);
});
test('should deactivate imported workflow if active', async () => {
const workflowToImport = await createWorkflow({ active: true });