import { describe, expect, it } from 'vitest'; import { assertNever, groupBy, isDefined, sortedEntries } from '../src/index.ts'; describe('@utils', () => { it('isDefined 滤掉 null 与 undefined', () => { expect([1, null, 2, undefined].filter(isDefined)).toEqual([1, 2]); }); it('groupBy 按键分组', () => { const rows = [ { pn: 'A', type: 'A' as const }, { pn: 'B', type: 'B' as const }, { pn: 'C', type: 'A' as const }, ]; expect(groupBy(rows, (r) => r.type)).toEqual({ A: [rows[0], rows[2]], B: [rows[1]], }); }); it('sortedEntries 稳定排序', () => { expect(sortedEntries({ b: 2, a: 1 })).toEqual([ ['a', 1], ['b', 2], ]); }); it('assertNever 抛错', () => { expect(() => assertNever('x' as never)).toThrow('未覆盖的分支'); }); });