fix(core): Remove binary data when deleting executions by filter (#9056)
This commit is contained in:
@@ -1,14 +1,20 @@
|
||||
import Container from 'typedi';
|
||||
|
||||
import type { SelectQueryBuilder } from '@n8n/typeorm';
|
||||
import { Not, LessThanOrEqual } from '@n8n/typeorm';
|
||||
|
||||
import config from '@/config';
|
||||
import { ExecutionEntity } from '@db/entities/ExecutionEntity';
|
||||
import { ExecutionRepository } from '@db/repositories/execution.repository';
|
||||
|
||||
import { mockEntityManager } from '../../shared/mocking';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { BinaryDataService } from 'n8n-core';
|
||||
import { nanoid } from 'nanoid';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
describe('ExecutionRepository', () => {
|
||||
const entityManager = mockEntityManager(ExecutionEntity);
|
||||
const binaryDataService = mockInstance(BinaryDataService);
|
||||
const executionRepository = Container.get(ExecutionRepository);
|
||||
const mockDate = new Date('2023-12-28 12:34:56.789Z');
|
||||
|
||||
@@ -43,4 +49,22 @@ describe('ExecutionRepository', () => {
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
describe('deleteExecutionsByFilter', () => {
|
||||
test('should delete binary data', async () => {
|
||||
const workflowId = nanoid();
|
||||
|
||||
jest.spyOn(executionRepository, 'createQueryBuilder').mockReturnValue(
|
||||
mock<SelectQueryBuilder<ExecutionEntity>>({
|
||||
select: jest.fn().mockReturnThis(),
|
||||
andWhere: jest.fn().mockReturnThis(),
|
||||
getMany: jest.fn().mockResolvedValue([{ id: '1', workflowId }]),
|
||||
}),
|
||||
);
|
||||
|
||||
await executionRepository.deleteExecutionsByFilter({ id: '1' }, ['1'], { ids: ['1'] });
|
||||
|
||||
expect(binaryDataService.deleteMany).toHaveBeenCalledWith([{ executionId: '1', workflowId }]);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user