mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
feat(core): Update PATCH /projects/:projectId/folders/:folderId to support tags (no-changelog) (#13456)
This commit is contained in:
@@ -4,6 +4,7 @@ import type { User } from '@/databases/entities/user';
|
||||
import { FolderRepository } from '@/databases/repositories/folder.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { createFolder } from '@test-integration/db/folders';
|
||||
import { createTag } from '@test-integration/db/tags';
|
||||
|
||||
import { createTeamProject, linkUserToProject } from '../shared/db/projects';
|
||||
import { createOwner, createMember } from '../shared/db/users';
|
||||
@@ -408,4 +409,57 @@ describe('PATCH /projects/:projectId/folders/:folderId', () => {
|
||||
const folderInDb = await folderRepository.findOneBy({ id: folder.id });
|
||||
expect(folderInDb?.name).toBe('Updated Folder Name');
|
||||
});
|
||||
|
||||
test('should update folder tags', async () => {
|
||||
const project = await createTeamProject('test project', owner);
|
||||
const folder = await createFolder(project, { name: 'Test Folder' });
|
||||
const tag1 = await createTag({ name: 'Tag 1' });
|
||||
const tag2 = await createTag({ name: 'Tag 2' });
|
||||
|
||||
const payload = {
|
||||
tagIds: [tag1.id, tag2.id],
|
||||
};
|
||||
|
||||
await authOwnerAgent
|
||||
.patch(`/projects/${project.id}/folders/${folder.id}`)
|
||||
.send(payload)
|
||||
.expect(200);
|
||||
|
||||
const folderWithTags = await folderRepository.findOne({
|
||||
where: { id: folder.id },
|
||||
relations: ['tags'],
|
||||
});
|
||||
|
||||
expect(folderWithTags?.tags).toHaveLength(2);
|
||||
expect(folderWithTags?.tags.map((t) => t.id).sort()).toEqual([tag1.id, tag2.id].sort());
|
||||
});
|
||||
|
||||
test('should replace existing folder tags with new ones', async () => {
|
||||
const project = await createTeamProject(undefined, owner);
|
||||
const tag1 = await createTag({ name: 'Tag 1' });
|
||||
const tag2 = await createTag({ name: 'Tag 2' });
|
||||
const tag3 = await createTag({ name: 'Tag 3' });
|
||||
|
||||
const folder = await createFolder(project, {
|
||||
name: 'Test Folder',
|
||||
tags: [tag1, tag2],
|
||||
});
|
||||
|
||||
const payload = {
|
||||
tagIds: [tag3.id],
|
||||
};
|
||||
|
||||
await authOwnerAgent
|
||||
.patch(`/projects/${project.id}/folders/${folder.id}`)
|
||||
.send(payload)
|
||||
.expect(200);
|
||||
|
||||
const folderWithTags = await folderRepository.findOne({
|
||||
where: { id: folder.id },
|
||||
relations: ['tags'],
|
||||
});
|
||||
|
||||
expect(folderWithTags?.tags).toHaveLength(1);
|
||||
expect(folderWithTags?.tags[0].id).toBe(tag3.id);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user