Почему ветка не покрыта остальными параметрами в Jest? - PullRequest
1 голос
/ 26 апреля 2019

В настоящее время я пытаюсь покрыть 100% своей функции, но я сталкиваюсь с веткой, которая не покрыта, и она не понимает, почему она не покрыта и даже как ее исправить и покрыть.

результат теста здесь

Он перепробовал много разных тестов, но ничего не изменил.Я не знаю, если проблема исходит от меня или Джеста?

Моя функция

export const removeProductInList = (state: IItems, action: IBasketRemoveProductAction) => {
    const {
        payload: { uuid },
    } = action;
    const { [uuid]: itemToRemove, ...restOfItems } = state;
    return restOfItems;
};

Мои тесты

product1 = { id: 1 };
product2 = { id: 2 };
mockUuid1 = 'IdTest';
mockUuid2 = 'IdTest2';
mockItem1 = { product: product1, quantity: 1 };
mockItem2 = { product: product2, quantity: 1 };
mockListItems = {
      [mockUuid1]: mockItem1,
      [mockUuid2]: mockItem2,
};

it('should handle PRODUCT__REMOVE', () => {
        expect(removeProductInList({ [mockUuid1]: mockItem1 }, removeProduct(mockUuid1))).toEqual({});

        expect(removeProductInList(mockListItems, removeProduct(mockUuid1))).toEqual({ [mockUuid2]: mockItem2 });

        expect(removeProductInList({}, removeProduct('acac'))).toEqual({});
    });

Я ожидаю покрыть все функции моим настоящим тестом.

Моя версия шута 23.4.1, на всякий случай.

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

Попробуйте проверить removeProductList с дополнительными свойствами

expect(removeProductInList({ [mockUuid1]: mockItem1, extraProp: 'someValue' }, removeProduct(mockUuid1))).toEqual({});
0 голосов
/ 26 апреля 2019

Вам просто нужно указать цель esnext в вашем файле tsConfig в ts-jest.

// jest.config.js

module.exports =  {
 ...
 'ts-jest': {
   ....
   tsConfig: './tsconfig.json'),
},

// tsconfig.json

{
  ...,
  "target": "esnext",
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...