JEST expect.anything() or null

Viewed 1212

expect.anything() does not work for null or undefined. Is there anyway I can include a check for null or expect.anything() in below code? Here, auth can be anything or null.

const transactionsListResponseKey = {
  id: expect.anything(),
  amount: expect.anything(),
  currency: expect.anything(),
  auth: expect.anything()
}
1 Answers

You can use .toBeOneOf([members]) assertion API of jest-extended combined with expect.anything()

Use .toBeOneOf when checking if a value is a member of a given Array.

import 'jest-extended';

describe('69198224', () => {
  test('should pass', () => {
    const auth1 = 'a';
    const auth2 = null;
    const auth3 = 1;
    const auth4 = {};
    const auth5 = undefined;
    const auth6 = [];
    const auth7 = () => {};
    expect(auth1).toBeOneOf([null, expect.anything()]); // pass
    expect(auth2).toBeOneOf([null, expect.anything()]); // pass
    expect(auth3).toBeOneOf([null, expect.anything()]); // pass
    expect(auth4).toBeOneOf([null, expect.anything()]); // pass
    expect(auth6).toBeOneOf([null, expect.anything()]); // pass
    expect(auth7).toBeOneOf([null, expect.anything()]); // pass

    expect(auth5).toBeOneOf([null, expect.anything()]); // fail
  });
});
Related