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/student-demo-hash-routing.t...

17 lines
1.2 KiB
JavaScript

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");