I want to check if every object in an array contains a property 'a' whose value is a number.
test('a must be number always', () => {
let response = [{ a: 'asdasd', y: 2 }, { a: 12 }];
expect(response).toEqual(
expect.arrayContaining([
expect.objectContaining({ a: expect.any(Number) })
])
);
});
That above case is passing becasue jest is able to find atleast 1 object which contains a property 'a' with number. But I want every object to have number.Something similar to Array.every.
In the continuation to above, how can we match objet property to be either a number or string.
test('a must be either number or String always', () => {
let response = [{ a: 'asdasd', y: 2 }, { a: true }];
expect(response).toEqual(
expect.arrayContaining([
expect.objectContaining({ a: expect.any(Number) or expect.any(String) or `expect a = 4` })
])
);
});