Files
loan-pricing/ruoyi-ui/tests/personal-create-input-params.test.js

127 lines
5.4 KiB
JavaScript

const fs = require('fs')
const path = require('path')
const assert = require('assert')
function read(relativePath) {
return fs.readFileSync(path.join(__dirname, '..', relativePath), 'utf8')
}
const personalCreateDialog = read('src/views/loanPricing/workflow/components/PersonalCreateDialog.vue')
const personalDetail = read('src/views/loanPricing/workflow/components/PersonalWorkflowDetail.vue')
assert(
personalCreateDialog.includes('updatePersonalWorkflow') &&
personalCreateDialog.includes("this.isEdit ? '编辑个人利率定价流程' : '新增个人利率定价流程'") &&
personalCreateDialog.includes('editData.serialNum') &&
personalCreateDialog.includes('updatePersonalWorkflow(this.editData.serialNum, data)') &&
personalCreateDialog.includes(': createPersonalWorkflow(data)'),
'个人弹窗应支持编辑模式回显并调用个人更新接口'
)
assert(
personalCreateDialog.includes('label="贷款用途"') &&
personalCreateDialog.includes('prop="loanPurpose"') &&
personalCreateDialog.includes('loanPurpose: undefined') &&
personalCreateDialog.includes('loanPurpose: this.editData.loanPurpose') &&
personalCreateDialog.includes('请选择贷款用途'),
'个人新增弹窗缺少贷款用途、必填校验或编辑回显'
)
assert(
personalCreateDialog.includes('label="借款期限(年)"') && personalCreateDialog.includes('prop="loanTerm"'),
'个人新增弹窗缺少借款期限字段'
)
assert(
personalCreateDialog.includes('label="经营" value="business"') &&
personalCreateDialog.includes('label="消费" value="consumer"'),
'个人新增弹窗贷款用途选项或协议值不正确'
)
assert(
personalCreateDialog.includes('loanTermOptions') &&
personalCreateDialog.includes("'1'") &&
personalCreateDialog.includes("'6'") &&
!personalCreateDialog.includes("'7'"),
'个人新增弹窗借款期限选项应限制为 1-6 年'
)
assert(
personalCreateDialog.includes('v-if="isCollateralGuarantee"') &&
personalCreateDialog.includes("this.form.guarType === '抵押' || this.form.guarType === '质押'") &&
personalCreateDialog.includes('resetCollateralFields()'),
'个人新增弹窗抵质押信息未按担保方式显示并清空'
)
assert(
personalCreateDialog.includes('collateralTypeOptions') &&
personalCreateDialog.includes("return ['存单质押', '其他质押']"),
'个人新增弹窗应保留质押类型选项'
)
assert(
personalCreateDialog.includes('label="抵押物性质"') &&
personalCreateDialog.includes('prop="collateralNature"') &&
personalCreateDialog.includes("return ['普通住宅、土地、厂房', '商业性质不动产', '其他抵押财产']") &&
personalCreateDialog.includes('label="是否属于九地"') &&
personalCreateDialog.includes('九地是指绍兴、杭州、宁波、上海、北京、广州、深圳、南京、苏州') &&
personalCreateDialog.includes(':disabled="!requiresNineArea"') &&
personalCreateDialog.includes("'无需选择'"),
'个人新增弹窗缺少抵押物性质、九地选择或九地说明'
)
assert(
personalCreateDialog.includes("return this.form.isNineArea === '是' ? '一类' : '二类'") &&
personalCreateDialog.includes("return this.form.isNineArea === '是' ? '二类' : '三类'") &&
personalCreateDialog.includes("return '四类'"),
'个人新增弹窗抵押物类型映射不完整'
)
assert(
personalCreateDialog.includes("if (this.isPledge && !value)") &&
personalCreateDialog.includes("if (this.isMortgage && !value)") &&
personalCreateDialog.includes("if (this.requiresNineArea && !value)"),
'个人新增弹窗缺少抵押和质押的条件校验'
)
assert(
personalCreateDialog.includes('label="是否有营业执照"') &&
personalCreateDialog.includes('prop="bizProof"') &&
personalCreateDialog.includes('bizProof: false') &&
personalCreateDialog.includes('bizProof: this.isOne(this.editData.bizProof)') &&
personalCreateDialog.includes("bizProof: this.form.bizProof ? '1' : '0'") &&
personalCreateDialog.includes("loanLoop: this.form.loanLoop ? '1' : '0'") &&
personalCreateDialog.includes("data.collThirdParty = this.form.collThirdParty ? '1' : '0'") &&
personalCreateDialog.includes('data.collType = this.resolveMortgageCollateralType()') &&
personalCreateDialog.includes('collateralNature: this.editData.collateralNature') &&
personalCreateDialog.includes('isNineArea: this.editData.isNineArea') &&
personalCreateDialog.includes('delete data.collType') &&
personalCreateDialog.includes('delete data.collThirdParty'),
'个人新增弹窗营业执照、抵押来源字段、开关字段或非抵质押提交字段处理不正确'
)
assert(
personalDetail.includes('label="贷款用途"') && personalDetail.includes('detailData.loanPurpose'),
'个人详情页缺少贷款用途展示'
)
assert(
personalDetail.includes('label="是否有营业执照"') && personalDetail.includes('detailData.bizProof'),
'个人详情页缺少营业执照展示'
)
assert(
personalDetail.includes('label="抵押物性质"') &&
personalDetail.includes('detailData.collateralNature') &&
personalDetail.includes('label="是否属于九地"') &&
personalDetail.includes('detailData.isNineArea'),
'个人详情页缺少抵押物性质或九地展示'
)
assert(
personalDetail.includes("value === '1'") && personalDetail.includes("value === '0'"),
'个人详情页布尔格式化未兼容 1/0'
)
console.log('personal create input params assertions passed')