import { tap } from '@push.rocks/tapbundle'; import * as smartexpect from '../dist_ts/index.js'; tap.test('expect.any and expect.anything basic usage', async () => { const obj = { a: 1, b: 'two', d: new Date() }; // Using expect.any to match types smartexpect.expect(obj).object.toMatchObject({ a: smartexpect.expect.any(Number), b: smartexpect.expect.any(String), d: smartexpect.expect.any(Date), }); // Using expect.anything to match any defined value smartexpect.expect(obj).object.toMatchObject({ a: smartexpect.expect.anything(), b: smartexpect.expect.anything(), d: smartexpect.expect.anything(), }); }); tap.test('expect.any mismatch and anything null/undefined rejection', async () => { const obj = { a: 1, b: null }; // Mismatch for expect.any try { smartexpect.expect(obj).object.toMatchObject({ a: smartexpect.expect.any(String) }); throw new Error('Expected mismatch for expect.any did not throw'); } catch (err) { // success: thrown on mismatch } // anything should reject null or undefined try { smartexpect.expect(obj).object.toMatchObject({ b: smartexpect.expect.anything() }); throw new Error('Expected anything() to reject null or undefined'); } catch (err) { // success: thrown on null } }); export default tap.start();