mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
feat: Add nested search in folders (#14372)
Co-authored-by: Milorad FIlipović <milorad@n8n.io>
This commit is contained in:
@@ -1056,8 +1056,7 @@ describe('GET /workflows', () => {
|
||||
parentFolder: {
|
||||
id: folder.id,
|
||||
name: folder.name,
|
||||
createdAt: expect.any(String),
|
||||
updatedAt: expect.any(String),
|
||||
parentFolderId: null,
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -1615,6 +1614,66 @@ describe('GET /workflows?includeFolders=true', () => {
|
||||
expect(response2.body.data).toHaveLength(0);
|
||||
});
|
||||
|
||||
test('should filter workflows by parentFolderId and its descendants when filtering by name', async () => {
|
||||
const pp = await Container.get(ProjectRepository).getPersonalProjectForUserOrFail(owner.id);
|
||||
|
||||
await createFolder(pp, {
|
||||
name: 'Root Folder 1',
|
||||
});
|
||||
|
||||
const rootFolder2 = await createFolder(pp, {
|
||||
name: 'Root Folder 2',
|
||||
});
|
||||
|
||||
await createFolder(pp, {
|
||||
name: 'Root Folder 3',
|
||||
});
|
||||
|
||||
const subfolder1 = await createFolder(pp, {
|
||||
name: 'Root folder 2 subfolder 1 key',
|
||||
parentFolder: rootFolder2,
|
||||
});
|
||||
|
||||
await createWorkflow(
|
||||
{
|
||||
name: 'Workflow 1 key',
|
||||
parentFolder: rootFolder2,
|
||||
},
|
||||
pp,
|
||||
);
|
||||
|
||||
await createWorkflow(
|
||||
{
|
||||
name: 'workflow 2 key',
|
||||
parentFolder: rootFolder2,
|
||||
},
|
||||
pp,
|
||||
);
|
||||
|
||||
await createWorkflow(
|
||||
{
|
||||
name: 'workflow 3 key',
|
||||
parentFolder: subfolder1,
|
||||
},
|
||||
pp,
|
||||
);
|
||||
|
||||
const filter2Response = await authOwnerAgent
|
||||
.get('/workflows')
|
||||
.query(
|
||||
`filter={ "projectId": "${pp.id}", "parentFolderId": "${rootFolder2.id}", "name": "key" }&includeFolders=true`,
|
||||
);
|
||||
|
||||
expect(filter2Response.body.count).toBe(4);
|
||||
expect(filter2Response.body.data).toHaveLength(4);
|
||||
expect(
|
||||
filter2Response.body.data.filter((w: WorkflowFolderUnionFull) => w.resource === 'workflow'),
|
||||
).toHaveLength(3);
|
||||
expect(
|
||||
filter2Response.body.data.filter((w: WorkflowFolderUnionFull) => w.resource === 'folder'),
|
||||
).toHaveLength(1);
|
||||
});
|
||||
|
||||
test('should return homeProject when filtering workflows and folders by projectId', async () => {
|
||||
const workflow = await createWorkflow({ name: 'First' }, owner);
|
||||
await shareWorkflowWithUsers(workflow, [member]);
|
||||
|
||||
Reference in New Issue
Block a user