'use strict'; const { describe, it } = require('node:test'); const assert = require('node:assert/strict'); const Class = require('./classModel'); const Session = require('../sessions/sessionModel'); const PendingStudent = require('../pendingStudents/pendingStudentModel'); const Payment = require('../payments/paymentModel'); describe('Soft delete schema configuration', () => { it('has isDeleted and deletedAt in Class schema', () => { const isDeletedPath = Class.schema.path('isDeleted'); const deletedAtPath = Class.schema.path('deletedAt'); assert.ok(isDeletedPath, 'Class schema should have isDeleted path'); assert.equal(isDeletedPath.instance, 'Boolean'); assert.equal(isDeletedPath.defaultValue, false); assert.ok(deletedAtPath, 'Class schema should have deletedAt path'); assert.equal(deletedAtPath.instance, 'Date'); assert.equal(deletedAtPath.defaultValue, null); }); it('has isDeleted and deletedAt in Session schema', () => { const isDeletedPath = Session.schema.path('isDeleted'); const deletedAtPath = Session.schema.path('deletedAt'); assert.ok(isDeletedPath, 'Session schema should have isDeleted path'); assert.equal(isDeletedPath.instance, 'Boolean'); assert.equal(isDeletedPath.defaultValue, false); assert.ok(deletedAtPath, 'Session schema should have deletedAt path'); assert.equal(deletedAtPath.instance, 'Date'); assert.equal(deletedAtPath.defaultValue, null); }); it('has isDeleted and deletedAt in PendingStudent schema', () => { const isDeletedPath = PendingStudent.schema.path('isDeleted'); const deletedAtPath = PendingStudent.schema.path('deletedAt'); assert.ok(isDeletedPath, 'PendingStudent schema should have isDeleted path'); assert.equal(isDeletedPath.instance, 'Boolean'); assert.equal(isDeletedPath.defaultValue, false); assert.ok(deletedAtPath, 'PendingStudent schema should have deletedAt path'); assert.equal(deletedAtPath.instance, 'Date'); assert.equal(deletedAtPath.defaultValue, null); }); it('has isDeleted and deletedAt in Payment schema', () => { const isDeletedPath = Payment.schema.path('isDeleted'); const deletedAtPath = Payment.schema.path('deletedAt'); assert.ok(isDeletedPath, 'Payment schema should have isDeleted path'); assert.equal(isDeletedPath.instance, 'Boolean'); assert.equal(isDeletedPath.defaultValue, false); assert.ok(deletedAtPath, 'Payment schema should have deletedAt path'); assert.equal(deletedAtPath.instance, 'Date'); assert.equal(deletedAtPath.defaultValue, null); }); });