fix(editor): Optionally share credentials used by the workflow when moving the workflow between projects (#12524)

Co-authored-by: Danny Martini <danny@n8n.io>
This commit is contained in:
Csaba Tuncsik
2025-02-21 11:05:37 +01:00
committed by GitHub
parent 29ae2396c9
commit 7bd83d7d33
22 changed files with 1078 additions and 136 deletions

View File

@@ -38,9 +38,13 @@ let anotherMember: User;
let authOwnerAgent: SuperAgentTest;
let authMemberAgent: SuperAgentTest;
jest.spyOn(License.prototype, 'isSharingEnabled').mockReturnValue(false);
const testServer = utils.setupTestServer({ endpointGroups: ['workflows'] });
const testServer = utils.setupTestServer({
endpointGroups: ['workflows'],
enabledFeatures: ['feat:sharing'],
quotas: {
'quota:maxTeamProjects': -1,
},
});
const license = testServer.license;
const { objectContaining, arrayContaining, any } = expect;
@@ -48,9 +52,19 @@ const { objectContaining, arrayContaining, any } = expect;
const activeWorkflowManagerLike = mockInstance(ActiveWorkflowManager);
let projectRepository: ProjectRepository;
let projectService: ProjectService;
beforeAll(async () => {
beforeEach(async () => {
await testDb.truncate([
'Workflow',
'SharedWorkflow',
'Tag',
'WorkflowHistory',
'Project',
'ProjectRelation',
]);
projectRepository = Container.get(ProjectRepository);
projectService = Container.get(ProjectService);
owner = await createOwner();
authOwnerAgent = testServer.authAgentFor(owner);
member = await createMember();
@@ -58,9 +72,8 @@ beforeAll(async () => {
anotherMember = await createMember();
});
beforeEach(async () => {
jest.resetAllMocks();
await testDb.truncate(['Workflow', 'SharedWorkflow', 'Tag', 'WorkflowHistory']);
afterEach(() => {
jest.clearAllMocks();
});
describe('POST /workflows', () => {
@@ -271,7 +284,7 @@ describe('POST /workflows', () => {
type: 'team',
}),
);
await Container.get(ProjectService).addUser(project.id, owner.id, 'project:admin');
await projectService.addUser(project.id, owner.id, 'project:admin');
//
// ACT
@@ -345,7 +358,7 @@ describe('POST /workflows', () => {
type: 'team',
}),
);
await Container.get(ProjectService).addUser(project.id, member.id, 'project:viewer');
await projectService.addUser(project.id, member.id, 'project:viewer');
//
// ACT