const assert = require("assert");
const fs = require("fs");
const path = require("path");

const uploadPath = path.resolve(
  __dirname,
  "../../src/views/ccdiProject/components/detail/UploadData.vue"
);
const paramPath = path.resolve(
  __dirname,
  "../../src/views/ccdiProject/components/detail/ParamConfig.vue"
);
const uploadSource = fs.readFileSync(uploadPath, "utf8");
const paramSource = fs.readFileSync(paramPath, "utf8");

assert(
  uploadSource.includes('return String(this.projectInfo.projectStatus) === "2";'),
  "上传数据页应声明归档态判断"
);

assert(
  /if\s*\(this\.isProjectTagging\s*\|\|\s*this\.isProjectArchived\)/.test(uploadSource),
  "上传数据页的操作入口应同时拦截打标中和已归档"
);

assert(
  paramSource.includes('return String(this.projectInfo.projectStatus) === "2";'),
  "参数配置页应声明归档态判断"
);

assert(
  paramSource.includes("已归档项目暂不可修改参数"),
  "参数配置页应展示归档态只读提示"
);

assert(
  /:disabled="isProjectTagging \|\| isProjectArchived \|\| saving"/.test(paramSource) ||
    /:disabled="isProjectTagging \|\| isProjectArchived"/.test(paramSource),
  "参数保存入口应在归档态下禁用"
);

console.log("project-archive-readonly-guard test passed");
