У меня есть функция, в которой я хочу добавить sh в поле массива в пользовательском документе.
create(perm) {
const dbResult = db.collection(user).updateOne(
{ _id: { $eq: 000000000 } },
{ $push: { permissions: perm}})
return dbResult;
}
Я использовал pu sh, потому что он создаст поле разрешений, если поле разрешений еще не существует в документе. Все работает как надо, и я получаю новый массив разрешений, как и ожидалось. Я проверил свою базу данных после того, как вызвал эту функцию, и увидел, что это новое разрешение действительно добавлено.
Однако, когда я попытался проверить это в тесте мокко, оно не работает.
Таким образом, в моем тесте mocha для моего перед хуком я создаю пользователя с идентификатором 000000000, чтобы убедиться, что этот пользователь существует. Затем я пишу свой тест следующим образом:
describe('Create', () => {
it('Should be able to create permission on user', done => {
const createdPermission = create(testPermission);
createdPermission
.then(() => getUserById('000000000'))
.then(u => {
console.log(u)
assert.equal(u.permissions.length, 1);
return done();
})
.catch(e => done(e));
});
});
Мой console.log возвращает u без массива полномочий, поэтому мой тест не пройден.