fix: Delete collection exports (#2595)

This commit is contained in:
Saumya Pandey
2021-10-07 09:38:45 +05:30
committed by GitHub
parent be905a6993
commit 81718c8ee1
12 changed files with 204 additions and 23 deletions

View File

@@ -0,0 +1,31 @@
// @flow
import { FileOperation, Event, User } from "../models";
import { sequelize } from "../sequelize";
export default async function fileOperationDeleter(
fileOp: FileOperation,
user: User,
ip: string
) {
let transaction = await sequelize.transaction();
try {
await fileOp.destroy({ transaction });
await Event.create(
{
name: "fileOperations.delete",
teamId: user.teamId,
actorId: user.id,
data: fileOp.dataValues,
ip,
},
{ transaction }
);
await transaction.commit();
} catch (error) {
await transaction.rollback();
throw error;
}
}

View File

@@ -0,0 +1,31 @@
// @flow
import { FileOperation } from "../models";
import { buildAdmin, buildFileOperation } from "../test/factories";
import { flushdb } from "../test/support";
import fileOperationDeleter from "./fileOperationDeleter";
jest.mock("aws-sdk", () => {
const mS3 = { deleteObject: jest.fn().mockReturnThis(), promise: jest.fn() };
return {
S3: jest.fn(() => mS3),
Endpoint: jest.fn(),
};
});
beforeEach(() => flushdb());
describe("fileOperationDeleter", () => {
const ip = "127.0.0.1";
it("should destroy file operation", async () => {
const admin = await buildAdmin();
const fileOp = await buildFileOperation({
userId: admin.id,
teamId: admin.teamId,
});
await fileOperationDeleter(fileOp, admin, ip);
expect(await FileOperation.count()).toEqual(0);
});
});