Итак, я пытаюсь (модульно) протестировать некоторые функции, используя мангуста и мокко. Проблема в том, что когда я пытаюсь save( ) схему, поле обновлено перезаписывается на текущее время.
Т.е. У меня есть следующий кандидат
const applicant: DataModel = new DataSchema({
"user_name": "user_notifying2rejected",
"uuid": "10",
"status": "notifying_user",
"request_origin": "127.0.0.10"
});
Тогда я делаю
applicant.updatedAt = new Date(new Date() - 2.592e+8);
Когда я делаю console.info(applicant.updateAt), я получаю правильную необходимую дату, то есть «3 дня назад».
Затем, как обычно, я сохраняю это в базе данных с помощью mongoose:
await application.save();
Однако, когда я пытаюсь проверить документ (который я только что сохранил), я вместо этого получаю следующее:
{
createdAt: 2018-05-28T16:43:31.648Z,
updatedAt: 2018-05-28T16:43:31.648Z,
user_name: 'user_notifying2rejected',
uuid: '10',
request_origin: '127.0.0.10',
_id: 5b0c31b06698440017d1593e,
status: 'notifying_user'
}
И теперь обновлено - это сегодняшняя дата, а не «3 дня назад», как я хочу. Как остановить мангуста или мангуст. сохранить от изменения / перезаписи моего поля обновлено?
Вот схема. Позвольте мне знать, если вам нужно что-нибудь еще.
Схема
const DataSchema: Schema = new Schema({
user_name: {
type: String,
required: true
},
uuid: {
type: String,
required: true
},
status: {
type: String,
required: true,
default: "unprocessed"
},
request_origin: {
type: String,
required: true
}
},
{
timestamps: { createdAt: "createdAt", updatedAt: "updatedAt" }
});





Почему вы используете await application.save();, если вы меняете updateAt в документе заявитель?
Для схемы включены отметки времени. Если они вам не нужны, выключите их. Прочтите указанную ссылку, чтобы понять, как они на самом деле работают.