Files
platforms/frontend/platform_admin/scripts/check-gasorder-contract-candidates.mjs

21 lines
1.5 KiB
JavaScript
Raw Normal View History

/**
* 功能静态检查订单创建与合同气瓶绑定使用正确的合同候选范围
* 版本v1.0.0
*/
import assert from 'node:assert/strict';
import { readFileSync } from 'node:fs';
const resources = readFileSync(new URL('../src/api/resources.ts', import.meta.url), 'utf8');
const relations = readFileSync(new URL('../src/views/resource/use-resource-relations.ts', import.meta.url), 'utf8');
const linkage = readFileSync(new URL('../src/views/resource/use-resource-relation-linkage.ts', import.meta.url), 'utf8');
assert.match(resources, /relationFilters: \{ candidate: 'order' \}/, '订单创建必须只加载可履约合同');
assert.match(resources, /relationFilters: \{ candidate: 'binding' \}/, '合同气瓶绑定必须只加载草稿合同');
assert.match(resources, /暂无可下单的生效合同,请先启用或续签配送合同/, '订单页缺少无可用合同时的引导');
assert.match(resources, /暂无可绑定气瓶的草稿合同,请先新建配送合同/, '合同气瓶页缺少无草稿合同时的引导');
assert.match(resources, /relationStrictFilter: true/, '合同候选必须启用严格筛选');
assert.match(relations, /\.\.\.\(field\.relationFilters \?\? \{\}\)/, '关联请求未携带字段级筛选参数');
assert.match(linkage, /clearInvalidStrictSelections/, '刷新后未清理失效合同选择');
console.log('配送合同候选检查通过:订单仅显示可履约合同,气瓶绑定仅显示草稿合同。');