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) - 四人间',
    });
  });
});
