import test from 'node:test'; import assert from 'node:assert/strict'; import * as versionPlan from './version-plan'; import type { VersionPlan } from './version-plan'; function plan(patch: Partial): VersionPlan { return { id: 'plan-1', versionId: 'version-1', type: 'product', title: '产品方案', owner: 'PM', startTime: '2026-06-25T09:00', endTime: '2026-06-25T18:00', status: 'pending', createdAt: '2026-06-25', addedBy: 'PM', ...patch, }; } test('sortPlansNewestFirst places newly created plans before older plans', () => { const sortPlansNewestFirst = (versionPlan as any).sortPlansNewestFirst as undefined | ((plans: VersionPlan[]) => VersionPlan[]); assert.equal(typeof sortPlansNewestFirst, 'function'); const plans = [ plan({ id: 'plan-100', createdAt: '2026-06-26' }), plan({ id: 'manual-old', createdAt: '2026-06-25' }), plan({ id: 'plan-300', createdAt: '2026-06-26' }), ]; const sorted = (sortPlansNewestFirst as (items: VersionPlan[]) => VersionPlan[])(plans); assert.deepEqual(sorted.map((item) => item.id), ['plan-300', 'plan-100', 'manual-old']); assert.deepEqual(plans.map((item) => item.id), ['plan-100', 'manual-old', 'plan-300']); });