Эндрю Мид увеличивает расходы: тест (шутка) проходит для любого значения (объекта) внутри аргумента toEqual?

Это мои генераторы действий:

export const addExpense = (expense) => ({
type: "ADD_EXPENSE",
expense,
});

export const startAddExpense = (expenseData={}) => {
return (dispatch) => {
const {
  description = "no description",
  note = "empty",
  amount = 0,
  createdOn = 0,
} = expenseData;
const expense = { description, note, amount, createdOn };
return database
  .ref("expenses")
  .push(expense)
  .then((ref) => {
    dispatch(
      addExpense({
        id: ref.key,
        ...expense,
      })
    );
  });
 };
};

Теперь мое шутливое тестирование генератора действий startAddExpense:

test("startAddExpense: should add expense to database and store", (done) => {
const store = createMockStore({});
const expenseData = {
  description: "Mouse",
  amount: 3000,
  note: "This one is better",
  createdOn: 1000,
};

store
 .dispatch(startAddExpense(expenseData))
 .then(() => {
   const actions = store.getActions();
   // expect(actions[0]).toEqual({});
   //OR
   expect(actions[0]).toEqual({
     type: "ADD_EXPENSE",
     expense: {
       id: expect.any(String),
       ...expenseData,
     },
   });
   return database.ref(`expenses/${actions[0].expense.id}`).once("value");
 })
.then((dataSnapShot) => {
  // expect(dataSnapShot.val()).toEqual({});
  //OR
  expect(dataSnapShot.val()).toEqual({
    id: expect.any(String),
    ...expenseData,
  });
 });
done();
});

Мой вопрос: почему тест (шутка) проходит для любого значения (объекта) внутри аргумента toEqual как action[0], так и dataSnapShot.val()??

Вы можете видеть, что в приведенном выше случае, когда я передал пустой объект (который был отключен), а в другой раз я передал ожидаемый объект, но тест прошел для обоих случаев. Я даже пробовал использовать любую пару ключ-значение внутри объекта, но тест все равно проходит???

0 ответов

Другие вопросы по тегам