fix: Allow to have null folder for flows
This commit is contained in:
@@ -351,17 +351,20 @@ class Flow extends Base {
|
|||||||
async updateFolder(folderId) {
|
async updateFolder(folderId) {
|
||||||
const user = await this.$relatedQuery('user');
|
const user = await this.$relatedQuery('user');
|
||||||
|
|
||||||
|
if (folderId === null) {
|
||||||
|
return this.updateFolderReference(null);
|
||||||
|
}
|
||||||
|
|
||||||
const folder = await user
|
const folder = await user
|
||||||
.$relatedQuery('folders')
|
.$relatedQuery('folders')
|
||||||
.findOne({
|
.findOne({ id: folderId })
|
||||||
id: folderId,
|
|
||||||
})
|
|
||||||
.throwIfNotFound();
|
.throwIfNotFound();
|
||||||
|
|
||||||
await this.$query().patch({
|
return this.updateFolderReference(folder.id);
|
||||||
folderId: folder.id,
|
}
|
||||||
});
|
|
||||||
|
|
||||||
|
async updateFolderReference(folderId) {
|
||||||
|
await this.$query().patch({ folderId });
|
||||||
return this.$query().withGraphFetched('folder');
|
return this.$query().withGraphFetched('folder');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -505,6 +505,37 @@ describe('Flow model', () => {
|
|||||||
expect(updatedFlow.folder.id).toBe(folder.id);
|
expect(updatedFlow.folder.id).toBe(folder.id);
|
||||||
expect(updatedFlow.folder.name).toBe(folder.name);
|
expect(updatedFlow.folder.name).toBe(folder.name);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return the flow with null folder when folderId is null', async () => {
|
||||||
|
const user = await createUser();
|
||||||
|
const flow = await createFlow({ userId: user.id });
|
||||||
|
|
||||||
|
const updatedFlow = await flow.updateFolder(null);
|
||||||
|
|
||||||
|
expect(updatedFlow.folder).toBe(null);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('updateFolderReference', () => {
|
||||||
|
it('should update the folder reference and return the flow with the updated folder', async () => {
|
||||||
|
const user = await createUser();
|
||||||
|
const flow = await createFlow({ userId: user.id });
|
||||||
|
const folder = await createFolder({ userId: user.id });
|
||||||
|
|
||||||
|
const updatedFlow = await flow.updateFolderReference(folder.id);
|
||||||
|
|
||||||
|
expect(updatedFlow.folder.id).toBe(folder.id);
|
||||||
|
expect(updatedFlow.folder.name).toBe(folder.name);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update the folder reference to null and return the flow with null folder', async () => {
|
||||||
|
const user = await createUser();
|
||||||
|
const flow = await createFlow({ userId: user.id });
|
||||||
|
|
||||||
|
const updatedFlow = await flow.updateFolderReference(null);
|
||||||
|
|
||||||
|
expect(updatedFlow.folder).toBe(null);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('throwIfHavingIncompleteSteps', () => {
|
describe('throwIfHavingIncompleteSteps', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user