import { describe, expect, it } from 'vitest'; import { buildDepositStudentOption, buildDepositStudentOptions } from './deposit-student-option'; describe('deposit student option', () => { it('uses the student number as the non-sensitive identifier', () => { expect(buildDepositStudentOption({ id: 23, name: '张三', studentNo: 'S2026001' })).toEqual({ value: 23, label: '张三 (S2026001)', }); }); it('falls back to the internal id when the student number is missing', () => { expect(buildDepositStudentOption({ id: 23, name: '张三', studentNo: null })).toEqual({ value: 23, label: '张三 (#23)', }); }); it('uses lookup rows without requiring a status field', () => { expect(buildDepositStudentOptions([{ id: 23, name: '张三', studentNo: 'S2026001' }])).toEqual([ { value: 23, label: '张三 (S2026001)', }, ]); }); it('includes room type when available', () => { expect( buildDepositStudentOption({ id: 23, name: '张三', studentNo: 'S2026001', roomType: '四人间', }), ).toEqual({ value: 23, label: '张三 (S2026001) - 四人间', }); }); });