const test = require('node:test') const assert = require('node:assert/strict') const { buildAssignableExistingSheet2PublicEquipmentWhere, PUBLIC_ASSET_ASSIGNABLE_EXISTING_STATUSES, buildPublicAssetBorrowState, isSheet2PublicEquipmentDescription } = require('../sheet2PublicAssetImportUtils') test('isSheet2PublicEquipmentDescription 只识别总表待导入 Sheet2 公共设备描述', () => { assert.equal( isSheet2PublicEquipmentDescription( 'source_workbook=docs/总表待导入.xlsx; source_sheet=Sheet2; source_row=66' ), true ) assert.equal( isSheet2PublicEquipmentDescription( 'source_workbook=docs/8.xlsx; source_sheet=Sheet1; source_row=66' ), false ) assert.equal(isSheet2PublicEquipmentDescription(''), false) }) test('buildPublicAssetBorrowState 应把公共资产挂名状态统一转成已借出', () => { assert.deepEqual(buildPublicAssetBorrowState(0), { equipmentStatus: '已借出', remainingQuantity: 0, totalValue: 0, borrowedValue: 0, availableValue: 0 }) assert.deepEqual(buildPublicAssetBorrowState('1280.50'), { equipmentStatus: '已借出', remainingQuantity: 0, totalValue: 1280.5, borrowedValue: 1280.5, availableValue: 0 }) }) test('PUBLIC_ASSET_ASSIGNABLE_EXISTING_STATUSES 只允许当前可用的既有公共设备自动挂名', () => { assert.deepEqual(PUBLIC_ASSET_ASSIGNABLE_EXISTING_STATUSES, ['可用']) }) test('buildAssignableExistingSheet2PublicEquipmentWhere 只筛可用且未在借的 Sheet2 公共设备', () => { assert.deepEqual(buildAssignableExistingSheet2PublicEquipmentWhere(), { AND: [ { description: { contains: 'source_workbook=docs/总表待导入.xlsx' } }, { description: { contains: 'source_sheet=Sheet2' } } ], status: { in: ['可用'] }, borrow_records: { none: { status: '已借出' } } }) })