export async function deleteMsa(id: string): Promise<void> {
// get msa
const msa = await msaDao.getMsa(id);
if (!msa) {
throw new ItemNotFoundException('msa is not found');
}
// delete msa and it's details
console.log('deleting msa ' + id);
await msaDao.deleteMsa(msa);
console.log('deleting msa info ' + id);
await deleteMsaInfo(msa);
// get sub-nodes and delete it with details
const descendants: MSA[] = await msaDao.getDescendantsOf(msa);
// tslint:disable-next-line prefer-const
for (let subNode of descendants) {
console.log('deleting msa desc ' + subNode.id);
await msaDao.deleteMsa(subNode);
console.log('deleting msa desc info ' + subNode.id);
await deleteMsaInfo(subNode);
}
// delete all zip ranges
console.log('deleting msa zip ranges ' + id);
await clearMsaZipRanges(msa);
console.log('msa deleted ' + id);
}
метод должен удалять объект из базы, с этим проблем нет никаких, проблема возникает при тестировке. начало самого теста
const msa: MSA = {
id: '09aaf991-4c60-4328-a00a-8915fd44a13c',
rootId: 'cb89e67b-fa1a-4a7e-b55e-1d4c00ec7038',
parentId: 'cb89e67b-fa1a-4a7e-b55e-1d4c00ec7038',
path: 'cb89e67b-fa1a-4a7e-b55e-1d4c00ec7038/09aaf991-4c60-4328-a00a-8915fd44a13c',
levelType: 1,
name: 'Oregon',
zipRange: '41001-41071',
createDate: 1522651370343,
modifyDate: 1522651370343,
adjacentMsa: [],
coordinates: [],
isCounty: true,
isUnion: false,
};
это объект которые следует удалить, при удалении такого объекта следует удалить и объект наследник
const descendantmsa: MSA = {
id: '09aaf991-4c60-4328-a00a-8915fd44a13c',
rootId: 'cb89e67b-fa1a-4a7e-b55e-1d4c00ec7038',
parentId: 'cb89e67b-fa1a-4a7e-b55e-1d4c00ec7038',
path: 'cb89e67b-fa1a-4a7e-b55e-1d4c00ec7038/09aaf991-4c60-4328-a00a-8915fd44a13c',
levelType: 1,
name: 'Oregon',
zipRange: '41001-41071',
createDate: 1522651370343,
modifyDate: 1522651370343,
adjacentMsa: [],
coordinates: [],
isCounty: true,
isUnion: false,
};
не совсем понятно как тестировать, думаю подходящий вариант проверить на наличие этого объекта в базе, тут и возникает ошибка
test('Delete msa', async (done) => {
msaDaoGet.resolves(msa);
msaDaoDelete.resolves();
msaDaoGetDescendant.resolves([descendantmsa]);
await msaService.deleteMsa(msa.id);
expect(msaDao.getMsa(msa.id)).toBeNull();
done();
});
первые три строчки это мок функций которые вызываются в самом методе, вот как быть с самим expect не понятно. как быть?)Спасибо заранее)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть проблема с пропорциями фигур при их создании посредством CreateJSНиже приведён JS-код:
Создаю систему визуализации передвижения машин на карте, нужно чтобы машины меняли свое местоположение на карте, когда с сервера приходят...
Можно отследить событие onload в котором удалить preloaderМожно еще добавит картинку через background