You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dianshang-qianduan/tests/business-feasibility-step1....

31 lines
1.4 KiB
JavaScript

const assert = require("node:assert/strict");
const fs = require("node:fs");
const path = require("node:path");
const test = require("node:test");
const sourcePath = path.resolve(__dirname, "../src/views/demand/business-feasibility.vue");
const backendPath = path.resolve(
__dirname,
"../../dianshang-houduan/src/main/java/com/sztzjy/linkCommerce/service/impl/BusinessFeasibilityStepOneServiceImpl.java"
);
test("商业可行性论证第 1 步覆盖七个分析区块并由后端校验计算", () => {
const source = fs.readFileSync(sourcePath, "utf8");
const backend = fs.readFileSync(backendPath, "utf8");
["项目概述", "市场规模与竞争格局", "目标用户群体分析", "商业模式梳理", "成本结构分析", "定价与毛利分析", "风险识别与评估"].forEach((label) => {
assert.match(source, new RegExp(label));
});
assert.match(source, /以下提供了可行性分析的各个子模块/);
assert.match(source, /单位毛利 = 单位目标售价 单位总成本/);
assert.match(source, /unitTotalCost/);
assert.match(backend, /validateOverview\(request\.getProjectOverview\(\)\)/);
assert.match(backend, /validateRisks\(request\.getRisks\(\)\)/);
});
test("目标用户群体表格的表头保持横向表格单元格布局", () => {
const source = fs.readFileSync(sourcePath, "utf8");
assert.match(source, /\.table-wrap th \{[^}]*display:table-cell[^}]*text-align:center/);
});