Эндрю Мид увеличивает расходы: тест (шутка) проходит для любого значения (объекта) внутри аргумента 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()??
Вы можете видеть, что в приведенном выше случае, когда я передал пустой объект (который был отключен), а в другой раз я передал ожидаемый объект, но тест прошел для обоих случаев. Я даже пробовал использовать любую пару ключ-значение внутри объекта, но тест все равно проходит???