Unit test на Node js typescript

165
01 января 2019, 12:00
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 не понятно. как быть?)Спасибо заранее)

READ ALSO
Некорректные пропорции фигур в CreateJS

Некорректные пропорции фигур в CreateJS

Есть проблема с пропорциями фигур при их создании посредством CreateJSНиже приведён JS-код:

174
Как правильно создать метки в openLayers?

Как правильно создать метки в openLayers?

Создаю систему визуализации передвижения машин на карте, нужно чтобы машины меняли свое местоположение на карте, когда с сервера приходят...

189
Как показать Preloader до загрузки iframe?

Как показать Preloader до загрузки iframe?

Можно отследить событие onload в котором удалить preloaderМожно еще добавит картинку через background

178