@stenneepro/mongoose-soft-delete
Version:
Mongoose soft delete plugin
72 lines (71 loc) • 3.51 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const mocha_1 = require("mocha");
const setupModel_1 = __importDefault(require("./utils/setupModel"));
const dropModel_1 = __importDefault(require("./utils/dropModel"));
const chai_1 = require("chai");
const mongooseExpects_1 = require("./utils/mongooseExpects");
(0, mocha_1.describe)('deletedAt=true', function () {
let TestModel;
before(async function () {
TestModel = (0, setupModel_1.default)('TestDeletedAt', { name: String }, { deletedAt: true });
});
after(async function () {
await (0, dropModel_1.default)('TestDeletedAt');
});
it('deleteOne() -> set deletedAt', async function () {
const puffy = await TestModel.create({ name: 'Puffy1' });
const result = await puffy.deleteOne();
(0, mongooseExpects_1.expectOk)(result);
(0, mongooseExpects_1.expectDeletedCount)(result, 1);
const doc = await TestModel.findById(puffy.id).withDeleted().orFail();
(0, chai_1.expect)(doc.deletedAt).to.be.an('date');
});
it('deleteOne() -> set deletedAt', async function () {
await TestModel.create({ name: 'Puffy2' });
const result = await TestModel.deleteOne({ name: 'Puffy2' });
(0, mongooseExpects_1.expectOk)(result);
(0, mongooseExpects_1.expectDeletedCount)(result, 1);
const puffy = await TestModel.findOne({ name: 'Puffy2' }).withDeleted().orFail();
(0, chai_1.expect)(puffy.deletedAt).to.be.an('date');
});
it('restoreOne() -> unset deletedAt', async function () {
const puffy = await TestModel.findOne({ name: 'Puffy1' }).withDeleted().orFail();
const doc = await puffy.restoreOne();
(0, chai_1.expect)(doc.deletedAt).to.not.exist;
});
it('restoreOne() -> unset deletedAt', async function () {
const result = await TestModel.restoreOne({ name: 'Puffy2' });
(0, mongooseExpects_1.expectOk)(result);
(0, mongooseExpects_1.expectMatchCount)(result, 1);
const puffy = await TestModel.findOne({ name: 'Puffy2' }).withDeleted().orFail();
(0, chai_1.expect)(puffy.deletedAt).to.not.exist;
});
});
(0, mocha_1.describe)('deletedAt=deleted_at', function () {
let TestModel;
before(async function () {
TestModel = (0, setupModel_1.default)('TestDeletedAtCustomField', { name: String }, { deletedAt: 'deleted_at' });
});
after(async function () {
await (0, dropModel_1.default)('TestDeletedAtCustomField');
});
it('deleteOne() -> set deletedAt', async function () {
const puffy = await TestModel.create({ name: 'Puffy1' });
const result = await puffy.deleteOne();
(0, mongooseExpects_1.expectOk)(result);
(0, mongooseExpects_1.expectDeletedCount)(result, 1);
const doc = await TestModel.findById(puffy.id).withDeleted().orFail();
(0, chai_1.expect)(doc.deletedAt).to.be.an('date');
(0, chai_1.expect)(doc.get('deleted_at')).to.be.an('date');
});
it('restoreOne() -> unset deletedAt', async function () {
const puffy = await TestModel.findOne({ name: 'Puffy1' }).withDeleted().orFail();
const doc = await puffy.restoreOne();
(0, chai_1.expect)(doc.deletedAt).to.not.exist;
(0, chai_1.expect)(doc.get('deleted_at')).to.not.exist;
});
});