fix: Unable to delete archived and templated documents (#1749)
closes #1746
This commit is contained in:
@@ -650,8 +650,10 @@ Document.prototype.delete = function (userId: string) {
|
||||
async (transaction: Transaction): Promise<Document> => {
|
||||
if (!this.archivedAt && !this.template) {
|
||||
// delete any children and remove from the document structure
|
||||
const collection = await this.getCollection();
|
||||
const collection = await this.getCollection({ transaction });
|
||||
if (collection) await collection.deleteDocument(this, { transaction });
|
||||
} else {
|
||||
await this.destroy({ transaction });
|
||||
}
|
||||
|
||||
await Revision.destroy({
|
||||
@@ -659,10 +661,13 @@ Document.prototype.delete = function (userId: string) {
|
||||
transaction,
|
||||
});
|
||||
|
||||
this.lastModifiedById = userId;
|
||||
this.deletedAt = new Date();
|
||||
await this.update(
|
||||
{ lastModifiedById: userId },
|
||||
{
|
||||
transaction,
|
||||
}
|
||||
);
|
||||
|
||||
await this.save({ transaction });
|
||||
return this;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -279,4 +279,25 @@ describe("#delete", () => {
|
||||
expect(document.lastModifiedById).toBe(user.id);
|
||||
expect(document.deletedAt).toBeTruthy();
|
||||
});
|
||||
|
||||
test("should soft delete templates", async () => {
|
||||
let document = await buildDocument({ template: true });
|
||||
let user = await buildUser();
|
||||
|
||||
await document.delete(user.id);
|
||||
|
||||
document = await Document.findByPk(document.id, { paranoid: false });
|
||||
expect(document.lastModifiedById).toBe(user.id);
|
||||
expect(document.deletedAt).toBeTruthy();
|
||||
});
|
||||
test("should soft delete archived", async () => {
|
||||
let document = await buildDocument({ archivedAt: new Date() });
|
||||
let user = await buildUser();
|
||||
|
||||
await document.delete(user.id);
|
||||
|
||||
document = await Document.findByPk(document.id, { paranoid: false });
|
||||
expect(document.lastModifiedById).toBe(user.id);
|
||||
expect(document.deletedAt).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user