import assert from "node:assert/strict"; import { readFileSync } from "node:fs"; import { resolve } from "node:path"; const root = resolve(import.meta.dirname, ".."); const teacherTaskPage = readFileSync(resolve(root, "src/views/teacherEnd/trainingTask/index.vue"), "utf8"); const studentDemoPage = readFileSync(resolve(root, "src/views/studentDemo/index.vue"), "utf8"); assert.match(teacherTaskPage, /window\.open\("\/#\/student-demo", "_blank"\)/, "学生端讲解必须通过 Hash 路由打开演示入口"); assert.match(studentDemoPage, /import useUserStore from "@\/store\/modules\/user";/, "演示页必须能更新当前窗口的用户状态"); assert.match(studentDemoPage, /userStore\.token = res\.data\.token;/, "兑换成功后必须替换教师窗口初始 token"); assert.match(studentDemoPage, /userStore\.userInfo = res\.data;/, "兑换成功后必须替换教师窗口初始用户身份"); assert.match(studentDemoPage, /window\.location\.hash = "#\/index";/, "兑换演示学生会话后必须切换到学生首页 Hash"); assert.match(studentDemoPage, /window\.location\.reload\(\);/, "切换演示身份后必须重新初始化动态路由和侧栏"); console.log("student demo uses hash routes instead of falling back to the teacher homepage");