/** * Adapt the bun test interface to the shared testing interface */ import { deepStrictEqual, notStrictEqual, strictEqual } from 'node:assert'; import { describe, test } from 'bun:test'; import { ITestBase } from '../common/types.ts'; export function testSuite(testObj: any) { Object.keys(testObj).forEach((group) => { describe(group, () => { const groupObj = testObj[group]; Object.keys(groupObj).forEach((testName) => { test(testName, groupObj[testName]); }); }); }); } const BunTestBase: ITestBase = { assertEquivalent: (actual: unknown, expected: unknown) => deepStrictEqual(actual, expected), assertExists: (actual: unknown) => notStrictEqual(actual, undefined), assertFalse: (actual: boolean) => strictEqual(actual, false), assertInstanceOf: (actual: unknown, expectedType: any) => strictEqual(actual instanceof expectedType, true), assertNotEquals: (actual: unknown, expected: unknown) => notStrictEqual(actual, expected), assertEquals: (actual: unknown, expected: unknown) => strictEqual(actual, expected), assertTrue: (actual: boolean) => strictEqual(actual, true), testSuite, }; export default BunTestBase;