feat: Only show workflows shared with you in the overview page (#14773)

This commit is contained in:
Ricardo Espinoza
2025-04-28 13:42:05 -04:00
committed by GitHub
parent cdd3ce4cd4
commit eb465763cf
4 changed files with 91 additions and 32 deletions

View File

@@ -885,6 +885,56 @@ describe('GET /workflows', () => {
expect(response2.body.data).toHaveLength(0);
});
test('should filter by personal project and return only workflows where the user is owner', async () => {
const workflow = await createWorkflow({ name: 'First' }, owner);
const workflow2 = await createWorkflow({ name: 'Second' }, member);
await shareWorkflowWithUsers(workflow2, [owner]);
const pp = await Container.get(ProjectRepository).getPersonalProjectForUserOrFail(owner.id);
const response1 = await authOwnerAgent
.get('/workflows')
.query(`filter={ "projectId": "${pp.id}" }`)
.expect(200);
expect(response1.body.data).toHaveLength(1);
expect(response1.body.data[0].id).toBe(workflow.id);
const response2 = await authOwnerAgent
.get('/workflows')
.query('filter={ "projectId": "Non-Existing Project ID" }')
.expect(200);
expect(response2.body.data).toHaveLength(0);
const response3 = await authOwnerAgent.get('/workflows').query('filter={}').expect(200);
expect(response3.body.data).toHaveLength(2);
});
test('should filter by personal project and return only workflows where the user is member', async () => {
const workflow = await createWorkflow({ name: 'First' }, member);
const workflow2 = await createWorkflow({ name: 'Second' }, owner);
await shareWorkflowWithUsers(workflow2, [member]);
const pp = await Container.get(ProjectRepository).getPersonalProjectForUserOrFail(member.id);
const response1 = await authMemberAgent
.get('/workflows')
.query(`filter={ "projectId": "${pp.id}" }`)
.expect(200);
expect(response1.body.data).toHaveLength(1);
expect(response1.body.data[0].id).toBe(workflow.id);
const response2 = await authMemberAgent
.get('/workflows')
.query('filter={ "projectId": "Non-Existing Project ID" }')
.expect(200);
expect(response2.body.data).toHaveLength(0);
const response3 = await authMemberAgent.get('/workflows').query('filter={}').expect(200);
expect(response3.body.data).toHaveLength(2);
});
test('should filter workflows by parentFolderId', async () => {
const pp = await Container.get(ProjectRepository).getPersonalProjectForUserOrFail(owner.id);
@@ -911,21 +961,6 @@ describe('GET /workflows', () => {
expect(response2.body.data).toHaveLength(1);
expect(response2.body.data[0].id).toBe(workflow2.id);
});
test('should return homeProject when filtering workflows by projectId', async () => {
const workflow = await createWorkflow({ name: 'First' }, owner);
await shareWorkflowWithUsers(workflow, [member]);
const pp = await getPersonalProject(member);
const response = await authMemberAgent
.get('/workflows')
.query(`filter={ "projectId": "${pp.id}" }`)
.expect(200);
expect(response.body.data).toHaveLength(1);
expect(response.body.data[0].id).toBe(workflow.id);
expect(response.body.data[0].homeProject).not.toBeNull();
});
});
describe('select', () => {
@@ -1724,8 +1759,7 @@ describe('GET /workflows?includeFolders=true', () => {
});
test('should return homeProject when filtering workflows and folders by projectId', async () => {
const workflow = await createWorkflow({ name: 'First' }, owner);
await shareWorkflowWithUsers(workflow, [member]);
const workflow = await createWorkflow({ name: 'First' }, member);
const pp = await getPersonalProject(member);
const folder = await createFolder(pp, {
name: 'First Folder',