GuDingZiChan/backend/scripts/__tests__/sheet2PublicAssetImportUtils.test.js

59 lines
1.8 KiB
JavaScript

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: '已借出' } }
})
})