import { tap } from '@push.rocks/tapbundle'; import * as smartexpect from '../ts/index.js'; tap.test('sync tests', async () => { smartexpect.expect('hello').toBeTypeofString(); smartexpect.expect(1).not.toBeTypeofString(); smartexpect.expect(true).toBeTypeofBoolean(); smartexpect.expect(true).not.toBeTypeofNumber(); }); tap.test('async tests', async (toolsArg) => { const deferred = toolsArg.defer(); toolsArg.delayFor(4000).then(() => { deferred.resolve('hello'); }); await smartexpect.expectAsync(deferred.promise).timeout(5000).toBeTypeofString(); await smartexpect.expectAsync(deferred.promise).not.toBeTypeofBoolean(); }); tap.test('should check equality', async () => { smartexpect.expect('hithere').toEqual('hithere'); smartexpect.expect('hithere').not.toEqual('hithere2'); }); tap.test('should check for regexp matching', async () => { smartexpect.expect('hithere').toMatch(/hi/); smartexpect.expect('hithere').not.toMatch(/ho/); }); tap.test('should correctly state property presence', async () => { const testObject = { aprop: 'hello', }; smartexpect.expect(testObject).toHaveProperty('aprop'); smartexpect.expect(testObject).not.toHaveProperty('aprop2'); }); tap.test('should be greater than', async () => { smartexpect.expect(4).toBeGreaterThan(3); smartexpect.expect(4).toBeLessThan(5); }); tap.test('should correctly determine toContain', async () => { const hello = { socool: 'yes', }; const testArray = [hello]; smartexpect.expect(testArray).toContain(hello); }); tap.start();