fix: 完善学生实训表单校验与可行性论证
parent
01ca54cda2
commit
e1ad967b1b
@ -0,0 +1,13 @@
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const test = require('node:test');
|
||||
|
||||
const source = fs.readFileSync(path.resolve(__dirname, '../src/views/demand/business-feasibility.vue'), 'utf8');
|
||||
|
||||
test('商业可行性第一步按七个原型区块拆分成本、定价与风险表格', () => {
|
||||
assert.ok(source.includes('<h3>成本结构分析</h3>'), '成本结构应为独立区块');
|
||||
assert.ok(source.includes('<h3>定价与毛利分析</h3>'), '定价与毛利应为独立区块');
|
||||
assert.ok(source.includes('<span>07</span>'), '风险识别应作为第七个区块');
|
||||
assert.ok(source.includes('readonly'), '单位总成本、单位毛利和毛利率应为只读计算结果');
|
||||
});
|
||||
@ -0,0 +1,16 @@
|
||||
const assert = require("node:assert/strict");
|
||||
const fs = require("node:fs");
|
||||
const path = require("node:path");
|
||||
const test = require("node:test");
|
||||
|
||||
const source = fs.readFileSync(path.join(__dirname, "../src/views/foundation/new-product-survey.vue"), "utf8");
|
||||
|
||||
test("实训一第二步的上传图片使用可访问地址预览", () => {
|
||||
assert.match(source, /import\s*\{\s*isExternal\s*\}\s*from\s*["']@\/utils\/validate["']/);
|
||||
assert.match(source, /<img\s+:src="resolveUploadedImageUrl\(image\.url\)"/);
|
||||
assert.match(source, /function previewStepTwoImage\(url\)\s*\{\s*imagePreviewUrl\.value\s*=\s*resolveUploadedImageUrl\(url\)/);
|
||||
});
|
||||
|
||||
test("实训一第二步将旧 localhost 文件地址转换为文件服务路径", () => {
|
||||
assert.match(source, /function resolveUploadedImageUrl\(url\)[\s\S]*?new URL\(source\)[\s\S]*?localhost[\s\S]*?return `\$\{parsed\.pathname\}\$\{parsed\.search\}\$\{parsed\.hash\}`/);
|
||||
});
|
||||
@ -0,0 +1,15 @@
|
||||
const assert = require("node:assert/strict");
|
||||
const fs = require("node:fs");
|
||||
const path = require("node:path");
|
||||
const test = require("node:test");
|
||||
|
||||
const source = fs.readFileSync(path.join(__dirname, "../src/views/foundation/product-development-process.vue"), "utf8");
|
||||
|
||||
test("实训任务三第二步在提交前提示首个未填写字段", () => {
|
||||
assert.match(source, /function getStepTwoValidationMessage\(\)[\s\S]*?请填写任务 \$\{row\.taskNo\} 的项目依赖关系/);
|
||||
assert.match(source, /function getStepTwoValidationMessage\(\)[\s\S]*?请填写任务 \$\{row\.taskNo\} 的开始时间[\s\S]*?请填写任务 \$\{row\.taskNo\} 的完成时间/);
|
||||
});
|
||||
|
||||
test("实训任务三第二步不完整时不请求后端校验", () => {
|
||||
assert.match(source, /async function saveAndGoToStepThree\(\)\s*\{[\s\S]*?const validationMessage = getStepTwoValidationMessage\(\);[\s\S]*?if \(validationMessage\) \{[\s\S]*?msgWarning\?\.\(validationMessage\)[\s\S]*?return;[\s\S]*?\}\s*checking\.value = true;[\s\S]*?checkProductDevelopmentProcessStepTwo/);
|
||||
});
|
||||
Loading…
Reference in New Issue